Finite sign-orbit certificate for the polar
ProvedHirsch.q28_finite_certificateLet be the polar of the Matschke--Santos--Weibel prismatoid , described by the inequalities . Independent sign changes of the first four coordinates partition the vertices of into orbits. The stored integer tables of the certificate equip this quotient with an integer potential, taking the value at the positive apex orbit and at the negative apex orbit.
This theorem records the finite incidence facts of that certificate:
- If two signed orbit representatives have at least four original inequalities tight at both, then their orbit labels are equal or form an edge of the quotient graph.
- If two orbit labels have potential differing by more than one, then every pair of signed representatives has at most three common original actives.
- Every quotient edge changes the potential by at most one.
- The stored tightness bit of a signed representative is equivalent to the corresponding integer inner product equalling the orbit denominator.
- Every combinadic rank in is accounted for by the stored singular, infeasible, or orbit tag.
- Combinadic rank is inverted by the stored unranking map on strictly increasing -tuples from .
- Those ranks lie in .
These are the exact combinatorial contents used to bound the width of in Corollary 2.9 of Matschke, Santos and Weibel.
Formalization Note The lookup tables and checkers are defined in Definitions.Def_Hirsch_q28_cert. This theorem asserts that those checkers hold, not the geometric identification of Euclidean vertices with the stored orbits.
import Mathlib import Definitions.Def_Hirsch_model import Definitions.Def_Hirsch_q28 import Definitions.Def_Hirsch_q28_cert open scoped RealInnerProductSpace open Set Hirsch
namespace Hirsch
theorem q28_finite_certificate :
(∀ o1 o2 : Fin 20, ∀ s : Fin 16,
4 ≤ commonActiveCard o1 o2 s → o1 = o2 ∨ QuotientAdj o1 o2) ∧
(∀ o1 o2 : Fin 20, ∀ s : Fin 16,
1 < max (orbitLevel o1) (orbitLevel o2) -
min (orbitLevel o1) (orbitLevel o2) →
commonActiveCard o1 o2 s ≤ 3) ∧
(∀ i j : Fin 20, QuotientAdj i j → orbitLevel j ≤ orbitLevel i + 1) ∧
(∀ o : Fin 20, ∀ s : Fin 16, ∀ i : Fin 28,
(tightMask o s).testBit i.val = true ↔
intDotFlip o s i = orbitDen o) ∧
(∀ r : ℕ, r < 2002 → certOkUnrank r = true) ∧
(∀ s0 s1 s2 s3 s4 : ℕ,
s0 < s1 → s1 < s2 → s2 < s3 → s3 < s4 → s4 < 14 →
unrank5 (combRank s0 s1 s2 s3 s4) = (s0, s1, s2, s3, s4)) ∧
(∀ s0 s1 s2 s3 s4 : ℕ,
s0 < s1 → s1 < s2 → s2 < s3 → s3 < s4 → s4 < 14 →
combRank s0 s1 s2 s3 s4 < 2002) := by sorry
end Hirsch