The symbolic slack matrix records the combinatorial structure of the given object. Its (i, j)-entry is 0 if element i is in hyperplane j and it is a variable otherwise. Variables are indexed left to right by rows.
i1 : V = {{0, 0}, {0, 1}, {1, 1}, {1, 0}};
|
i2 : S = symbolicSlackMatrix V
Order of vertices is
{{0, 0}, {1, 0}, {0, 1}, {1, 1}}
o2 = | 0 x_0 0 x_1 |
| x_2 0 0 x_3 |
| 0 x_4 x_5 0 |
| x_6 0 x_7 0 |
4 4
o2 : Matrix (QQ[x ..x ]) <--- (QQ[x ..x ])
0 7 0 7
|
i3 : M = matroid({0, 1, 2, 3, 4, 5}, {{1, 2, 3}, {0, 2, 4}, {0, 3, 5}, {1, 4, 5}}, EntryMode => "nonbases");
|
i4 : S = symbolicSlackMatrix M
o4 = | x_0 0 x_1 x_2 0 x_3 0 |
| 0 x_4 x_5 x_6 x_7 0 0 |
| x_8 x_9 0 x_10 0 0 x_11 |
| x_12 0 x_13 0 x_14 0 x_15 |
| 0 x_16 x_17 0 0 x_18 x_19 |
| 0 0 0 x_20 x_21 x_22 x_23 |
6 7
o4 : Matrix (QQ[x ..x ]) <--- (QQ[x ..x ])
0 23 0 23
|
i5 : V = {{1, 2, 3}, {4, 5, 6}, {1, 2, 4, 5}, {1, 3, 4, 6}, {2, 3, 5, 6}};
|
i6 : S = symbolicSlackMatrix(V, Object => "abstractPolytope")
o6 = | 0 x_0 0 0 x_1 |
| 0 x_2 0 x_3 0 |
| 0 x_4 x_5 0 0 |
| x_6 0 0 0 x_7 |
| x_8 0 0 x_9 0 |
| x_10 0 x_11 0 0 |
6 5
o6 : Matrix (QQ[x ..x ]) <--- (QQ[x ..x ])
0 11 0 11
|
The object symbolicSlackMatrix is a method function with options.