Documentation

ConNF.Strong.Spec

Specifications for supports #

In this file, we define the notion of a specification for a support.

Main declarations #

structure ConNF.AtomCond [Params] :
Instances For
    structure ConNF.FlexCond [Params] :
    Instances For
      Instances For
        Instances For
          structure ConNF.Spec [Params] [Level] [CoherentData] (β : TypeIndex) [LeLevel β] :
          Instances For
            theorem ConNF.Spec.ext [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {σ τ : Spec β} (h₁ : ∀ (A : β ), σ A = τ A) (h₂ : ∀ (A : β ), σ A = τ A) :
            σ = τ
            Equations
            • One or more equations did not get rendered due to their size.
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem ConNF.nearLitterCondRel_inflex [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S : Support β} {A : β } {N : NearLitter} {P : InflexiblePath β} {χ : CodingFunction P.δ} {ta tn : Tree (Rel κ κ) P.δ} :
                nearLitterCondRel S A N (NearLitterCond.inflex P { χ := χ, atoms := ta, nearLitters := tn })∃ (t : Tangle P.δ), A = P.A ↘. N = fuzz t χ = t.code (ta = fun (B : P.δ ) => (S ⇘. (P.A B)).rel.comp (t.support ⇘. B).rel.inv) tn = fun (B : P.δ ) => (S ⇘. (P.A B)).rel.comp (t.support ⇘. B).rel.inv
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem ConNF.Support.spec_atoms [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] (S : Support β) (A : β ) :
                  S.spec A = (S ⇘. A).image fun (a : Atom) => { atoms := {i : κ | (S ⇘. A).rel i a}, nearLitters := {i : κ | ∃ (N : NearLitter), (S ⇘. A).rel i N a N} }
                  def ConNF.convAtoms [Params] {β : TypeIndex} (S T : Support β) (A : β ) :
                  Equations
                  Instances For
                    Equations
                    Instances For
                      @[simp]
                      theorem ConNF.convAtoms_inv [Params] {β : TypeIndex} (S T : Support β) (A : β ) :
                      (convAtoms S T A).inv = convAtoms T S A
                      @[simp]
                      theorem ConNF.convNearLitters_inv [Params] {β : TypeIndex} (S T : Support β) (A : β ) :
                      theorem ConNF.convAtoms_dom_subset [Params] {β : TypeIndex} (S T : Support β) (A : β ) :
                      def ConNF.atomMemRel [Params] {β : TypeIndex} (S : Support β) (A : β ) :
                      Equations
                      Instances For
                        structure ConNF.SameSpec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] (S T : Support β) :
                        Instances For
                          structure ConNF.SameSpecLE [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] (S T : Support β) :

                          A variant of SameSpec in which most equalities have been turned into one-directional implications. It can sometimes be easier to prove this in generality than to prove SameSpec directly.

                          Instances For
                            theorem ConNF.SameSpec.atoms_dom_of_dom [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {i : κ} {a : Atom} (ha : (S ⇘. A).rel i a) :
                            ∃ (b : Atom), (T ⇘. A).rel i b
                            theorem ConNF.SameSpec.nearLitters_dom_of_dom [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {i : κ} {N₁ : NearLitter} (hN₁ : (S ⇘. A).rel i N₁) :
                            ∃ (N₂ : NearLitter), (T ⇘. A).rel i N₂
                            theorem ConNF.SameSpec.inflexible_iff' [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {N₁ N₂ : NearLitter} (h' : convNearLitters S T A N₁ N₂) :
                            theorem ConNF.sameSpec_antisymm [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h₁ : SameSpecLE S T) (h₂ : SameSpecLE T S) :
                            theorem ConNF.sameSpec_comm [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) :
                            theorem ConNF.Support.atoms_eq_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) (A : β ) :
                            ((S ⇘. A).image fun (a : Atom) => { atoms := {i : κ | (S ⇘. A).rel i a}, nearLitters := {i : κ | ∃ (N : NearLitter), (S ⇘. A).rel i N a N} }) = (T ⇘. A).image fun (a : Atom) => { atoms := {i : κ | (T ⇘. A).rel i a}, nearLitters := {i : κ | ∃ (N : NearLitter), (T ⇘. A).rel i N a N} }
                            theorem ConNF.Support.convAtoms_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) {A : β } {a b : Atom} :
                            convAtoms S T A a b(∀ (i : κ), (S ⇘. A).rel i a (T ⇘. A).rel i b) ∀ (i : κ), (∃ (N : NearLitter), (S ⇘. A).rel i N a N) ∃ (N : NearLitter), (T ⇘. A).rel i N b N
                            theorem ConNF.Support.convNearLitters_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) {A : β } {N₁ N₂ : NearLitter} :
                            convNearLitters S T A N₁ N₂∃ (c : NearLitterCond β), nearLitterCondRel S A N₁ c nearLitterCondRel T A N₂ c
                            theorem ConNF.Support.inflexible_of_inflexible_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) {A : β } {N₁ N₂ : NearLitter} :
                            convNearLitters S T A N₁ N₂∀ (P : InflexiblePath β) (t : Tangle P.δ), A = P.A ↘.N₁ = fuzz t∃ (ρ : AllPerm P.δ), N₂ = fuzz (ρ t)
                            theorem ConNF.Support.litter_eq_of_flexible_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) {A : β } {N₁ N₂ N₃ N₄ : NearLitter} :
                            convNearLitters S T A N₁ N₂convNearLitters S T A N₃ N₄¬Inflexible A N₁¬Inflexible A N₂¬Inflexible A N₃¬Inflexible A N₄N₁ = N₃N₂ = N₄
                            theorem ConNF.Support.atoms_of_inflexible_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) (A : β ) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) :
                            A = P.A ↘.N₁ = fuzz tN₂ = fuzz (ρ t)convNearLitters S T A N₁ N₂∀ (B : P.δ ), a ∈ (t.support ⇘. B), ∀ (i : κ), (S ⇘. (P.A B)).rel i a(T ⇘. (P.A B)).rel i (ρ B a)
                            theorem ConNF.Support.nearLitters_of_inflexible_of_spec_eq_spec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : S.spec = T.spec) (A : β ) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) :
                            A = P.A ↘.N₁ = fuzz tN₂ = fuzz (ρ t)convNearLitters S T A N₁ N₂∀ (B : P.δ ), N ∈ (t.support ⇘. B), ∀ (i : κ), (S ⇘. (P.A B)).rel i N(T ⇘. (P.A B)).rel i (ρ B N)
                            theorem ConNF.Support.atoms_subset_of_sameSpec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {i : κ} {a b : Atom} (ha : (S ⇘. A).rel i a) (hb : (T ⇘. A).rel i b) :
                            {i : κ | (T ⇘. A).rel i b} {i : κ | (S ⇘. A).rel i a}
                            theorem ConNF.Support.nearLitters_subset_of_sameSpec [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {i : κ} {a b : Atom} (ha : (S ⇘. A).rel i a) (hb : (T ⇘. A).rel i b) :
                            {i : κ | ∃ (N : NearLitter), (T ⇘. A).rel i N b N} {i : κ | ∃ (N : NearLitter), (S ⇘. A).rel i N a N}
                            theorem ConNF.Support.nearLitterCondRelFlex_of_convNearLitters_aux [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {N₁ N₂ : NearLitter} (hN : convNearLitters S T A N₁ N₂) (hN₁i : ¬Inflexible A N₁) (hN₂i : ¬Inflexible A N₂) (i : κ) :
                            (∃ (N₃ : NearLitter), (S ⇘. A).rel i N₃ N₁ = N₃)∃ (N₃ : NearLitter), (T ⇘. A).rel i N₃ N₂ = N₃
                            theorem ConNF.Support.nearLitterCondRelFlex_of_convNearLitters [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {N₁ N₂ : NearLitter} (hN : convNearLitters S T A N₁ N₂) (hN₁i : ¬Inflexible A N₁) (hN₂i : ¬Inflexible A N₂) :
                            nearLitterCondRelFlex T A N₂ (NearLitterCond.flex { nearLitters := {i : κ | ∃ (N₃ : NearLitter), (S ⇘. A).rel i N₃ N₁ = N₃} })
                            theorem ConNF.Support.nearLitterCondRelInflex_of_convNearLitters [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] {S T : Support β} (h : SameSpec S T) {A : β } {N₁ N₂ : NearLitter} (hN : convNearLitters S T A N₁ N₂) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) (hA : A = P.A ↘.) (hN₁ : N₁ = fuzz t) (hN₂ : N₂ = fuzz (ρ t)) :
                            nearLitterCondRelInflex T A N₂ (NearLitterCond.inflex P { χ := t.code, atoms := fun (B : P.δ ) => (S ⇘. (P.A B)).rel.comp (t.support ⇘. B).rel.inv, nearLitters := fun (B : P.δ ) => (S ⇘. (P.A B)).rel.comp (t.support ⇘. B).rel.inv })