/////////////////////////////////////////////////////////////////////////
// v24
// $Revision: 35174 $
// $Date: 2011-10-04 20:01:17 +1100 (Tue, 04 Oct 2011) $
// $LastChangedBy: kasprzyk $
/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////
// 24-Cell
/////////////////////////////////////////////////////////////////////////
"------\n24-Cell example\n";

S:=Sym(4);
seed:=[[1,1,0,0],[-1,1,0,0],[-1,-1,0,0]];
verts:=SetToSequence(&join[{PermuteSequence(v,s) : s in S} : v in seed]);
P:=Polytope(verts);
assert NumberOfVertices(P) eq 24;
assert Volume(P) eq 192;
assert Index(Vertices(P)) eq 2;
L,emb:=Sublattice(Vertices(P));
Q:=P @@ emb;
assert IsIsomorphic(Q,Dual(Q));
assert Volume(Q) eq 96;
delta:=EhrhartDeltaVector(Q);
assert delta eq [1,20,54,20,1];
cs:=[1, 25, 169, 625, 1681, 3721, 7225, 12769, 21025, 32761, 48841, 70225, 97969, 133225, 177241, 231361, 297025, 375769, 469225, 579121, 707281];
assert EhrhartCoefficients(Q,20) eq cs;
X:=ToricVariety(Rationals(),SpanningFan(Q));
assert Dimension(PicardLattice(X)) eq 1;

/////////////////////////////////////////////////////////////////////////
// Finally, clear the caches
/////////////////////////////////////////////////////////////////////////
"------\nClearing caches\n";

CacheClearToricVariety();
CacheClearToricLattice();