All proofs
Project-declaredLean 4.21.0-rc3 · mathlib@5b77ef3c

Smul near Litter of smul litter

ConNF.BaseAction.smul_nearLitter_of_smul_litter

Project documentation

The main lemma about how approximations interact with actions.

Exact Lean statement

theorem smul_nearLitter_of_smul_litter [Level] [CoherentData] {β : TypeIndex} [LeLevel β]
    {ξ : BaseAction} {ψ : BaseApprox} {A : β ↝ ⊥} {π : BasePerm} {N₁ N₂ : NearLitter}
    (hξ : ξ.FlexApprox A ψ) (hψ : ψ.ExactlyApproximates π) (hNξ : ξᴺ N₁ N₂) (hNπ : π • N₁ᴸ = N₂ᴸ) :
    π • N₁ = N₂

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem smul_nearLitter_of_smul_litter [Level] [CoherentData] {β : TypeIndex} [LeLevel β]    {ξ : BaseAction} {ψ : BaseApprox} {A : β ↝ ⊥} {π : BasePerm} {N₁ N₂ : NearLitter}    (hξ : ξ.FlexApprox A ψ) (hψ : ψ.ExactlyApproximates π) (hNξ : ξᴺ N₁ N₂) (hNπ : π • N₁ᴸ = N₂ᴸ) :    π • N₁ = N₂ := by  apply NearLitter.ext  calc (π • N₁)ᴬ    _ = π • N₁ᴬ := rfl    _ = π • (N₁ᴸᴬ ∆ (N₁ᴸᴬ ∆ N₁ᴬ)) := by rw [symmDiff_symmDiff_cancel_left]    _ = (π • N₁ᴸᴬ) ∆ (π • N₁ᴬ ∆ N₁ᴸᴬ) := by rw [Set.smul_set_symmDiff, symmDiff_comm N₁ᴬ]    _ = (π • (N₁ᴸᴬ ∩ ψ.exceptions.dom ∪ N₁ᴸᴬ \ ψ.exceptions.dom)) ∆ (π • N₁ᴬ ∆ N₁ᴸᴬ) :=        by rw [Set.inter_union_diff]    _ = (π • (N₁ᴸᴬ ∩ ψ.exceptions.dom) ∪ π • (N₁ᴸᴬ \ ψ.exceptions.dom)) ∆ (π • N₁ᴬ ∆ N₁ᴸᴬ) :=        by rw [Set.smul_set_union]    _ = (π • (N₁ᴸᴬ ∩ ψ.exceptions.dom) ∪ N₂ᴸᴬ \ ψ.exceptions.dom) ∆ (π • N₁ᴬ ∆ N₁ᴸᴬ) :=        by rw [hψ.smulSet_nearLitter hNπ]    _ = ((ψ.exceptions.image (N₁ᴸᴬ ∩ ψ.exceptions.dom)) ∪ N₂ᴸᴬ \ ψ.exceptions.dom) ∆          (ψ.exceptions.image (N₁ᴬ ∆ N₁ᴸᴬ)) := by        rw [hψ.smulSet_eq_exceptions_image, hψ.smulSet_eq_exceptions_image]        · exact hξ.symmDiff_subset_dom N₂, hNξ        · exact Set.inter_subset_right    _ = ((ψ.exceptions.image (N₁ᴸᴬ ∩ ψ.exceptions.dom)) ∆ (ψ.exceptions.image (N₁ᴬ ∆ N₁ᴸᴬ))) ∪          N₂ᴸᴬ \ ψ.exceptions.dom := by        apply Set.union_symmDiff_of_disjoint        rw [Set.disjoint_iff_inter_eq_empty, Set.eq_empty_iff_forall_notMem]        rintro a ha, b, hb        exact ha.2 (ψ.exceptions_permutative.mem_dom hb.2)    _ = ψ.exceptions.image ((N₁ᴸᴬ ∩ ψ.exceptions.dom) ∆ (N₁ᴬ ∆ N₁ᴸᴬ)) ∪          N₂ᴸᴬ \ ψ.exceptions.dom := by rw [ ψ.exceptions_permutative.image_symmDiff]    _ = ψ.exceptions.image (((N₁ᴸᴬ ∩ ψ.exceptions.dom) ∆ N₁ᴸᴬ) ∆ N₁ᴬ) ∪          N₂ᴸᴬ \ ψ.exceptions.dom := by rw [symmDiff_assoc, symmDiff_comm N₁ᴬ]    _ = ψ.exceptions.image ((N₁ᴸᴬ \ ψ.exceptions.dom) ∆ N₁ᴬ) ∪ N₂ᴸᴬ \ ψ.exceptions.dom :=        by rw [Set.inter_symmDiff_left]    _ = ψ.exceptions.image (N₁ᴬ \ (N₁ᴸᴬ \ ψ.exceptions.dom)) ∪ N₂ᴸᴬ \ ψ.exceptions.dom := by        rw [Set.symmDiff_def, Rel.image_union, Set.diff_diff, Rel.image_empty_of_disjoint_dom,          Set.empty_union]        rw [Set.disjoint_iff_inter_eq_empty, Set.eq_empty_iff_forall_notMem]        intro a ha        exact ha.2.2 (Or.inl ha.1)    _ = ψ.exceptions.image (N₁ᴬ ∩ ψ.exceptions.dom) ∪ N₂ᴸᴬ \ ψ.exceptions.dom := by        congr 1        apply Rel.image_eq_of_inter_eq        ext a        simp only [Set.mem_inter_iff, Set.mem_diff]        tauto    _ = N₂ᴬ := by        ext a        rw [hξ.mem_iff_mem hNξ a]        constructor        · rintro (b, hb, hba | ha)          · exact Or.inl b, hb.1, hba          · exact Or.inr ha.2, ha.1        · rintro (b, hb, hba | ha)          · exact Or.inl b, hb, a, hba, hba          · exact Or.inr ha.2, ha.1
Project
Con(NF)
License
Apache-2.0
Commit
55b939a3acf9
Source
ConNF/FOA/FlexApprox.lean:53-106

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.21.0-rc3

Smul interference

ConNF.BasePerm.smul_interference

Plain-language statement

Base permutations commute with the interference of near-litters.

set theoryconsistencyfoundations

Source project: Con(NF)

Person-level attribution pending.

View proof record
Project-declaredLean 4.21.0-rc3

Card t Set le

ConNF.card_tSet_le

Plain-language statement

Note that we cannot prove the reverse implication because all of our hypotheses at this stage are about permutations, not objects.

set theoryconsistencyfoundations

Source project: Con(NF)

Person-level attribution pending.

View proof record