# symbolicSlackOfPlucker -- given the number of polytope vertices, cone generators, or matroid vectors, or a set of polytope vertices, cone generators, or matroid vectors, or a slack matrix and a set of set of hyperplane spanning set indices, it fills the slack matrix with Plucker variables

## Synopsis

• Usage:
fillPl = symbolicSlackOfPlucker(v, B)
fillPl = symbolicSlackOfPlucker(V, B)
fillPl = symbolicSlackOfPlucker V
fillPl = symbolicSlackOfPlucker(S, B)
fillPl = symbolicSlackOfPlucker S
fillPl = symbolicSlackOfPlucker P
fillPl = symbolicSlackOfPlucker M
• Inputs:
• v, an integer, number of polytope vertices, cone generators, or matroid vectors
• B, a list, set of hyperplane spanning set indices
• V, a list, list of coordinates for polytope vertices, cone generators, or matroid vectors
• S, , (symbolic) slack matrix
• P, , a polytope
• M, , a matroid
• Optional inputs:
• Outputs:
• fillPl, , slack matrix filled with Plucker variables

## Description

It fills the slack matrix of a given polytope, cone or matroid with Plucker variables

 `i1 : v = 6;` `i2 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}};` ```i3 : fillPl = symbolicSlackOfPlucker(v, B) o3 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o3 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5```
 `i4 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}};` `i5 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}};` ```i6 : fillPl = symbolicSlackOfPlucker(V, B) o6 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o6 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5```
 `i7 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}};` ```i8 : fillPl = symbolicSlackOfPlucker V Input has been reorderd to {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o8 = | 0 -p_(0,1,3,5) 0 0 -p_(0,2,3,4) | | p_(0,1,2,4) 0 0 0 -p_(1,2,3,4) | | 0 p_(1,2,3,5) -p_(0,1,2,4) 0 0 | | -p_(0,2,3,4) 0 -p_(0,1,3,4) p_(0,1,2,3) 0 | | 0 -p_(1,3,4,5) 0 p_(0,1,2,4) 0 | | p_(0,2,4,5) 0 p_(0,1,4,5) p_(0,1,2,5) p_(2,3,4,5) | 6 5 o8 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5```
 `i9 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}};` `i10 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}};` ```i11 : fillPl = symbolicSlackOfPlucker(slackMatrix V, B) Order of vertices is {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o11 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o11 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5```
 `i12 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}};` ```i13 : fillPl = symbolicSlackOfPlucker(slackMatrix V) Order of vertices is {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o13 = | 0 -p_(0,1,3,5) 0 0 -p_(0,2,3,4) | | p_(0,1,2,4) 0 0 0 -p_(1,2,3,4) | | 0 p_(1,2,3,5) -p_(0,1,2,4) 0 0 | | -p_(0,2,3,4) 0 -p_(0,1,3,4) p_(0,1,2,3) 0 | | 0 -p_(1,3,4,5) 0 p_(0,1,2,4) 0 | | p_(0,2,4,5) 0 p_(0,1,4,5) p_(0,1,2,5) p_(2,3,4,5) | 6 5 o13 : Matrix (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <--- (QQ[p , p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5```

• getFacetBases -- given a slack matrix or a list of vertices of d-polytope or a rank d+1 matroid, or (d+1)-cone generators, creates a sorted list of vertices (empty if a matrix is given as input) in the order corresponding to B, and B the list of d spanning elements for each facet
• slackFromPlucker -- given a slack matrix or a list of vertices of d-polytope or a rank d+1 matroid, or (d+1)-cone generators, it fills the corresponding slack matrix with Plucker coordinates
• slackFromGalePlucker -- given a set of vectors of a Gale transform or a matrix whose columns form a Gale transform of a polytope, it fills the slack matrix of the polytope with Plucker coordinates of the Gale transform

## Ways to use symbolicSlackOfPlucker :

• symbolicSlackOfPlucker(List)
• symbolicSlackOfPlucker(List,List)
• symbolicSlackOfPlucker(Matrix)
• symbolicSlackOfPlucker(Matrix,List)
• symbolicSlackOfPlucker(Matroid)
• symbolicSlackOfPlucker(Polyhedron)
• symbolicSlackOfPlucker(ZZ,List)