Supports #
In this file, we define the notion of a support.
Main declarations #
ConNF.BaseSupport
: The type of supports of atoms.ConNF.Support
: The type of supports of objects of arbitrary type indices.
Base supports #
- atoms : ConNF.Enumeration ConNF.Atom
- nearLitters : ConNF.Enumeration ConNF.NearLitter
Instances For
@[simp]
theorem
ConNF.BaseSupport.mk_atoms
[ConNF.Params]
{a : ConNF.Enumeration ConNF.Atom}
{N : ConNF.Enumeration ConNF.NearLitter}
:
@[simp]
theorem
ConNF.BaseSupport.mk_nearLitters
[ConNF.Params]
{a : ConNF.Enumeration ConNF.Atom}
{N : ConNF.Enumeration ConNF.NearLitter}
:
theorem
ConNF.BaseSupport.ext
[ConNF.Params]
{S T : ConNF.BaseSupport}
(h₁ : Sᴬ = Tᴬ)
(h₂ : Sᴺ = Tᴺ)
:
S = T
Equations
- ConNF.BaseSupport.instSMulBasePerm = { smul := fun (π : ConNF.BasePerm) (S : ConNF.BaseSupport) => { atoms := π • Sᴬ, nearLitters := π • Sᴺ } }
@[simp]
@[simp]
theorem
ConNF.BaseSupport.smul_nearLitters
[ConNF.Params]
(π : ConNF.BasePerm)
(S : ConNF.BaseSupport)
:
@[simp]
theorem
ConNF.BaseSupport.smul_atoms_eq_of_smul_eq
[ConNF.Params]
{π : ConNF.BasePerm}
{S : ConNF.BaseSupport}
(h : π • S = S)
:
@[simp]
theorem
ConNF.BaseSupport.smul_nearLitters_eq_of_smul_eq
[ConNF.Params]
{π : ConNF.BasePerm}
{S : ConNF.BaseSupport}
(h : π • S = S)
:
theorem
ConNF.BaseSupport.smul_eq_smul_iff
[ConNF.Params]
(π₁ π₂ : ConNF.BasePerm)
(S : ConNF.BaseSupport)
:
Equations
- ConNF.BaseSupport.instAdd = { add := fun (S T : ConNF.BaseSupport) => { atoms := Sᴬ + Tᴬ, nearLitters := Sᴺ + Tᴺ } }
@[simp]
@[simp]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structural supports #
- atoms : ConNF.Enumeration (α ↝ ⊥ × ConNF.Atom)
- nearLitters : ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter)
Instances For
instance
ConNF.Support.instSuperAEnumerationProdPathBotTypeIndexAtom
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.SuperA (ConNF.Support α) (ConNF.Enumeration (α ↝ ⊥ × ConNF.Atom))
Equations
instance
ConNF.Support.instSuperNEnumerationProdPathBotTypeIndexNearLitter
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.SuperN (ConNF.Support α) (ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter))
Equations
@[simp]
theorem
ConNF.Support.mk_atoms
[ConNF.Params]
{α : ConNF.TypeIndex}
(E : ConNF.Enumeration (α ↝ ⊥ × ConNF.Atom))
(F : ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter))
:
@[simp]
theorem
ConNF.Support.mk_nearLitters
[ConNF.Params]
{α : ConNF.TypeIndex}
(E : ConNF.Enumeration (α ↝ ⊥ × ConNF.Atom))
(F : ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter))
:
instance
ConNF.Support.instDerivative
[ConNF.Params]
{α β : ConNF.TypeIndex}
:
ConNF.Derivative (ConNF.Support α) (ConNF.Support β) α β
Equations
- ConNF.Support.instDerivative = ConNF.Derivative.mk (fun (S : ConNF.Support α) (A : α ↝ β) => { atoms := Sᴬ ⇘ A, nearLitters := Sᴺ ⇘ A }) ⋯
instance
ConNF.Support.instCoderivative
[ConNF.Params]
{α β : ConNF.TypeIndex}
:
ConNF.Coderivative (ConNF.Support β) (ConNF.Support α) α β
Equations
- ConNF.Support.instCoderivative = ConNF.Coderivative.mk (fun (S : ConNF.Support β) (A : α ↝ β) => { atoms := Sᴬ ⇗ A, nearLitters := Sᴺ ⇗ A }) ⋯
Equations
- ConNF.Support.instBotDerivativeBaseSupport = ConNF.BotDerivative.mk (fun (S : ConNF.Support α) (A : α ↝ ⊥) => { atoms := Sᴬ ⇘. A, nearLitters := Sᴺ ⇘. A }) ⋯
@[simp]
theorem
ConNF.Support.deriv_atoms
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support α)
(A : α ↝ β)
:
@[simp]
theorem
ConNF.Support.deriv_nearLitters
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support α)
(A : α ↝ β)
:
@[simp]
theorem
ConNF.Support.sderiv_atoms
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support α)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.sderiv_nearLitters
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support α)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.coderiv_atoms
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(A : α ↝ β)
:
@[simp]
theorem
ConNF.Support.coderiv_nearLitters
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(A : α ↝ β)
:
@[simp]
theorem
ConNF.Support.scoderiv_atoms
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.scoderiv_nearLitters
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.derivBot_atoms
[ConNF.Params]
{α : ConNF.TypeIndex}
(S : ConNF.Support α)
(A : α ↝ ⊥)
:
@[simp]
theorem
ConNF.Support.derivBot_nearLitters
[ConNF.Params]
{α : ConNF.TypeIndex}
(S : ConNF.Support α)
(A : α ↝ ⊥)
:
theorem
ConNF.Support.ext'
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
(h₁ : Sᴬ = Tᴬ)
(h₂ : Sᴺ = Tᴺ)
:
S = T
theorem
ConNF.Support.ext
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
(h : ∀ (A : α ↝ ⊥), S ⇘. A = T ⇘. A)
:
S = T
@[simp]
theorem
ConNF.Support.deriv_derivBot
[ConNF.Params]
{β α : ConNF.TypeIndex}
(S : ConNF.Support α)
(A : α ↝ β)
(B : β ↝ ⊥)
:
@[simp]
theorem
ConNF.Support.coderiv_deriv_eq
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(A : α ↝ β)
:
theorem
ConNF.Support.eq_of_atom_mem_scoderiv_botDeriv
[ConNF.Params]
{α β : ConNF.TypeIndex}
{S : ConNF.Support β}
{A : α ↝ ⊥}
{h : β < α}
{a : ConNF.Atom}
(ha : a ∈ (S ↗ h ⇘. A)ᴬ)
:
theorem
ConNF.Support.eq_of_nearLitter_mem_scoderiv_botDeriv
[ConNF.Params]
{α β : ConNF.TypeIndex}
{S : ConNF.Support β}
{A : α ↝ ⊥}
{h : β < α}
{N : ConNF.NearLitter}
(hN : N ∈ (S ↗ h ⇘. A)ᴺ)
:
@[simp]
theorem
ConNF.Support.scoderiv_botDeriv_eq
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S : ConNF.Support β)
(A : β ↝ ⊥)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.scoderiv_deriv_eq
[ConNF.Params]
{α β γ : ConNF.TypeIndex}
(S : ConNF.Support β)
(A : β ↝ γ)
(h : β < α)
:
@[simp]
theorem
ConNF.Support.coderiv_inj
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S T : ConNF.Support β)
(A : α ↝ β)
:
@[simp]
theorem
ConNF.Support.scoderiv_inj
[ConNF.Params]
{α β : ConNF.TypeIndex}
(S T : ConNF.Support β)
(h : β < α)
:
instance
ConNF.Support.instSMulStrPerm
[ConNF.Params]
{α : ConNF.TypeIndex}
:
SMul (ConNF.StrPerm α) (ConNF.Support α)
Equations
- ConNF.Support.instSMulStrPerm = { smul := fun (π : ConNF.StrPerm α) (S : ConNF.Support α) => { atoms := π • Sᴬ, nearLitters := π • Sᴺ } }
@[simp]
theorem
ConNF.Support.smul_atoms
[ConNF.Params]
{α : ConNF.TypeIndex}
(π : ConNF.StrPerm α)
(S : ConNF.Support α)
:
@[simp]
theorem
ConNF.Support.smul_nearLitters
[ConNF.Params]
{α : ConNF.TypeIndex}
(π : ConNF.StrPerm α)
(S : ConNF.Support α)
:
theorem
ConNF.Support.smul_atoms_eq_of_smul_eq
[ConNF.Params]
{α : ConNF.TypeIndex}
{π : ConNF.StrPerm α}
{S : ConNF.Support α}
(h : π • S = S)
:
theorem
ConNF.Support.smul_nearLitters_eq_of_smul_eq
[ConNF.Params]
{α : ConNF.TypeIndex}
{π : ConNF.StrPerm α}
{S : ConNF.Support α}
(h : π • S = S)
:
instance
ConNF.Support.instMulActionStrPerm
[ConNF.Params]
{α : ConNF.TypeIndex}
:
MulAction (ConNF.StrPerm α) (ConNF.Support α)
Equations
@[simp]
theorem
ConNF.Support.smul_derivBot
[ConNF.Params]
{α : ConNF.TypeIndex}
(π : ConNF.StrPerm α)
(S : ConNF.Support α)
(A : α ↝ ⊥)
:
theorem
ConNF.Support.smul_coderiv
[ConNF.Params]
{β α : ConNF.TypeIndex}
(π : ConNF.StrPerm α)
(S : ConNF.Support β)
(A : α ↝ β)
:
theorem
ConNF.Support.smul_scoderiv
[ConNF.Params]
{β α : ConNF.TypeIndex}
(π : ConNF.StrPerm α)
(S : ConNF.Support β)
(h : β < α)
:
theorem
ConNF.Support.smul_eq_smul_iff
[ConNF.Params]
{β : ConNF.TypeIndex}
(π₁ π₂ : ConNF.StrPerm β)
(S : ConNF.Support β)
:
theorem
ConNF.Support.smul_eq_iff
[ConNF.Params]
{β : ConNF.TypeIndex}
(π : ConNF.StrPerm β)
(S : ConNF.Support β)
:
noncomputable instance
ConNF.Support.instAdd
[ConNF.Params]
{α : ConNF.TypeIndex}
:
Add (ConNF.Support α)
Equations
- ConNF.Support.instAdd = { add := fun (S T : ConNF.Support α) => { atoms := Sᴬ + Tᴬ, nearLitters := Sᴺ + Tᴺ } }
@[simp]
theorem
ConNF.Support.add_derivBot
[ConNF.Params]
{α : ConNF.TypeIndex}
(S T : ConNF.Support α)
(A : α ↝ ⊥)
:
theorem
ConNF.Support.smul_add
[ConNF.Params]
{α : ConNF.TypeIndex}
(S T : ConNF.Support α)
(π : ConNF.StrPerm α)
:
theorem
ConNF.Support.add_inj_of_bound_eq_bound
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T U V : ConNF.Support α}
(ha : Sᴬ.bound = Tᴬ.bound)
(hN : Sᴺ.bound = Tᴺ.bound)
(h' : S + U = T + V)
:
def
ConNF.supportEquiv
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.Support α ≃ ConNF.Enumeration (α ↝ ⊥ × ConNF.Atom) × ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Orders on supports #
Equations
- ConNF.instLEBaseSupport = { le := fun (S T : ConNF.BaseSupport) => (∀ a ∈ Sᴬ, a ∈ Tᴬ) ∧ ∀ N ∈ Sᴺ, N ∈ Tᴺ }
Equations
theorem
ConNF.BaseSupport.smul_le_smul
[ConNF.Params]
{S T : ConNF.BaseSupport}
(h : S ≤ T)
(π : ConNF.BasePerm)
:
Instances For
theorem
ConNF.BaseSupport.Subsupport.le
[ConNF.Params]
{S T : ConNF.BaseSupport}
(h : S.Subsupport T)
:
S ≤ T
theorem
ConNF.BaseSupport.Subsupport.trans
[ConNF.Params]
{S T U : ConNF.BaseSupport}
(h₁ : S.Subsupport T)
(h₂ : T.Subsupport U)
:
S.Subsupport U
theorem
ConNF.BaseSupport.smul_subsupport_smul
[ConNF.Params]
{S T : ConNF.BaseSupport}
(h : S.Subsupport T)
(π : ConNF.BasePerm)
:
Equations
- ConNF.instLESupport = { le := fun (S T : ConNF.Support α) => ∀ (A : α ↝ ⊥), S ⇘. A ≤ T ⇘. A }
Equations
theorem
ConNF.Support.smul_le_smul
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
(h : S ≤ T)
(π : ConNF.StrPerm α)
:
Instances For
theorem
ConNF.Support.Subsupport.le
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
(h : S.Subsupport T)
:
S ≤ T
theorem
ConNF.Support.Subsupport.trans
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T U : ConNF.Support α}
(h₁ : S.Subsupport T)
(h₂ : T.Subsupport U)
:
S.Subsupport U
theorem
ConNF.Support.smul_subsupport_smul
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
(h : S.Subsupport T)
(π : ConNF.StrPerm α)
:
theorem
ConNF.subsupport_add
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
:
S.Subsupport (S + T)
theorem
ConNF.smul_eq_of_subsupport
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
{π : ConNF.StrPerm α}
(h₁ : S.Subsupport T)
(h₂ : S.Subsupport (π • T))
:
theorem
ConNF.smul_eq_smul_of_le
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
{π₁ π₂ : ConNF.StrPerm α}
(h : S ≤ T)
(h₂ : π₁ • T = π₂ • T)
:
theorem
ConNF.smul_eq_of_le
[ConNF.Params]
{α : ConNF.TypeIndex}
{S T : ConNF.Support α}
{π : ConNF.StrPerm α}
(h : S ≤ T)
(h₂ : π • T = T)
: