Specifications for supports #
In this file, we define the notion of a specification for a support.
Main declarations #
ConNF.Spec
: Specifications for supports.
instance
ConNF.instSuperAInflexCondTreeRelκ
[Params]
[Level]
[CoherentData]
(δ : TypeIndex)
[LeLevel δ]
:
Equations
- ConNF.instSuperAInflexCondTreeRelκ δ = { superA := ConNF.InflexCond.atoms }
instance
ConNF.instSuperNInflexCondTreeRelκ
[Params]
[Level]
[CoherentData]
(δ : TypeIndex)
[LeLevel δ]
:
Equations
- ConNF.instSuperNInflexCondTreeRelκ δ = { superN := ConNF.InflexCond.nearLitters }
- flex [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] : FlexCond → NearLitterCond β
- inflex [Params] [Level] [CoherentData] {β : TypeIndex} [LeLevel β] (P : InflexiblePath β) : InflexCond P.δ → NearLitterCond β
Instances For
- atoms : Tree (Enumeration AtomCond) β
- nearLitters : Tree (Enumeration (NearLitterCond β)) β
Instances For
instance
ConNF.instSuperASpecTreeEnumerationAtomCond
[Params]
[Level]
[CoherentData]
(β : TypeIndex)
[LeLevel β]
:
SuperA (Spec β) (Tree (Enumeration AtomCond) β)
Equations
- ConNF.instSuperASpecTreeEnumerationAtomCond β = { superA := ConNF.Spec.atoms }
instance
ConNF.instSuperNSpecTreeEnumerationNearLitterCond
[Params]
[Level]
[CoherentData]
(β : TypeIndex)
[LeLevel β]
:
SuperN (Spec β) (Tree (Enumeration (NearLitterCond β)) β)
Equations
- ConNF.instSuperNSpecTreeEnumerationNearLitterCond β = { superN := ConNF.Spec.nearLitters }
Equations
- One or more equations did not get rendered due to their size.
instance
ConNF.instPartialOrderSpec
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
:
PartialOrder (Spec β)
Equations
def
ConNF.nearLitterCondRelFlex
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
ConNF.nearLitterCondRelInflex
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
ConNF.nearLitterCondRel
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
Equations
Instances For
theorem
ConNF.nearLitterCondRelFlex_coinjective
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S : Support β}
{A : β ↝ ⊥}
:
theorem
ConNF.nearLitterCondRelInflex_coinjective
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S : Support β}
{A : β ↝ ⊥}
:
theorem
ConNF.flexible_of_mem_dom_nearLitterCondFlexRel
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S : Support β}
{A : β ↝ ⊥}
{N : NearLitter}
(h : N ∈ (nearLitterCondRelFlex S A).dom)
:
¬Inflexible A Nᴸ
theorem
ConNF.inflexible_of_mem_dom_nearLitterCondInflexRel
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S : Support β}
{A : β ↝ ⊥}
{N : NearLitter}
(h : N ∈ (nearLitterCondRelInflex S A).dom)
:
Inflexible A Nᴸ
theorem
ConNF.nearLitterCondRel_dom_disjoint
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S : Support β}
{A : β ↝ ⊥}
:
Disjoint (nearLitterCondRelFlex S A).dom (nearLitterCondRelInflex S A).dom
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
theorem
ConNF.nearLitterCondRel_coinjective
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
(nearLitterCondRel S A).Coinjective
theorem
ConNF.nearLitterCondRel_cosurjective
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
def
ConNF.Support.spec
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S : Support β)
:
Spec β
Equations
- One or more equations did not get rendered due to their size.
Instances For
structure
ConNF.SameSpec
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(S T : Support β)
:
- litter_eq_iff_of_flexible {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₄ᴸ)
- atoms_iff_of_inflexible (A : β ↝ ⊥) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) : A = P.A ↘ ⋯ ↘. → N₁ᴸ = fuzz ⋯ t → N₂ᴸ = 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)
- nearLitters_iff_of_inflexible (A : β ↝ ⊥) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) : A = P.A ↘ ⋯ ↘. → N₁ᴸ = fuzz ⋯ t → N₂ᴸ = 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)
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.
- litter_eq_of_flexible {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₄ᴸ
- atoms_of_inflexible (A : β ↝ ⊥) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) : A = P.A ↘ ⋯ ↘. → N₁ᴸ = fuzz ⋯ t → N₂ᴸ = 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)
- nearLitters_of_inflexible (A : β ↝ ⊥) (N₁ N₂ : NearLitter) (P : InflexiblePath β) (t : Tangle P.δ) (ρ : AllPerm P.δ) : A = P.A ↘ ⋯ ↘. → N₁ᴸ = fuzz ⋯ t → N₂ᴸ = 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)
Instances For
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)
:
SameSpec S T
theorem
ConNF.sameSpec_comm
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S T : Support β}
(h : SameSpec S T)
:
SameSpec T S
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}
:
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.δ)
:
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.δ)
:
theorem
ConNF.Support.sameSpecLe_of_spec_eq_spec
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{S T : Support β}
(h : S.spec = T.spec)
:
SameSpecLE S T
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 : κ)
:
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))
: