Base actions #
In this file, we define base actions.
Main declarations #
ConNF.BaseAction
: The type of base actions.
- atoms : Rel ConNF.Atom ConNF.Atom
- nearLitters : Rel ConNF.NearLitter ConNF.NearLitter
- atoms_dom_small' : ConNF.Small self.atoms.dom
- nearLitters_dom_small' : ConNF.Small self.nearLitters.dom
- atoms_oneOne' : self.atoms.OneOne
- mem_iff_mem' {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter} : self.atoms a₁ a₂ → self.nearLitters N₁ N₂ → (a₁ ∈ N₁ᴬ ↔ a₂ ∈ N₂ᴬ)
- interference_subset_dom' {N₁ N₂ : ConNF.NearLitter} : N₁ ∈ self.nearLitters.dom → N₂ ∈ self.nearLitters.dom → ConNF.interference N₁ N₂ ⊆ self.atoms.dom
- interference_subset_codom' {N₁ N₂ : ConNF.NearLitter} : N₁ ∈ self.nearLitters.codom → N₂ ∈ self.nearLitters.codom → ConNF.interference N₁ N₂ ⊆ self.atoms.codom
Instances For
theorem
ConNF.BaseAction.mem_symmDiff_iff_mem_symmDiff
[ConNF.Params]
{ξ : ConNF.BaseAction}
{a₁ a₂ : ConNF.Atom}
{N₁ N₂ N₃ N₄ : ConNF.NearLitter}
:
theorem
ConNF.BaseAction.nearLitters_coinjective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.nearLitters.Coinjective
theorem
ConNF.BaseAction.nearLitters_injective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.nearLitters.Injective
Equations
- ConNF.BaseAction.instBaseActionClass = { atoms := ConNF.BaseAction.atoms, atoms_oneOne := ⋯, nearLitters := ConNF.BaseAction.nearLitters, nearLitters_oneOne := ⋯ }
theorem
ConNF.BaseAction.ext
[ConNF.Params]
{ξ ζ : ConNF.BaseAction}
(atoms : ξᴬ = ζᴬ)
(nearLitters : ξᴺ = ζᴺ)
:
ξ = ζ
theorem
ConNF.BaseAction.nearLitters_dom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξᴺ.dom
theorem
ConNF.BaseAction.mem_iff_mem
[ConNF.Params]
{ξ : ConNF.BaseAction}
{a₁ a₂ : ConNF.Atom}
{N₁ N₂ : ConNF.NearLitter}
:
theorem
ConNF.BaseAction.litter_eq_litter_iff
[ConNF.Params]
{ξ : ConNF.BaseAction}
{N₁ N₂ N₃ N₄ : ConNF.NearLitter}
:
theorem
ConNF.BaseAction.interference_subset_dom
[ConNF.Params]
{ξ : ConNF.BaseAction}
{N₁ N₂ : ConNF.NearLitter}
:
theorem
ConNF.BaseAction.interference_subset_codom
[ConNF.Params]
{ξ : ConNF.BaseAction}
{N₁ N₂ : ConNF.NearLitter}
:
theorem
ConNF.BaseAction.atoms_codom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξᴬ.codom
theorem
ConNF.BaseAction.nearLitters_codom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξᴺ.codom
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConNF.BaseAction.instInv = { inv := ConNF.BaseAction.inv }
@[simp]
@[simp]
- mk [ConNF.Params] {ξ : ConNF.BaseAction} {N₁ N₂ : ConNF.NearLitter} : ξᴺ N₁ N₂ → ξ.litters N₁ᴸ N₂ᴸ
Instances For
Equations
- ConNF.BaseAction.instSuperLRelLitter = { superL := ConNF.BaseAction.litters }
theorem
ConNF.BaseAction.litters_dom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξᴸ.dom
theorem
ConNF.BaseAction.litters_codom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξᴸ.codom
@[simp]
Equations
- ConNF.BaseAction.instLE = { le := fun (ξ ζ : ConNF.BaseAction) => ξᴬ ≤ ζᴬ ∧ ξᴺ = ζᴺ }
def
ConNF.BaseAction.extend
[ConNF.Params]
(ξ : ConNF.BaseAction)
(r : Rel ConNF.Atom ConNF.Atom)
(r_dom_small : ConNF.Small r.dom)
(r_oneOne : r.OneOne)
(r_dom_disjoint : Disjoint ξᴬ.dom r.dom)
(r_codom_disjoint : Disjoint ξᴬ.codom r.codom)
(r_mem_iff_mem : ∀ {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter}, r a₁ a₂ → ξᴺ N₁ N₂ → (a₁ ∈ N₁ᴬ ↔ a₂ ∈ N₂ᴬ))
:
A definition that can be used to reduce the proof obligations of extending a base action.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
ConNF.BaseAction.le_extend
[ConNF.Params]
{ξ : ConNF.BaseAction}
{r : Rel ConNF.Atom ConNF.Atom}
{r_dom_small : ConNF.Small r.dom}
{r_oneOne : r.OneOne}
{r_dom_disjoint : Disjoint ξᴬ.dom r.dom}
{r_codom_disjoint : Disjoint ξᴬ.codom r.codom}
{r_mem_iff_mem : ∀ {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter}, r a₁ a₂ → ξᴺ N₁ N₂ → (a₁ ∈ N₁ᴬ ↔ a₂ ∈ N₂ᴬ)}
:
ξ ≤ ξ.extend r r_dom_small r_oneOne r_dom_disjoint r_codom_disjoint ⋯
Instances For
theorem
ConNF.BaseAction.Nice.mem_litter_dom_iff
[ConNF.Params]
{ξ : ConNF.BaseAction}
(h : ξ.Nice)
{N : ConNF.NearLitter}
(hN : N ∈ ξᴺ.dom)
{a : ConNF.Atom}
(ha : a ∉ ξᴬ.dom)
:
theorem
ConNF.BaseAction.Nice.mem_litter_codom_iff
[ConNF.Params]
{ξ : ConNF.BaseAction}
(h : ξ.Nice)
{N : ConNF.NearLitter}
(hN : N ∈ ξᴺ.codom)
{a : ConNF.Atom}
(ha : a ∉ ξᴬ.codom)
:
Extending orbits inside near-litters #
The set of atoms contained in near-litters but not the corresponding litters.
Instances For
structure
ConNF.BaseAction.InsideCandidate
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
(a : ConNF.Atom)
:
- not_mem_codom : a ∉ ξᴬ.codom
Instances For
theorem
ConNF.BaseAction.insideCandidate_iff
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
(a : ConNF.Atom)
:
theorem
ConNF.BaseAction.insideCandidates_not_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
:
¬ConNF.Small {a : ConNF.Atom | ξ.InsideCandidate L a}
theorem
ConNF.BaseAction.card_inside_lt_card_insideCandidates
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
:
Cardinal.mk ↑ξ.inside < Cardinal.mk ↑{a : ConNF.Atom | ξ.InsideCandidate L a}
def
ConNF.BaseAction.insideMap
[ConNF.Params]
(ξ : ConNF.BaseAction)
(L : ConNF.Litter)
:
↑ξ.inside ↪ ↑{a : ConNF.Atom | ξ.InsideCandidate L a}
Equations
- ξ.insideMap L = Nonempty.some ⋯
Instances For
theorem
ConNF.BaseAction.insideMap_litter_eq
[ConNF.Params]
{ξ : ConNF.BaseAction}
(L : ConNF.Litter)
(x : ↑ξ.inside)
:
theorem
ConNF.BaseAction.insideMap_not_mem_codom
[ConNF.Params]
{ξ : ConNF.BaseAction}
(L : ConNF.Litter)
(x : ↑ξ.inside)
:
↑((ξ.insideMap L) x) ∉ ξᴬ.codom
theorem
ConNF.BaseAction.insideMap_mem_nearLitter
[ConNF.Params]
{ξ : ConNF.BaseAction}
(L : ConNF.Litter)
(x : ↑ξ.inside)
{N : ConNF.NearLitter}
:
Equations
Instances For
theorem
ConNF.BaseAction.insideRel_dom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξ.insideRel.dom
theorem
ConNF.BaseAction.insideRel_injective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.insideRel.Injective
theorem
ConNF.BaseAction.insideRel_coinjective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.insideRel.Coinjective
theorem
ConNF.BaseAction.insideRel_mem_iff_mem
[ConNF.Params]
{ξ : ConNF.BaseAction}
{a₁ a₂ : ConNF.Atom}
{N₁ N₂ : ConNF.NearLitter}
(ha : ξ.insideRel a₁ a₂)
(hN : ξᴺ N₁ N₂)
:
Equations
- ξ.insideExtension = ξ.extend ξ.insideRel ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
theorem
ConNF.BaseAction.le_insideExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ ≤ ξ.insideExtension
theorem
ConNF.BaseAction.insideExtension_spec
[ConNF.Params]
{ξ : ConNF.BaseAction}
(N : ConNF.NearLitter)
(hN : N ∈ ξᴺ.dom)
:
Extending orbits outside near-litters #
- atom_not_mem (a : ConNF.Atom) : a ∈ ξᴬ.codom → aᴸ ≠ L
Instances For
Equations
- ⋯ = ⋯
Instances For
theorem
ConNF.BaseAction.card_not_sandbox
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
Cardinal.mk ↑{L : ConNF.Litter | ¬ξ.Sandbox L} ≤ Cardinal.mk ConNF.κ
theorem
ConNF.BaseAction.exists_sandbox
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
{L : ConNF.Litter | ξ.Sandbox L}.Nonempty
Equations
- ξ.sandbox = ⋯.some
Instances For
Instances For
theorem
ConNF.BaseAction.card_outside_lt_card_sandbox
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
Cardinal.mk ↑ξ.outside < Cardinal.mk ↑ξ.sandboxᴬ
Equations
- ξ.outsideMap = Nonempty.some ⋯
Instances For
theorem
ConNF.BaseAction.outsideMap_litter
[ConNF.Params]
{ξ : ConNF.BaseAction}
(x : ↑ξ.outside)
:
ξ.Sandbox (↑(ξ.outsideMap x))ᴸ
Instances For
theorem
ConNF.BaseAction.outsideRel_dom_small
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ConNF.Small ξ.outsideRel.dom
theorem
ConNF.BaseAction.outsideRel_injective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.outsideRel.Injective
theorem
ConNF.BaseAction.outsideRel_coinjective
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.outsideRel.Coinjective
theorem
ConNF.BaseAction.outsideRel_oneOne
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.outsideRel.OneOne
theorem
ConNF.BaseAction.outsideRel_mem_iff_mem
[ConNF.Params]
{ξ : ConNF.BaseAction}
(hξ : ∀ N ∈ ξᴺ.dom, Nᴬ \ Nᴸᴬ ⊆ ξᴬ.dom)
{a₁ a₂ : ConNF.Atom}
{N₁ N₂ : ConNF.NearLitter}
(ha : ξ.outsideRel a₁ a₂)
(hN : ξᴺ N₁ N₂)
:
def
ConNF.BaseAction.outsideExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
(hξ : ∀ N ∈ ξᴺ.dom, Nᴬ \ Nᴸᴬ ⊆ ξᴬ.dom)
:
Equations
- ξ.outsideExtension hξ = ξ.extend ξ.outsideRel ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
theorem
ConNF.BaseAction.outsideExtension_atoms
[ConNF.Params]
(ξ : ConNF.BaseAction)
(hξ : ∀ N ∈ ξᴺ.dom, Nᴬ \ Nᴸᴬ ⊆ ξᴬ.dom)
:
theorem
ConNF.BaseAction.le_outsideExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
(hξ : ∀ N ∈ ξᴺ.dom, Nᴬ \ Nᴸᴬ ⊆ ξᴬ.dom)
:
ξ ≤ ξ.outsideExtension hξ
theorem
ConNF.BaseAction.outsideExtension_spec
[ConNF.Params]
{ξ : ConNF.BaseAction}
{hξ : ∀ N ∈ ξᴺ.dom, Nᴬ \ Nᴸᴬ ⊆ ξᴬ.dom}
(N : ConNF.NearLitter)
(hN : N ∈ ξᴺ.dom)
:
Nice extensions #
Instances For
theorem
ConNF.BaseAction.le_doubleInsideExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ ≤ ξ.doubleInsideExtension
theorem
ConNF.BaseAction.doubleInsideExtension_dom
[ConNF.Params]
{ξ : ConNF.BaseAction}
(N : ConNF.NearLitter)
(hN : N ∈ ξᴺ.dom)
:
theorem
ConNF.BaseAction.doubleInsideExtension_codom
[ConNF.Params]
{ξ : ConNF.BaseAction}
(N : ConNF.NearLitter)
(hN : N ∈ ξᴺ.codom)
:
theorem
ConNF.BaseAction.niceExtension_aux
[ConNF.Params]
{ξ : ConNF.BaseAction}
(N : ConNF.NearLitter)
(hN : N ∈ ξᴺ.codom)
:
Instances For
theorem
ConNF.BaseAction.le_niceExtension
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ ≤ ξ.niceExtension
theorem
ConNF.BaseAction.niceExtension_nice
[ConNF.Params]
(ξ : ConNF.BaseAction)
:
ξ.niceExtension.Nice
@[simp]
@[simp]