Documentation

ConNF.FOA.StrApproxFOA

Freedom of action for structural permutations #

In this file, we state and prove the freedom of action theorem for structural permutations.

Main declarations #

def ConNF.StrApprox.Approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (ρ : ConNF.AllPerm β) :
Equations
  • ψ.Approximates ρ = ∀ (A : β ), (ψ A).Approximates (ρ A)
Instances For
    def ConNF.StrApprox.ExactlyApproximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (ρ : ConNF.AllPerm β) :
    Equations
    • ψ.ExactlyApproximates ρ = ∀ (A : β ), (ψ A).ExactlyApproximates (ρ A)
    Instances For
      theorem ConNF.StrApprox.ExactlyApproximates.toApproximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.ExactlyApproximates ρ) :
      ψ.Approximates ρ
      theorem ConNF.StrApprox.Approximates.mono [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ χ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (hχ : χ.Approximates ρ) (h : ψ χ) :
      ψ.Approximates ρ
      theorem ConNF.StrApprox.ExactlyApproximates.mono [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ χ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (hχ : χ.ExactlyApproximates ρ) (h : ψ χ) :
      ψ.ExactlyApproximates ρ
      def ConNF.StrApprox.FreedomOfAction [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] (β : ConNF.TypeIndex) [ConNF.LeLevel β] :
      Equations
      Instances For
        theorem ConNF.StrApprox.smul_atom_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {a : ConNF.Atom} (ha : a (ψ A).dom) :
        ρ A a (ψ A).dom
        theorem ConNF.StrApprox.smul_nearLitter_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {N : ConNF.NearLitter} (hN : N (ψ A).dom) :
        ρ A N (ψ A).dom
        theorem ConNF.StrApprox.inv_smul_atom_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {a : ConNF.Atom} (ha : a (ψ A).dom) :
        (ρ A)⁻¹ a (ψ A).dom
        theorem ConNF.StrApprox.inv_smul_nearLitter_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {N : ConNF.NearLitter} (hN : N (ψ A).dom) :
        (ρ A)⁻¹ N (ψ A).dom
        theorem ConNF.StrApprox.zsmul_atom_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {a : ConNF.Atom} (ha : a (ψ A).dom) (n : ) :
        ρ A ^ n a (ψ A).dom
        theorem ConNF.StrApprox.zsmul_nearLitter_mem_dom_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {N : ConNF.NearLitter} (hN : N (ψ A).dom) (n : ) :
        ρ A ^ n N (ψ A).dom
        theorem ConNF.StrApprox.zsmul_atom_mem_dom_iff_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {a : ConNF.Atom} (n : ) :
        ρ A ^ n a (ψ A).dom a (ψ A).dom
        theorem ConNF.StrApprox.zsmul_nearLitter_mem_dom_iff_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {A : β } {N : ConNF.NearLitter} (n : ) :
        ρ A ^ n N (ψ A).dom N (ψ A).dom
        theorem ConNF.StrApprox.smul_support_eq_smul_of_approximates [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) {S : ConNF.Support β} (hSA : ∀ (A : β ), a(S ⇘. A), a (ψ A).dom) (hSN : ∀ (A : β ), N(S ⇘. A), N (ψ A).dom) :
        ψ S = ρ S
        def ConNF.StrApprox.addFlexible [ConNF.Params] {β : ConNF.TypeIndex} (ψ : ConNF.StrApprox β) (A : β ) (L : ConNF.Litter) (hLψ : L(ψ A).dom) :

        Add a flexible litter to this approximation.

        Equations
        • ψ.addFlexible A L hLψ = ψ.addOrbit A (fun (x : ) => L)
        Instances For
          theorem ConNF.StrApprox.addFlexible_coherent [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {A : β } {L : ConNF.Litter} {hLψ : L(ψ A).dom} (hψ : ψ.Coherent) (hL : ¬ConNF.Inflexible A L) :
          (ψ.addFlexible A L hLψ).Coherent
          theorem ConNF.StrApprox.addInflexible_aux [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (P : ConNF.InflexiblePath β) (t : ConNF.Tangle P) (ρ : ConNF.AllPerm P) (m n k : ) :
          ConNF.fuzz (ρ ^ m t) = ConNF.fuzz (ρ ^ n t)ConNF.fuzz (ρ ^ (m + k) t) = ConNF.fuzz (ρ ^ (n + k) t)
          def ConNF.StrApprox.addInflexible' [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) {A : β } (P : ConNF.InflexiblePath β) (t : ConNF.Tangle P) (ρ : ConNF.AllPerm P) (hL : ∀ (n : ), ConNF.fuzz (ρ ^ n t)(ψ A).dom) :
          Equations
          • ψ.addInflexible' P t ρ hL = ψ.addOrbit A (fun (n : ) => ConNF.fuzz (ρ ^ n t)) hL
          Instances For
            theorem ConNF.StrApprox.smul_support_zpow [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {ρ : ConNF.AllPerm β} (h : ψ.Approximates ρ) (t : ConNF.Tangle β) {n : } (hLA : ∀ (B : β ), a(t.support ⇘. B), a (ψ B).dom) (hLN : ∀ (B : β ), N(t.support ⇘. B), N (ψ B).dom) :
            ψ (ρ ^ n t).support = ρ (ρ ^ n t).support
            theorem ConNF.StrApprox.addInflexible'_coherent [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {A : β } {P : ConNF.InflexiblePath β} {t : ConNF.Tangle P} (hA : A = P.A ↘.) {ρ : ConNF.AllPerm P} (hρ : ConNF.StrApprox.Approximates (ψ P.A ) ρ) {hL : ∀ (n : ), ConNF.fuzz (ρ ^ n t)(ψ A).dom} (hψ : ψ.Coherent) (hLA : ∀ (B : P ), a(t.support ⇘. B), a (ψ (P.A B)).dom) (hLN : ∀ (B : P ), N(t.support ⇘. B), N (ψ (P.A B)).dom) :
            (ψ.addInflexible' P t ρ hL).Coherent
            theorem ConNF.StrApprox.mem_dom_of_inflexible [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {A : β } {L : ConNF.Litter} {P : ConNF.InflexiblePath β} {t : ConNF.Tangle P} (hA : A = P.A ↘.) (ht : L = ConNF.fuzz t) {ρ : ConNF.AllPerm P} (hρ : ConNF.StrApprox.Approximates (ψ P.A ) ρ) {n : } (hL : ConNF.fuzz (ρ ^ n t) (ψ A).dom) (hψ : ψ.Coherent) (hLA : ∀ (B : P ), a(t.support ⇘. B), a (ψ (P.A B)).dom) (hLN : ∀ (B : P ), N(t.support ⇘. B), N (ψ (P.A B)).dom) :
            L (ψ A).dom
            def ConNF.StrApprox.addInflexible [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (A : β ) (P : ConNF.InflexiblePath β) (t : ConNF.Tangle P) (ρ : ConNF.AllPerm P) :
            Equations
            • ψ.addInflexible A P t ρ = if hL : ∀ (n : ), ConNF.fuzz (ρ ^ n t)(ψ A).dom then ψ.addInflexible' P t ρ hL else ψ
            Instances For
              theorem ConNF.StrApprox.le_addInflexible [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (A : β ) (P : ConNF.InflexiblePath β) (t : ConNF.Tangle P) (ρ : ConNF.AllPerm P) :
              ψ ψ.addInflexible A P t ρ
              theorem ConNF.StrApprox.addInflexible_coherent [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {A : β } {P : ConNF.InflexiblePath β} {t : ConNF.Tangle P} (hA : A = P.A ↘.) {ρ : ConNF.AllPerm P} (hρ : ConNF.StrApprox.Approximates (ψ P.A ) ρ) (hψ : ψ.Coherent) (hLA : ∀ (B : P ), a(t.support ⇘. B), a (ψ (P.A B)).dom) (hLN : ∀ (B : P ), N(t.support ⇘. B), N (ψ (P.A B)).dom) :
              (ψ.addInflexible A P t ρ).Coherent
              theorem ConNF.StrApprox.mem_addInflexible_dom [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] {ψ : ConNF.StrApprox β} {A : β } {L : ConNF.Litter} {P : ConNF.InflexiblePath β} {t : ConNF.Tangle P} (hA : A = P.A ↘.) (hL : L = ConNF.fuzz t) {ρ : ConNF.AllPerm P} (hρ : ConNF.StrApprox.Approximates (ψ P.A ) ρ) (hψ : ψ.Coherent) (hLA : ∀ (B : P ), a(t.support ⇘. B), a (ψ (P.A B)).dom) (hLN : ∀ (B : P ), N(t.support ⇘. B), N (ψ (P.A B)).dom) :
              L (ψ.addInflexible A P t ρ A).dom
              theorem ConNF.StrApprox.exists_extension_of_minimal [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (A : β ) (L : ConNF.Litter) (hψ : ψ.Coherent) (foa : δ < β, ∀ [inst : ConNF.LeLevel δ], ConNF.StrApprox.FreedomOfAction δ) (hLA : ∀ (B : β ) (a : ConNF.Atom), ConNF.pos a < ConNF.pos La (ψ B).dom) (hLN : ∀ (B : β ) (N : ConNF.NearLitter), ConNF.pos N < ConNF.pos LN (ψ B).dom) :
              χψ, χ.Coherent L (χ A).dom
              theorem ConNF.StrApprox.exists_extension_of_minimal' [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (A : β ) (L : ConNF.Litter) (hL : L(ψ A).dom) (hψ : ψ.Coherent) (foa : δ < β, ∀ [inst : ConNF.LeLevel δ], ConNF.StrApprox.FreedomOfAction δ) (hL' : ∀ (B : β ) (L' : ConNF.Litter), ConNF.pos L' < ConNF.pos LL' (ψ B).dom) :
              χ > ψ, χ.Coherent
              theorem ConNF.StrApprox.exists_total [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (hψ : ψ.Coherent) (foa : δ < β, ∀ [inst : ConNF.LeLevel δ], ConNF.StrApprox.FreedomOfAction δ) :
              χψ, χ.Coherent χ.Total
              theorem ConNF.StrApprox.exists_exactlyApproximates_of_total [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] (ψ : ConNF.StrApprox β) (hψ₁ : ψ.Coherent) (hψ₂ : ψ.Total) :
              ∃ (ρ : ConNF.AllPerm β), ψ.ExactlyApproximates ρ
              theorem ConNF.StrApprox.freedomOfAction [ConNF.Params] [ConNF.Level] [ConNF.CoherentData] {β : ConNF.TypeIndex} [ConNF.LeLevel β] :