Documentation

ConNF.FOA.StrApprox

Structural approximations #

In this file, we define structural approximations, which are trees of base approximations.

Main declarations #

@[reducible, inline]
Equations
Instances For
    def ConNF.StrApprox.addOrbit [Params] {β : TypeIndex} (ψ : StrApprox β) (A : β ) (f : Litter) (hf : ∀ (m n k : ), f m = f nf (m + k) = f (n + k)) (hfψ : ∀ (n : ), f n(ψ A).dom) :
    Equations
    Instances For
      theorem ConNF.StrApprox.addOrbit_apply [Params] {β : TypeIndex} {ψ : StrApprox β} {A : β } {f : Litter} {hf : ∀ (m n k : ), f m = f nf (m + k) = f (n + k)} {hfψ : ∀ (n : ), f n(ψ A).dom} :
      ψ.addOrbit A f hf hfψ A = (ψ A).addOrbit f hf hfψ
      theorem ConNF.StrApprox.addOrbit_apply_ne [Params] {β : TypeIndex} {ψ : StrApprox β} {A : β } {f : Litter} {hf : ∀ (m n k : ), f m = f nf (m + k) = f (n + k)} {hfψ : ∀ (n : ), f n(ψ A).dom} (B : β ) (hB : A B) :
      ψ.addOrbit A f hf hfψ B = ψ B
      theorem ConNF.StrApprox.le_addOrbit [Params] {β : TypeIndex} {ψ : StrApprox β} {A : β } {f : Litter} {hf : ∀ (m n k : ), f m = f nf (m + k) = f (n + k)} {hfψ : ∀ (n : ), f n(ψ A).dom} :
      ψ ψ.addOrbit A f hf hfψ
      def ConNF.StrApprox.upperBound [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) :

      An upper bound for a chain of approximations.

      Equations
      Instances For
        theorem ConNF.StrApprox.le_upperBound [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (ψ : StrApprox β) :
        ψ cψ upperBound c hc
        theorem ConNF.StrApprox.upperBound_exceptions [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (A : β ) (a₁ a₂ : Atom) :
        (upperBound c hc A).exceptions a₁ a₂ ψc, (ψ A).exceptions a₁ a₂
        theorem ConNF.StrApprox.upperBound_litters [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (A : β ) (L₁ L₂ : Litter) :
        (upperBound c hc A) L₁ L₂ ψc, (ψ A) L₁ L₂
        theorem ConNF.StrApprox.upperBound_typical [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (A : β ) (a₁ a₂ : Atom) :
        (upperBound c hc A).typical a₁ a₂ ψc, (ψ A).typical a₁ a₂
        theorem ConNF.StrApprox.upperBound_atoms [Params] {β : TypeIndex} (c : Set (StrApprox β)) (hc : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (A : β ) (a₁ a₂ : Atom) :
        (upperBound c hc A) a₁ a₂ ψc, (ψ A) a₁ a₂

        TODO: Many of the previous lemmas are not actually needed!

        Equations
        Instances For
          theorem ConNF.StrApprox.Total.deriv [Params] {β : TypeIndex} {ψ : StrApprox β} ( : ψ.Total) {γ : TypeIndex} (A : β γ) :
          Total (ψ A)
          theorem ConNF.StrApprox.smul_support_eq_smul_mono [Params] {β : TypeIndex} {ξ χ : StrApprox β} {S : Support β} {π : StrPerm β} ( : ξ S = π S) (hξχ : ξ χ) :
          χ S = π S
          theorem ConNF.StrApprox.coherentAt_mono [Params] {β : TypeIndex} [Level] [CoherentData] [LeLevel β] {ψ χ : StrApprox β} {A : β } {L₁ L₂ : Litter} (h : CoherentAt ψ A L₁ L₂) (hψχ : ψ χ) :
          CoherentAt χ A L₁ L₂
          Equations
          Instances For
            theorem ConNF.StrApprox.addOrbit_coherent [Params] {β : TypeIndex} [Level] [CoherentData] [LeLevel β] {ψ : StrApprox β} {A : β } {f : Litter} {hf : ∀ (m n k : ), f m = f nf (m + k) = f (n + k)} {hfψ : ∀ (n : ), f n(ψ A).dom} ( : ψ.Coherent) (hfc : ∀ (n : ), CoherentAt ψ A (f n) (f (n + 1))) :
            (ψ.addOrbit A f hf hfψ).Coherent
            theorem ConNF.StrApprox.Coherent.deriv [Params] {β : TypeIndex} [Level] [CoherentData] [LeLevel β] {ψ : StrApprox β} ( : ψ.Coherent) {γ : TypeIndex} [LeLevel γ] (A : β γ) :
            Coherent (ψ A)
            theorem ConNF.StrApprox.upperBound_coherent [Params] {β : TypeIndex} [Level] [CoherentData] [LeLevel β] (c : Set (StrApprox β)) (hc₁ : IsChain (fun (x1 x2 : StrApprox β) => x1 x2) c) (hc₂ : ψc, ψ.Coherent) :
            theorem ConNF.StrApprox.exists_maximal_coherent [Params] {β : TypeIndex} [Level] [CoherentData] [LeLevel β] (ψ : StrApprox β) ( : ψ.Coherent) :
            χψ, Maximal {χ : StrApprox β | χ.Coherent} χ