Structural actions #
In this file, we define structural actions, and prove the freedom of action theorem for actions.
Main declarations #
ConNF.StrAction
: Structural actions.
@[reducible, inline]
Equations
Instances For
def
ConNF.StrAction.Coherent
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
(ξ : StrAction β)
:
Equations
- ξ.Coherent = ∀ (A : β ↝ ⊥) (L₁ L₂ : ConNF.Litter), (ξ A)ᴸ L₁ L₂ → ConNF.CoherentAt ξ A L₁ L₂
Instances For
theorem
ConNF.StrAction.mapFlexible_of_coherent
[Params]
[Level]
[CoherentData]
{β : TypeIndex}
[LeLevel β]
{ξ : StrAction β}
(hξ : ξ.Coherent)
(A : β ↝ ⊥)
:
(ξ A).MapFlexible A
TODO: Maybe move this to BaseActionClass
?
- nearLitters (N₁ N₂ : NearLitter) : ξᴺ N₁ N₂ → N₂ = π • N₁
Instances For
theorem
ConNF.BaseAction.Approximates.litters
[Params]
{ξ : BaseAction}
{π : BasePerm}
(h : ξ.Approximates π)
(L₁ L₂ : Litter)
:
theorem
ConNF.BaseAction.Approximates.mono
[Params]
{ψ χ : BaseAction}
{π : BasePerm}
(hχ : χ.Approximates π)
(h : ψ ≤ χ)
:
ψ.Approximates π
def
ConNF.StrAction.Approximates
[Params]
{β : TypeIndex}
[ModelData β]
(ξ : StrAction β)
(ρ : AllPerm β)
:
Equations
- ξ.Approximates ρ = ∀ (A : β ↝ ⊥), (ξ A).Approximates (ρᵁ A)
Instances For
def
ConNF.StrAction.flexApprox
[Params]
[Level]
{β : TypeIndex}
[LeLevel β]
[CoherentData]
(ξ : StrAction β)
:
Equations
- ξ.flexApprox A = (ξ A).flexApprox A
Instances For
theorem
ConNF.StrAction.flexApprox_coherent
[Params]
[Level]
{β : TypeIndex}
[LeLevel β]
[CoherentData]
(ξ : StrAction β)
(hξ : ∀ (A : β ↝ ⊥), (ξ A).MapFlexible A)
:
TODO: Put this in the blueprint.