The initial model follows from the canonical case hypotheses #
initModel_holds: if Canonical c T r s (and, when hi ≤ 1/14, SmallStrengthening), then
the model rebuilt by initModel for the interval (lo, hi] ∋ s holds for T at x = s - lo.
Together with CertData.check_sound this turns every checked certificate into the exclusion of
its parameter interval in its contact case.
Evaluation of the constructed points #
Rational data versus real data #
theorem
ConwaySoifer.Certificates.recvIdx_eq
(c : Case)
(cc : ContactCase)
:
(c = Case.Sext ↔ cc = ContactCase.Sext) →
(c = Case.Sint ↔ cc = ContactCase.Sint) →
(c = Case.Aown ↔ cc = ContactCase.Aown) →
(c = Case.Across ↔ cc = ContactCase.Across) → recvIdx c = neighbor 0 cc.right
The correspondence between the checker's Case and the geometric ContactCase.
Equations
- ConwaySoifer.Certificates.Case.Sext.toContact = ConwaySoifer.ContactCase.Sext
- ConwaySoifer.Certificates.Case.Sint.toContact = ConwaySoifer.ContactCase.Sint
- ConwaySoifer.Certificates.Case.Aown.toContact = ConwaySoifer.ContactCase.Aown
- ConwaySoifer.Certificates.Case.Across.toContact = ConwaySoifer.ContactCase.Across
Instances For
Membership in the raw lists #
theorem
ConwaySoifer.Certificates.mem_cornerMids
{lo : ℚ}
{denI : ℤ}
{j : Fin 3}
{P : IPoint}
(h : some P ∈ cornerMids lo denI j)
:
theorem
ConwaySoifer.Certificates.mem_rawB
{c : Case}
{lo hi : ℚ}
{denI : ℤ}
{j : Fin 10}
{P : IPoint}
(h : some P ∈ rawB c lo hi denI j)
:
j = 0 ∧ some P ∈ corePts lo hi denI ∨ (∃ (i : Fin 6),
j = sideIndex i ∧ (some P ∈ sidePts lo denI i ∨ c.isS = true ∧ i = recvIdx c ∧ some P = endpointPt c lo denI ∨ c = Case.Aown ∧ i = 0 ∧ some P = mid0Pt lo denI ∨ c = Case.Across ∧ i = 1 ∧ some P = mid0Pt lo denI)) ∨ ∃ (k : Fin 3),
j = cornerIndex k ∧ (some P ∈ cornerPts lo denI k ∨ c.isS = false ∧ k = 0 ∧ some P = endpointPt c lo denI ∨ c.isS = true ∧ smallHi hi = true ∧ ↑k ≠ ↑(recvIdx c) / 2 ∧ some P ∈ cornerMids lo denI k ∨ c = Case.Aown ∧ smallHi hi = true ∧ k ≠ 0 ∧ some P ∈ cornerMids lo denI k)
Geometric meaning of the constructed points #
theorem
ConwaySoifer.Certificates.sidePts_mem
{T : Configuration}
{r s : ℝ}
{c : ContactCase}
(H : Canonical c T r s)
{lo : ℚ}
{denI : ℤ}
(hden : 0 < denI)
{i : Fin 6}
{P : IPoint}
(h : some P ∈ sidePts lo denI i)
:
The real point of a side list entry.
theorem
ConwaySoifer.Certificates.cornerPts_mem
{T : Configuration}
{r s : ℝ}
{c : ContactCase}
(H : Canonical c T r s)
{lo : ℚ}
{denI : ℤ}
(hden : 0 < denI)
{k : Fin 3}
{P : IPoint}
(h : some P ∈ cornerPts lo denI k)
:
theorem
ConwaySoifer.Certificates.smallMids_sext
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Sext T r)
{k : Fin 3}
(hk : k ≠ 2)
(m : Fin 2)
:
theorem
ConwaySoifer.Certificates.smallMids_sint
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Sint T r)
{k : Fin 3}
(hk : k ≠ 0)
(m : Fin 2)
:
theorem
ConwaySoifer.Certificates.smallMids_aown
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Aown T r)
{k : Fin 3}
(hk : k ≠ 0)
(m : Fin 2)
:
theorem
ConwaySoifer.Certificates.smallOrd_sext
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Sext T r)
{i : Fin 6}
(hi : i ≠ 5)
:
theorem
ConwaySoifer.Certificates.smallOrd_sint
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Sint T r)
{i : Fin 6}
(hi : i ≠ 1)
:
theorem
ConwaySoifer.Certificates.smallOrd_aown
{T : Configuration}
{r : ℝ}
(hs : SmallStrengthening ContactCase.Aown T r)
{i : Fin 6}
(hi : i ≠ 0)
:
The main theorem #
theorem
ConwaySoifer.Certificates.initModel_holds
{T : Configuration}
{r s : ℝ}
{c : Case}
{lo hi : ℚ}
{denI : ℤ}
{M : Model}
(hM : initModel c lo hi denI = some M)
(hden : 0 < denI)
(hhi1 : ↑hi ≤ 1)
(H : Canonical c.toContact T r s)
(hhi : s ≤ ↑hi)
(hsmall : smallHi hi = true → SmallStrengthening c.toContact T r)
:
ModelHolds M T (↑denI) (s - ↑lo)