The gap-leaf polynomials #
gapGen is generic in the arithmetic, so its integer instance (the checker) and its PE
instance (polynomial expressions) are related by evaluation, and so is its real instance.
theorem
Cayley.Pack.gChart_map
{R S : Type}
(addR subR mulR : R → R → R)
(cR : ℤ → R)
(addS subS mulS : S → S → S)
(cS : ℤ → S)
(f : R → S)
(hadd : ∀ (a b : R), f (addR a b) = addS (f a) (f b))
(hsub : ∀ (a b : R), f (subR a b) = subS (f a) (f b))
(hmul : ∀ (a b : R), f (mulR a b) = mulS (f a) (f b))
(hc : ∀ (z : ℤ), f (cR z) = cS z)
(chart : ℕ)
(y0 y1 y2 : R)
:
theorem
Cayley.Pack.gapGen_map
{R S : Type}
(addR subR mulR : R → R → R)
(cR : ℤ → R)
(xR : Fin 5 → R)
(addS subS mulS : S → S → S)
(cS : ℤ → S)
(xS : Fin 5 → S)
(f : R → S)
(hadd : ∀ (a b : R), f (addR a b) = addS (f a) (f b))
(hsub : ∀ (a b : R), f (subR a b) = subS (f a) (f b))
(hmul : ∀ (a b : R), f (mulR a b) = mulS (f a) (f b))
(hc : ∀ (z : ℤ), f (cR z) = cS z)
(hx : ∀ (i : Fin 5), f (xR i) = xS i)
(b : K.KBox)
(s : ℤ × ℤ × ℤ)
(w0 w1 : ℤ)
:
theorem
Cayley.Pack.gapCore_map
{R S : Type}
(addR subR mulR : R → R → R)
(cR : ℤ → R)
(xR : Fin 5 → R)
(addS subS mulS : S → S → S)
(cS : ℤ → S)
(xS : Fin 5 → S)
(f : R → S)
(hadd : ∀ (a b : R), f (addR a b) = addS (f a) (f b))
(hsub : ∀ (a b : R), f (subR a b) = subS (f a) (f b))
(hmul : ∀ (a b : R), f (mulR a b) = mulS (f a) (f b))
(hc : ∀ (z : ℤ), f (cR z) = cS z)
(hx : ∀ (i : Fin 5), f (xR i) = xS i)
(chart face : ℕ)
(U : R)
(cc hh : ℕ → R)
(sx sy sz w0 w1 : R)
:
have g := K.gapCore addR subR mulR cR xR chart face U cc hh sx sy sz w0 w1;
have g' :=
K.gapCore addS subS mulS cS xS chart face (f U) (fun (i : ℕ) => f (cc i)) (fun (i : ℕ) => f (hh i)) (f sx) (f sy)
(f sz) (f w0) (f w1);
f g.a0 = g'.a0 ∧ f g.a1 = g'.a1 ∧ f g.a2 = g'.a2 ∧ f g.b0 = g'.b0 ∧ f g.b1 = g'.b1 ∧ f g.b2 = g'.b2 ∧ f g.kd = g'.kd ∧ f g.l0 = g'.l0 ∧ f g.l1 = g'.l1 ∧ f g.l2 = g'.l2
The real instance #
The gap-leaf data at a real point t.
Equations
- Cayley.Pack.gapR b S w0 w1 t = Cayley.K.gapGen (fun (x1 x2 : ℝ) => x1 + x2) (fun (x1 x2 : ℝ) => x1 - x2) (fun (x1 x2 : ℝ) => x1 * x2) (fun (z : ℤ) => ↑z) t b S w0 w1
Instances For
theorem
Cayley.Pack.gapR_beta
(b : K.KBox)
(hj : b.chart < 5)
(S : ℤ × ℤ × ℤ)
(w0 w1 : ℤ)
(t : Fin 5 → ℝ)
:
have g := gapR b S w0 w1 t;
have r := rOf (kblow b.chart) b.face (kpt b t);
have v := (chartMR b.chart).mulVec ((cayleyNumeratorMatrix (r 0) (r 1) (r 2)).mulVec (svec S));
g.b0 = betaSc b * v 0 ∧ g.b1 = betaSc b * v 1 ∧ g.b2 = betaSc b * v 2 ∧ g.kd = kapJ b.chart * betaSc b * cayleyDenom (r 0) (r 1) (r 2)
The three instances #
The gap-leaf polynomial expressions.
Equations
Instances For
theorem
Cayley.Pack.gapGen_map'
{R S : Type}
(addR subR mulR : R → R → R)
(cR : ℤ → R)
(xR : Fin 5 → R)
(addS subS mulS : S → S → S)
(cS : ℤ → S)
(xS : Fin 5 → S)
(f : R → S)
(hadd : ∀ (a b : R), f (addR a b) = addS (f a) (f b))
(hsub : ∀ (a b : R), f (subR a b) = subS (f a) (f b))
(hmul : ∀ (a b : R), f (mulR a b) = mulS (f a) (f b))
(hc : ∀ (z : ℤ), f (cR z) = cS z)
(hx : ∀ (i : Fin 5), f (xR i) = xS i)
(b : K.KBox)
(s : ℤ × ℤ × ℤ)
(w0 w1 : ℤ)
(k : Fin 10)
:
Coefficient-norm bounds of the gap-leaf polynomials (the Nat instance of gapGen).
Equations
- Cayley.K.gapNrm b S w0 w1 = Cayley.K.gapGen Nat.add Nat.add Nat.mul Int.natAbs (fun (x : Fin 5) => 1) b S w0 w1
Instances For
Every polynomial the gap test decodes has coefficient norm below 2^390 (room for the
Bernstein transform; outer vertices have coordinates below 2^161).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Degrees #
theorem
Cayley.Pack.gapGen_map2
{R S : Type}
(addR subR mulR : R → R → R)
(cR : ℤ → R)
(xR : Fin 5 → R)
(addS subS mulS : S → S → S)
(cS : ℤ → S)
(xS : Fin 5 → S)
(f : R → S)
(hadd : ∀ (a b : R), f (addR a b) = addS (f a) (f b))
(hsub : ∀ (a b : R), f (subR a b) = subS (f a) (f b))
(hmul : ∀ (a b : R), f (mulR a b) = mulS (f a) (f b))
(hc : ∀ (z z' : ℤ), f (cR z) = cS z')
(hx : ∀ (i : Fin 5), f (xR i) = xS i)
(b b' : K.KBox)
(hch : b.chart = b'.chart)
(hfa : b.face = b'.face)
(s s' : ℤ × ℤ × ℤ)
(w0 w1 w0' w1' : ℤ)
(k : Fin 10)
:
Two runs on boxes with the same chart and face, when every constant maps to the same value.
Monotonicity of the norm instance #
Equations
Instances For
theorem
Cayley.Pack.gapNrm_mono
(b b' : K.KBox)
(hch : b.chart = b'.chart)
(hfa : b.face = b'.face)
(hK : (K.p2 b.K).natAbs ≤ (K.p2 b'.K).natAbs)
(hc : ∀ (i : ℕ), (b.c.getD i 0).natAbs ≤ (b'.c.getD i 0).natAbs)
(hh : ∀ (i : ℕ), (b.h.getD i 0).natAbs ≤ (b'.h.getD i 0).natAbs)
(S S' : ℤ × ℤ × ℤ)
(h1 : S.1.natAbs ≤ S'.1.natAbs)
(h2 : S.2.1.natAbs ≤ S'.2.1.natAbs)
(h3 : S.2.2.natAbs ≤ S'.2.2.natAbs)
(w0 w1 w0' w1' : ℤ)
(hw0 : w0.natAbs ≤ w0'.natAbs)
(hw1 : w1.natAbs ≤ w1'.natAbs)
(k : Fin 10)
:
Norm monotonicity. The coefficient-norm bounds grow with the magnitudes of the inputs.