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
instance
ConNF.BaseSupport.instSuperAEnumerationAtom
[ConNF.Params]
:
ConNF.SuperA ConNF.BaseSupport (ConNF.Enumeration ConNF.Atom)
Equations
- ConNF.BaseSupport.instSuperAEnumerationAtom = { superA := ConNF.BaseSupport.atoms }
instance
ConNF.BaseSupport.instSuperNEnumerationNearLitter
[ConNF.Params]
:
ConNF.SuperN ConNF.BaseSupport (ConNF.Enumeration ConNF.NearLitter)
Equations
- ConNF.BaseSupport.instSuperNEnumerationNearLitter = { superN := ConNF.BaseSupport.nearLitters }
@[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
@[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)
:
instance
ConNF.BaseSupport.instMulActionBasePerm
[ConNF.Params]
:
MulAction ConNF.BasePerm ConNF.BaseSupport
Equations
- ConNF.BaseSupport.instMulActionBasePerm = MulAction.mk ⋯ ⋯
@[simp]
@[simp]
def
ConNF.baseSupportEquiv
[ConNF.Params]
:
ConNF.BaseSupport ≃ ConNF.Enumeration ConNF.Atom × ConNF.Enumeration ConNF.NearLitter
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
- ConNF.Support.instSuperAEnumerationProdPathBotTypeIndexAtom = { superA := ConNF.Support.atoms }
instance
ConNF.Support.instSuperNEnumerationProdPathBotTypeIndexNearLitter
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.SuperN (ConNF.Support α) (ConNF.Enumeration (α ↝ ⊥ × ConNF.NearLitter))
Equations
- ConNF.Support.instSuperNEnumerationProdPathBotTypeIndexNearLitter = { superN := ConNF.Support.nearLitters }
@[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 }) ⋯
instance
ConNF.Support.instBotDerivativeBaseSupport
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.BotDerivative (ConNF.Support α) ConNF.BaseSupport α
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
- ConNF.Support.instMulActionStrPerm = MulAction.mk ⋯ ⋯
@[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_iff
[ConNF.Params]
{β : ConNF.TypeIndex}
(π : ConNF.StrPerm β)
(S : ConNF.Support β)
:
noncomputable instance
ConNF.Support.instAdd
[ConNF.Params]
{α : ConNF.TypeIndex}
:
Add (ConNF.Support α)
@[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 α)
:
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
theorem
ConNF.card_support
[ConNF.Params]
{α : ConNF.TypeIndex}
:
Cardinal.mk (ConNF.Support α) = Cardinal.mk ConNF.μ
Orders on supports #
Equations
- ConNF.instPreorderBaseSupport = Preorder.mk ⋯ ⋯ ⋯
theorem
ConNF.BaseSupport.smul_le_smul
[ConNF.Params]
{S T : ConNF.BaseSupport}
(h : S ≤ T)
(π : ConNF.BasePerm)
:
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.instPreorderSupport = Preorder.mk ⋯ ⋯ ⋯
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)
: