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 : Enumeration Atom
- nearLitters : Enumeration NearLitter
Instances For
Equations
@[simp]
@[simp]
theorem
ConNF.BaseSupport.mk_nearLitters
[Params]
{a : Enumeration Atom}
{N : Enumeration NearLitter}
:
Equations
- ConNF.BaseSupport.instSMulBasePerm = { smul := fun (π : ConNF.BasePerm) (S : ConNF.BaseSupport) => { atoms := π • Sᴬ, nearLitters := π • Sᴺ } }
@[simp]
@[simp]
Equations
- ConNF.BaseSupport.instAdd = { add := fun (S T : ConNF.BaseSupport) => { atoms := Sᴬ + Tᴬ, nearLitters := Sᴺ + Tᴺ } }
@[simp]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structural supports #
- atoms : Enumeration (α ↝ ⊥ × Atom)
- nearLitters : Enumeration (α ↝ ⊥ × NearLitter)
Instances For
Equations
instance
ConNF.Support.instSuperNEnumerationProdPathBotTypeIndexNearLitter
[Params]
{α : TypeIndex}
:
SuperN (Support α) (Enumeration (α ↝ ⊥ × NearLitter))
Equations
@[simp]
theorem
ConNF.Support.mk_atoms
[Params]
{α : TypeIndex}
(E : Enumeration (α ↝ ⊥ × Atom))
(F : Enumeration (α ↝ ⊥ × NearLitter))
:
@[simp]
theorem
ConNF.Support.mk_nearLitters
[Params]
{α : TypeIndex}
(E : Enumeration (α ↝ ⊥ × Atom))
(F : Enumeration (α ↝ ⊥ × NearLitter))
:
instance
ConNF.Support.instDerivative
[Params]
{α β : TypeIndex}
:
Derivative (Support α) (Support β) α β
Equations
- ConNF.Support.instDerivative = ConNF.Derivative.mk (fun (S : ConNF.Support α) (A : α ↝ β) => { atoms := Sᴬ ⇘ A, nearLitters := Sᴺ ⇘ A }) ⋯
instance
ConNF.Support.instCoderivative
[Params]
{α β : TypeIndex}
:
Coderivative (Support β) (Support α) α β
Equations
- ConNF.Support.instCoderivative = ConNF.Coderivative.mk (fun (S : ConNF.Support β) (A : α ↝ β) => { atoms := Sᴬ ⇗ A, nearLitters := Sᴺ ⇗ A }) ⋯
instance
ConNF.Support.instBotDerivativeBaseSupport
[Params]
{α : TypeIndex}
:
BotDerivative (Support α) BaseSupport α
Equations
- ConNF.Support.instBotDerivativeBaseSupport = ConNF.BotDerivative.mk (fun (S : ConNF.Support α) (A : α ↝ ⊥) => { atoms := Sᴬ ⇘. A, nearLitters := Sᴺ ⇘. A }) ⋯
Equations
- ConNF.Support.instSMulStrPerm = { smul := fun (π : ConNF.StrPerm α) (S : ConNF.Support α) => { atoms := π • Sᴬ, nearLitters := π • Sᴺ } }
Equations
Equations
- ConNF.Support.instAdd = { add := fun (S T : ConNF.Support α) => { atoms := Sᴬ + Tᴬ, nearLitters := Sᴺ + Tᴺ } }
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.Subsupport.trans
[Params]
{S T U : BaseSupport}
(h₁ : S.Subsupport T)
(h₂ : T.Subsupport U)
:
S.Subsupport U
theorem
ConNF.BaseSupport.smul_subsupport_smul
[Params]
{S T : BaseSupport}
(h : S.Subsupport T)
(π : BasePerm)
:
(π • S).Subsupport (π • T)
Equations
- ConNF.instLESupport = { le := fun (S T : ConNF.Support α) => ∀ (A : α ↝ ⊥), S ⇘. A ≤ T ⇘. A }
Equations
Equations
- S.Subsupport T = ∀ (A : α ↝ ⊥), (S ⇘. A).Subsupport (T ⇘. A)
Instances For
theorem
ConNF.Support.Subsupport.le
[Params]
{α : TypeIndex}
{S T : Support α}
(h : S.Subsupport T)
:
theorem
ConNF.Support.Subsupport.trans
[Params]
{α : TypeIndex}
{S T U : Support α}
(h₁ : S.Subsupport T)
(h₂ : T.Subsupport U)
:
S.Subsupport U
theorem
ConNF.Support.smul_subsupport_smul
[Params]
{α : TypeIndex}
{S T : Support α}
(h : S.Subsupport T)
(π : StrPerm α)
:
(π • S).Subsupport (π • T)
theorem
ConNF.smul_eq_of_subsupport
[Params]
{α : TypeIndex}
{S T : Support α}
{π : StrPerm α}
(h₁ : S.Subsupport T)
(h₂ : S.Subsupport (π • T))
: