Flexible approximations #
In this file, we define flexible approximations.
Main declarations #
ConNF.FlexApprox
: Flexible approximations.
structure
ConNF.BaseAction.FlexApprox
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(A : β ↝ ⊥)
(ξ : ConNF.BaseAction)
(ψ : ConNF.BaseApprox)
:
TODO: Fix definition in blueprint to this.
- flexible_of_mem_dom : ∀ {L : ConNF.Litter}, L ∈ ψᴸ.dom → ¬ConNF.Inflexible A L
- litters_of_flexible : ∀ {L₁ L₂ : ConNF.Litter}, ¬ConNF.Inflexible A L₁ → ξᴸ L₁ L₂ → ψᴸ L₁ L₂
Instances For
theorem
ConNF.BaseAction.FlexApprox.mono
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
{A : β ↝ ⊥}
{ξ ζ : ConNF.BaseAction}
{ψ : ConNF.BaseApprox}
(hξ : ConNF.BaseAction.FlexApprox A ξ ψ)
(h : ζ ≤ ξ)
:
theorem
ConNF.BaseAction.smul_nearLitter_of_smul_litter
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
{ξ : ConNF.BaseAction}
{ψ : ConNF.BaseApprox}
{A : β ↝ ⊥}
{π : ConNF.BasePerm}
{N₁ N₂ : ConNF.NearLitter}
(hξ : ConNF.BaseAction.FlexApprox A ξ ψ)
(hψ : ψ.ExactlyApproximates π)
(hNξ : ξᴺ N₁ N₂)
(hNπ : π • N₁ᴸ = N₂ᴸ)
:
The main lemma about how approximations interact with actions.
theorem
ConNF.BaseAction.card_litter_dom_compl
[ConNF.Params]
{ξ : ConNF.BaseAction}
:
Cardinal.mk ↑(ξᴸ.dom ∪ ξᴸ.codom)ᶜ = Cardinal.mk ConNF.μ
def
ConNF.BaseAction.littersExtension'
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
Rel ConNF.Litter ConNF.Litter
Instances For
theorem
ConNF.BaseAction.littersExtension'_permutative
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.littersExtension'.Permutative
def
ConNF.BaseAction.littersExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
Rel ConNF.Litter ConNF.Litter
Equations
Instances For
theorem
ConNF.BaseAction.littersExtension_bijective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.littersExtension.Bijective
TODO: Move this to PermutativeExtension
and do it abstractly.
Equations
- ξ.litterPerm = ξ.littersExtension.toEquiv ⋯
Instances For
theorem
ConNF.BaseAction.litterPerm_eq
[ConNF.Params]
{ξ : ConNF.BaseAction}
{L₁ L₂ : ConNF.Litter}
(h : ξᴸ L₁ L₂)
:
ξ.litterPerm L₁ = L₂
theorem
ConNF.BaseAction.diff_insideAll_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
:
ConNF.Small (Lᴬ \ ξ.insideAll)
theorem
ConNF.BaseAction.card_insideAll_inter
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
:
Cardinal.mk ↑(ξ.insideAll \ (ξᴬ.dom ∪ ξᴬ.codom) ∩ Lᴬ) = Cardinal.mk ConNF.κ
def
ConNF.BaseAction.orbitRestriction
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
Rel.OrbitRestriction (ξᴬ.dom ∪ ξᴬ.codom) ConNF.Litter
Equations
Instances For
Instances For
theorem
ConNF.BaseAction.atomPerm_permutative
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.atomPerm.Permutative
theorem
ConNF.BaseAction.atomPerm_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξ.atomPerm.dom
theorem
ConNF.BaseAction.atomPerm_mem_iff_mem
[ConNF.Params]
{ξ : ConNF.BaseAction}
(hξ : ξ.Nice)
{a₁ a₂ : ConNF.Atom}
{N₁ N₂ : ConNF.NearLitter}
(ha : ξ.atomPerm a₁ a₂)
(hN : ξᴺ N₁ N₂)
:
def
ConNF.BaseAction.flexLitterRel
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
Rel ConNF.Litter ConNF.Litter
Equations
- ξ.flexLitterRel A = ξᴸ ⊓ fun (L₁ L₂ : ConNF.Litter) => ¬ConNF.Inflexible A L₁ ∧ ¬ConNF.Inflexible A L₂
Instances For
theorem
ConNF.BaseAction.flexLitterRel_dom_small
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
ConNF.Small (ξ.flexLitterRel A).dom
theorem
ConNF.BaseAction.card_inflexible
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(A : β ↝ ⊥)
:
Cardinal.mk ↑{L : ConNF.Litter | ¬ConNF.Inflexible A L} = Cardinal.mk ConNF.μ
theorem
ConNF.BaseAction.card_inflexible_diff_dom
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
Cardinal.mk ↑({L : ConNF.Litter | ¬ConNF.Inflexible A L} \ (ξᴸ.dom ∪ ξᴸ.codom)) = Cardinal.mk ConNF.μ
def
ConNF.BaseAction.flexLitterPerm
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
Rel ConNF.Litter ConNF.Litter
Equations
Instances For
theorem
ConNF.BaseAction.le_flexLitterPerm
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
ξ.flexLitterRel A ≤ ξ.flexLitterPerm A
theorem
ConNF.BaseAction.flexLitterPerm_permutative
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
(ξ.flexLitterPerm A).Permutative
theorem
ConNF.BaseAction.dom_flexLitterPerm_subset
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
(ξ.flexLitterPerm A).dom ⊆ {L : ConNF.Litter | ¬ConNF.Inflexible A L}
def
ConNF.BaseAction.flexApprox'
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
ConNF.BaseApprox
Equations
- ξ.flexApprox' A = { exceptions := ξ.atomPerm, litters := ξ.flexLitterPerm A, exceptions_permutative := ⋯, litters_permutative' := ⋯, exceptions_small := ⋯ }
Instances For
def
ConNF.BaseAction.MapFlexible
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
Equations
- ξ.MapFlexible A = ∀ {L₁ L₂ : ConNF.Litter}, ξᴸ L₁ L₂ → (ConNF.Inflexible A L₁ ↔ ConNF.Inflexible A L₂)
Instances For
theorem
ConNF.BaseAction.flexApprox_flexApprox'
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
{ξ : ConNF.BaseAction}
{A : β ↝ ⊥}
(hξ₁ : ξ.MapFlexible A)
(hξ₂ : ξ.Nice)
:
ConNF.BaseAction.FlexApprox A ξ (ξ.flexApprox' A)
def
ConNF.BaseAction.flexApprox
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
(ξ : ConNF.BaseAction)
(A : β ↝ ⊥)
:
ConNF.BaseApprox
A flexible approximation for ξ
along A
.
Equations
- ξ.flexApprox A = ξ.niceExtension.flexApprox' A
Instances For
theorem
ConNF.BaseAction.niceExtension_mapFlexible
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
{ξ : ConNF.BaseAction}
{A : β ↝ ⊥}
(hξ : ξ.MapFlexible A)
:
ξ.niceExtension.MapFlexible A
theorem
ConNF.BaseAction.flexApprox_flexApprox
[ConNF.Params]
[ConNF.Level]
[ConNF.CoherentData]
{β : ConNF.TypeIndex}
[ConNF.LeLevel β]
{ξ : ConNF.BaseAction}
{A : β ↝ ⊥}
(hξ : ξ.MapFlexible A)
:
ConNF.BaseAction.FlexApprox A ξ (ξ.flexApprox A)