Imports
/-
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.QFT.PerturbationTheory.FieldOpFreeAlgebra.SuperCommute
public import Mathlib.Algebra.RingQuot
public import Mathlib.RingTheory.TwoSidedIdeal.OperationsThe Wick Algebra
This is the algebra with the minimal assumptions necessary to prove Wick's theorem. It satisfies the appropriate universality conditions with respect to the operator algebra.
@[expose] public sectionThe set contains the super-commutators equal to zero in the operator algebra. This contains e.g. the super-commutator of two creation operators.
def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) :=
{ x |
(∃ (φ1 φ2 φ3 : 𝓕.CrAnFieldOp),
x = [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF)
∨ (∃ (φc φc' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φc = .create) (_ : 𝓕 |>ᶜ φc' = .create),
x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛF)
∨ (∃ (φa φa' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φa = .annihilate) (_ : 𝓕 |>ᶜ φa' = .annihilate),
x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛF)
∨ (∃ (φ φ' : 𝓕.CrAnFieldOp) (_ : ¬ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φ')),
x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛF)}
For a field specification 𝓕, the algebra 𝓕.WickAlgebra is defined as the quotient
of the free algebra 𝓕.FieldOpFreeAlgebra by the ideal generated by
[ofCrAnOpF φc, ofCrAnOpF φc']ₛF for φc and φc' field creation operators.
This corresponds to the condition that two creation operators always super-commute.
[ofCrAnOpF φa, ofCrAnOpF φa']ₛF for φa and φa' field annihilation operators.
This corresponds to the condition that two annihilation operators always super-commute.
[ofCrAnOpF φ, ofCrAnOpF φ']ₛF for φ and φ' operators with different statistics.
This corresponds to the condition that two operators with different statistics always
super-commute. In other words, fermions and bosons always super-commute.
[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF. This corresponds to the condition,
when combined with the conditions above, that the super-commutator is in the center
of the algebra.
def WickAlgebra : Type := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotientinstance : Semiring (𝓕.WickAlgebra) := inferInstanceAs <| Semiring <|
(TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotientinstance : Algebra ℂ (𝓕.WickAlgebra) := inferInstanceAs <| Algebra ℂ <|
(TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotientinstance: Ring (𝓕.WickAlgebra) := inferInstanceAs <| Ring <|
(TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotientinstance : Coe (𝓕.FieldOpFreeAlgebra) (𝓕.WickAlgebra) :=
⟨(TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.toQuotient⟩
The instance of a setoid on FieldOpFreeAlgebra from the ideal TwoSidedIdeal.
instance : Setoid (FieldOpFreeAlgebra 𝓕) := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.toSetoid𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ x ≈ y ↔ (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon x y
rfl All goals completed! 🐙
lemma equiv_iff_exists_add (x y : FieldOpFreeAlgebra 𝓕) :
x ≈ y ↔ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ x ≈ y ↔ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
constructor mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ x ≈ y → ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ (∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) → x ≈ y <;> mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ x ≈ y → ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebra⊢ (∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) → x ≈ y intro h mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ x ≈ y
· mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:x ≈ y⊢ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet rw [equiv_iff_sub_mem_ideal mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:x - y ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:x - y ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet] at h mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:x - y ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
aesop All goals completed! 🐙
· mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrah:∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ x ≈ y obtain ⟨a, rfl, ha⟩ := h mpr 𝓕:FieldSpecificationy:𝓕.FieldOpFreeAlgebraa:𝓕.FieldOpFreeAlgebraha:a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ y + a ≈ y
simpa [equiv_iff_sub_mem_ideal] All goals completed! 🐙
For a field specification 𝓕, ι is defined as the projection
𝓕.FieldOpFreeAlgebra →ₐ[ℂ] 𝓕.WickAlgebra
taking each element of 𝓕.FieldOpFreeAlgebra to its equivalence class in WickAlgebra 𝓕.
def ι : FieldOpFreeAlgebra 𝓕 →ₐ[ℂ] WickAlgebra 𝓕 where
toFun := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.mk'
map_one' := rfl
map_mul' _ _ := rfl
map_zero' := rfl
map_add' _ _ := rfl
commutes' _ := rfllemma ι_surjective : Function.Surjective (@ι 𝓕) := by 𝓕:FieldSpecification⊢ Function.Surjective ⇑ι
intro x 𝓕:FieldSpecificationx:𝓕.WickAlgebra⊢ ∃ a, ι a = x
obtain ⟨x⟩ := x mk 𝓕:FieldSpecificationx✝:𝓕.WickAlgebrax:𝓕.FieldOpFreeAlgebra⊢ ∃ a, ι a = Quot.mk (⇑(TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.toSetoid) x
aesop All goals completed! 🐙lemma ι_apply (x : FieldOpFreeAlgebra 𝓕) : ι x = Quotient.mk _ x := rfl
lemma ι_of_mem_fieldOpIdealSet (x : FieldOpFreeAlgebra 𝓕) (hx : x ∈ 𝓕.fieldOpIdealSet) :
ι x = 0 := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ι x = 0
rw [ι_apply 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ⟦x⟧ = 0 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ⟦x⟧ = 0] 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ⟦x⟧ = 0
change ⟦x⟧ = ⟦0⟧ 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ⟦x⟧ = ⟦0⟧
simp only [ringConGen, Quotient.eq] 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ RingConGen.Rel (fun a b => a - b ∈ 𝓕.fieldOpIdealSet) x 0
refine RingConGen.Rel.of x 0 ?_ 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ x - 0 ∈ 𝓕.fieldOpIdealSet
simpa using hx All goals completed! 🐙lemma ι_superCommuteF_of_create_create (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = .create)
(hφc' : 𝓕 |>ᶜ φc' = .create) : ι [ofCrAnOpF φc, ofCrAnOpF φc']ₛF = 0 := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.create⊢ ι ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0
apply ι_of_mem_fieldOpIdealSet 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.create⊢ (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSet
simp only [fieldOpIdealSet] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.create⊢ (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈
{x |
(∃ φ1 φ2 φ3, x = (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) ∨
(∃ φc φc',
∃ (_ : 𝓕|>ᶜφc = CreateAnnihilate.create) (_ : 𝓕|>ᶜφc' = CreateAnnihilate.create),
x = (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) ∨
(∃ φa φa',
∃ (_ : 𝓕|>ᶜφa = CreateAnnihilate.annihilate) (_ : 𝓕|>ᶜφa' = CreateAnnihilate.annihilate),
x = (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) ∨
∃ φ φ', ∃ (_ : ¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'), x = (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')}
aesop All goals completed! 🐙lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp)
(hφa : 𝓕 |>ᶜ φa = .annihilate) (hφa' : 𝓕 |>ᶜ φa' = .annihilate) :
ι [ofCrAnOpF φa, ofCrAnOpF φa']ₛF = 0 := by 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilate⊢ ι ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0
apply ι_of_mem_fieldOpIdealSet 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilate⊢ (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSet
simp only [fieldOpIdealSet] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilate⊢ (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈
{x |
(∃ φ1 φ2 φ3, x = (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) ∨
(∃ φc φc',
∃ (_ : 𝓕|>ᶜφc = CreateAnnihilate.create) (_ : 𝓕|>ᶜφc' = CreateAnnihilate.create),
x = (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) ∨
(∃ φa φa',
∃ (_ : 𝓕|>ᶜφa = CreateAnnihilate.annihilate) (_ : 𝓕|>ᶜφa' = CreateAnnihilate.annihilate),
x = (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) ∨
∃ φ φ', ∃ (_ : ¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'), x = (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')}
aesop All goals completed! 🐙lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp}
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:𝓕.crAnStatistics φ ≠ 𝓕.crAnStatistics ψ⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
apply ι_of_mem_fieldOpIdealSet 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:𝓕.crAnStatistics φ ≠ 𝓕.crAnStatistics ψ⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ 𝓕.fieldOpIdealSet
simp only [fieldOpIdealSet] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:𝓕.crAnStatistics φ ≠ 𝓕.crAnStatistics ψ⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈
{x |
(∃ φ1 φ2 φ3, x = (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) ∨
(∃ φc φc',
∃ (_ : 𝓕|>ᶜφc = CreateAnnihilate.create) (_ : 𝓕|>ᶜφc' = CreateAnnihilate.create),
x = (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) ∨
(∃ φa φa',
∃ (_ : 𝓕|>ᶜφa = CreateAnnihilate.annihilate) (_ : 𝓕|>ᶜφa' = CreateAnnihilate.annihilate),
x = (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) ∨
∃ φ φ', ∃ (_ : ¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'), x = (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')}
aesop All goals completed! 🐙
lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp)
(h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule fermionic) :
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnOpF ψ) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnOpF ψ)) = 0 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0 ← ofCrAnListF_singleton 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0] at h ⊢ 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0
rcases statistic_ne_of_superCommuteF_fermionic h with h | h inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:ofList 𝓕.crAnStatistics [φ] ≠ ofList 𝓕.crAnStatistics [ψ]⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) = 0⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0
· inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:ofList 𝓕.crAnStatistics [φ] ≠ ofList 𝓕.crAnStatistics [ψ]⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0 simp only [ofCrAnListF_singleton] inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:ofList 𝓕.crAnStatistics [φ] ≠ ofList 𝓕.crAnStatistics [ψ]⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
apply ι_superCommuteF_of_diff_statistic inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:ofList 𝓕.crAnStatistics [φ] ≠ ofList 𝓕.crAnStatistics [ψ]⊢ 𝓕.crAnStatistics φ ≠ 𝓕.crAnStatistics ψ
simpa using h All goals completed! 🐙
· inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph✝:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionich:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) = 0⊢ ι ((superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ])) = 0 simp [h] All goals completed! 🐙lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule bosonic ∨
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [ψ] with h | h inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
· inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0 simp_all [ofCrAnListF_singleton] All goals completed! 🐙
· inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [ψ]) ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0 simp_all only [ofCrAnListF_singleton] inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ) ∈ statisticSubmodule bosonic ∨
ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = 0
exact Or.inr (ι_superCommuteF_zero_of_fermionic _ _ h) All goals completed! 🐙Super-commutes are in the center
@[simp]
lemma ι_superCommuteF_ofCrAnOpF_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0
apply ι_of_mem_fieldOpIdealSet 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSet
simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq] 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ (∃ φ1_1 φ2_1 φ3_1,
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) =
(superCommuteF (ofCrAnOpF φ1_1)) ((superCommuteF (ofCrAnOpF φ2_1)) (ofCrAnOpF φ3_1))) ∨
(∃ φc,
𝓕|>ᶜφc = CreateAnnihilate.create ∧
∃ x,
𝓕|>ᶜx = CreateAnnihilate.create ∧
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) =
(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF x)) ∨
(∃ φa,
𝓕|>ᶜφa = CreateAnnihilate.annihilate ∧
∃ x,
𝓕|>ᶜx = CreateAnnihilate.annihilate ∧
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) =
(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF x)) ∨
∃ φ φ',
¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ' ∧
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) =
(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')
aesop All goals completed! 🐙
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, ofCrAnOpF φ3]ₛF = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) (ofCrAnOpF φ3)) = 0
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnOpF φ2))) (ofCrAnOpF φ3)) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 ← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF φ3)) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 ← ofCrAnListF_singleton 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0] 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0
· inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 rw [bonsonic_superCommuteF_symm h inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0 inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0]inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0
simp [ofCrAnListF_singleton] All goals completed! 🐙
· inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 rcases ofCrAnListF_bosonic_or_fermionic [φ3] with h' | h' inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0
· inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 rw [superCommuteF_bonsonic_symm h' inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0 inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0]inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule bosonic⊢ ι (-(superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0
simp [ofCrAnListF_singleton] All goals completed! 🐙
· inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF [φ3])) = 0 rw [superCommuteF_fermionic_fermionic_symm h h' inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0 inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0]inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionich':ofCrAnListF [φ3] ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF (ofCrAnListF [φ3])) ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) = 0
simp [ofCrAnListF_singleton] All goals completed! 🐙
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 : 𝓕.CrAnFieldOp)
(φs : List 𝓕.CrAnFieldOp) :
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, ofCrAnListF φs]ₛF = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) (ofCrAnListF φs)) = 0
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnOpF φ2))) (ofCrAnListF φs)) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0 ← ofCrAnListF_singleton 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0] 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOp⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0
· inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0 rw [superCommuteF_bosonic_ofCrAnListF_eq_sum _ _ h inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι
(∑ n,
ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0 inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι
(∑ n,
ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0]inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule bosonic⊢ ι
(∑ n,
ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0
simp [ofCrAnListF_singleton, ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF] All goals completed! 🐙
· inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι ((superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnListF φs)) = 0 rw [superCommuteF_fermionic_ofCrAnListF_eq_sum _ _ h inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι
(∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0 inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι
(∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0]inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]) ∈ statisticSubmodule fermionic⊢ ι
(∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF ((superCommuteF (ofCrAnListF [φ1])) (ofCrAnListF [φ2]))) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)) =
0
simp only [ofCrAnListF_singleton, List.get_eq_getElem, Algebra.smul_mul_assoc, map_sum,
map_smul, map_mul, ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF, mul_zero,
zero_mul, MulActionWithZero.smul_zero, Finset.sum_const_zero] All goals completed! 🐙
@[simp]
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_fieldOpFreeAlgebra (φ1 φ2 : 𝓕.CrAnFieldOp)
(a : 𝓕.FieldOpFreeAlgebra) : ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a) = 0
change (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) a = _ 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a = 0
have h1 : (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a) = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah1:ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a = 0
apply (ofCrAnListFBasis.ext fun l ↦ ?_) 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) (ofCrAnListFBasis l) =
0 (ofCrAnListFBasis l) 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah1:ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a = 0
simp [ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF] 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah1:ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a = 0 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah1:ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ (ι.toLinearMap ∘ₗ superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a = 0
aesop All goals completed! 🐙
lemma ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 : 𝓕.CrAnFieldOp)
(a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF -
ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF * ι a = 0 := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0
rcases ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero φ1 φ2 with h | h inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0
swap inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0
· inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a = 0 simp [h] All goals completed! 🐙
trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a =
-ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a)𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ -ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a) = 0
· 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a =
-ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a) rw [bosonic_superCommuteF h 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a =
-ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) * a - a * (superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a =
-ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) * a - a * (superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))] 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) - ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2)) * ι a =
-ι ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) * a - a * (superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))
simp All goals completed! 🐙
· 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah:(superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2) ∈ statisticSubmodule bosonic⊢ -ι ((superCommuteF ((superCommuteF (ofCrAnOpF φ1)) (ofCrAnOpF φ2))) a) = 0 simp All goals completed! 🐙
lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_mem_center (φ ψ : 𝓕.CrAnFieldOp) :
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ Subalgebra.center ℂ 𝓕.WickAlgebra := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOp⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) ∈ Subalgebra.center ℂ 𝓕.WickAlgebra
rw [Subalgebra.mem_center_iff 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOp⊢ ∀ (b : 𝓕.WickAlgebra),
b * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * b 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOp⊢ ∀ (b : 𝓕.WickAlgebra),
b * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * b] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOp⊢ ∀ (b : 𝓕.WickAlgebra),
b * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * b
intro a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.WickAlgebra⊢ a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * a
obtain ⟨a, rfl⟩ := ι_surjective a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a
have h0 := ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF φ ψ a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah0:ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) - ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a
trans ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah0:ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) - ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah0:ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) - ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a = 0⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0 = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a
· 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah0:ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) - ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a = 0⊢ ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0 simp [← h0] All goals completed! 🐙
· 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpψ:𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebrah0:ι a * ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) - ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a = 0⊢ ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0 = ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a simp [add_zero] All goals completed! 🐙The kernel of ι
lemma ι_eq_zero_iff_mem_ideal (x : FieldOpFreeAlgebra 𝓕) :
ι x = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι x = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rw [ι_apply 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ⟦x⟧ = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ⟦x⟧ = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet] 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ⟦x⟧ = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
change ⟦x⟧ = ⟦0⟧ ↔ _ 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ⟦x⟧ = ⟦0⟧ ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
simp_all only [Quotient.eq, Con.rel_eq_coe, RingCon.toCon_coe_eq_coe, TwoSidedIdeal.mem_ofRingCon] All goals completed! 🐙
lemma bosonicProjF_mem_fieldOpIdealSet_or_zero (x : FieldOpFreeAlgebra 𝓕)
(hx : x ∈ 𝓕.fieldOpIdealSet) :
x.bosonicProjF.1 ∈ 𝓕.fieldOpIdealSet ∨ x.bosonicProjF = 0 := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ bosonicProjF x = 0
have hx' := hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSethx':x ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ bosonicProjF x = 0
simp only [fieldOpIdealSet, exists_prop, Set.mem_setOf_eq] at hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx':x ∈ 𝓕.fieldOpIdealSethx:(∃ φ1 φ2 φ3, x = (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) ∨
(∃ φc φc',
𝓕|>ᶜφc = CreateAnnihilate.create ∧
𝓕|>ᶜφc' = CreateAnnihilate.create ∧ x = (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) ∨
(∃ φa φa',
𝓕|>ᶜφa = CreateAnnihilate.annihilate ∧
𝓕|>ᶜφa' = CreateAnnihilate.annihilate ∧ x = (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) ∨
∃ φ φ', ¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ' ∧ x = (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')⊢ ↑(bosonicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ bosonicProjF x = 0
rcases hx with ⟨φ1, φ2, φ3, rfl⟩ | ⟨φc, φc', hφc, hφc', rfl⟩ | ⟨φa, φa', hφa, hφa', rfl⟩ |
⟨φ, φ', hdiff, rfl⟩ inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0inr.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0inr.inr.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
· inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 rcases superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic φ1 φ2 φ3 with h | h inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0
· inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 left inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet
rw [bosonicProjF_of_mem_bosonic _ h inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet] inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 right inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ bosonicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0
rw [bosonicProjF_of_mem_fermionic _ h inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φc φc' with h | h inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0
· inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 left inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet
rw [bosonicProjF_of_mem_bosonic _ h inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 right inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ bosonicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0
rw [bosonicProjF_of_mem_fermionic _ h inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inr.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φa φa' with h | h inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0
· inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 left inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet
rw [bosonicProjF_of_mem_bosonic _ h inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 right inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ bosonicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0
rw [bosonicProjF_of_mem_fermionic _ h inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ φ' with h | h inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
· inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 left inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet
rw [bosonicProjF_of_mem_bosonic _ h inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑(bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 right inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ bosonicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
rw [bosonicProjF_of_mem_fermionic _ h inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
lemma fermionicProjF_mem_fieldOpIdealSet_or_zero (x : FieldOpFreeAlgebra 𝓕)
(hx : x ∈ 𝓕.fieldOpIdealSet) :
x.fermionicProjF.1 ∈ 𝓕.fieldOpIdealSet ∨ x.fermionicProjF = 0 := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ fermionicProjF x = 0
have hx' := hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ 𝓕.fieldOpIdealSethx':x ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ fermionicProjF x = 0
simp only [fieldOpIdealSet, exists_prop, Set.mem_setOf_eq] at hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx':x ∈ 𝓕.fieldOpIdealSethx:(∃ φ1 φ2 φ3, x = (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) ∨
(∃ φc φc',
𝓕|>ᶜφc = CreateAnnihilate.create ∧
𝓕|>ᶜφc' = CreateAnnihilate.create ∧ x = (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) ∨
(∃ φa φa',
𝓕|>ᶜφa = CreateAnnihilate.annihilate ∧
𝓕|>ᶜφa' = CreateAnnihilate.annihilate ∧ x = (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) ∨
∃ φ φ', ¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ' ∧ x = (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')⊢ ↑(fermionicProjF x) ∈ 𝓕.fieldOpIdealSet ∨ fermionicProjF x = 0
rcases hx with ⟨φ1, φ2, φ3, rfl⟩ | ⟨φc, φc', hφc, hφc', rfl⟩ | ⟨φa, φa', hφa, hφa', rfl⟩ |
⟨φ, φ', hdiff, rfl⟩ inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0inr.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0inr.inr.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
· inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 rcases superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic φ1 φ2 φ3 with h | h inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0
· inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 right inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0
rw [fermionicProjF_of_mem_bosonic _ h inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3))) = 0 left inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)))) ∈ 𝓕.fieldOpIdealSet
rw [fermionicProjF_of_mem_fermionic _ h inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet]inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphx':(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φc φc' with h | h inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0
· inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 right inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0
rw [fermionicProjF_of_mem_bosonic _ h inr.inl.inl 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule bosonic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc')) = 0 left inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'))) ∈ 𝓕.fieldOpIdealSet
rw [fermionicProjF_of_mem_fermionic _ h inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inl.inr 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createhx':(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inr.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φa φa' with h | h inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0
· inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 right inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0
rw [fermionicProjF_of_mem_bosonic _ h inr.inr.inl.inl 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule bosonic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa')) = 0 left inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'))) ∈ 𝓕.fieldOpIdealSet
rw [fermionicProjF_of_mem_fermionic _ h inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inr.inl.inr 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilatehx':(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙
· inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ φ' with h | h inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
· inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 right inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0
rw [fermionicProjF_of_mem_bosonic _ h inr.inr.inr.inl 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic⊢ 0 = 0 All goals completed! 🐙] All goals completed! 🐙
· inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet ∨
fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ')) = 0 left inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑(fermionicProjF ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'))) ∈ 𝓕.fieldOpIdealSet
rw [fermionicProjF_of_mem_fermionic _ h inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet]inr.inr.inr.inr 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOphdiff:¬𝓕.crAnStatistics φ = 𝓕.crAnStatistics φ'hx':(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ 𝓕.fieldOpIdealSeth:(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic⊢ ↑⟨(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ'), h⟩ ∈ 𝓕.fieldOpIdealSet
simpa using hx' All goals completed! 🐙TODO "The lemma `bosonicProjF_mem_ideal` has a proof which is really long.
We should either 1) split it up into smaller lemmas or 2) Put more comments into the proof."
lemma bosonicProjF_mem_ideal (x : FieldOpFreeAlgebra 𝓕)
(hx : x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) :
x.bosonicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet] at hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
let p {k : Set 𝓕.FieldOpFreeAlgebra} (a : FieldOpFreeAlgebra 𝓕)
(h : a ∈ AddSubgroup.closure k) : Prop :=
a.bosonicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
change p x hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ p x hx
apply AddSubgroup.closure_induction mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ), p x ⋯zero 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ p 0 ⋯add 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ))
(hy : y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)), p x hx → p y hy → p (x + y) ⋯neg 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)), p x hx → p (-x) ⋯
· mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ), p x ⋯ intro x hx mem 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebrahx:x ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ p x ⋯
simp only [p] mem 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebrahx:x ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
obtain ⟨a, ha, b, hb, rfl⟩ := Set.mem_mul.mp hx mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeta:𝓕.FieldOpFreeAlgebraha:a ∈ Set.univ * 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univhx:a * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ ↑(bosonicProjF (a * b)) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
obtain ⟨d, hd, y, hy, rfl⟩ := Set.mem_mul.mp ha mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ ↑(bosonicProjF (d * y * b)) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rw [bosonicProjF_mul, mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ ↑(bosonicProjF (d * y)) * ↑(bosonicProjF b) + ↑(fermionicProjF (d * y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) + ↑(fermionicProjF d) * ↑(bosonicProjF y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet bosonicProjF_mul, mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
↑(fermionicProjF (d * y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) + ↑(fermionicProjF d) * ↑(bosonicProjF y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet fermionicProjF_mul mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) + ↑(fermionicProjF d) * ↑(bosonicProjF y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) + ↑(fermionicProjF d) * ↑(bosonicProjF y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet]mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ (↑(bosonicProjF d) * ↑(bosonicProjF y) + ↑(fermionicProjF d) * ↑(fermionicProjF y)) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) + ↑(fermionicProjF d) * ↑(bosonicProjF y)) * ↑(fermionicProjF b) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
simp only [add_mul] mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univ⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
have key {u w v : 𝓕.FieldOpFreeAlgebra}
(hv : v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) :
u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet :=
TwoSidedIdeal.mul_mem_right _ _ _ (TwoSidedIdeal.mul_mem_left _ _ _ hv) mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
have hBy : ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rcases bosonicProjF_mem_fieldOpIdealSet_or_zero y hy with h | h inl 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:↑(bosonicProjF y) ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetinr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:bosonicProjF y = 0⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
· inl 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:↑(bosonicProjF y) ∈ 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet exact TwoSidedIdeal.mem_span_iff.mpr fun I hI => hI h All goals completed! 🐙mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
· inr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:bosonicProjF y = 0⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet simp [h]mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
have hFy : ↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rcases fermionicProjF_mem_fieldOpIdealSet_or_zero y hy with h | h inl 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:↑(fermionicProjF y) ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetinr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:fermionicProjF y = 0⊢ ↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
· inl 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:↑(fermionicProjF y) ∈ 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet exact TwoSidedIdeal.mem_span_iff.mpr fun I hI => hI h All goals completed! 🐙mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
· inr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSeth:fermionicProjF y = 0⊢ ↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet simp [h]mem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSetmem 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetb:𝓕.FieldOpFreeAlgebrahb:b ∈ Set.univd:𝓕.FieldOpFreeAlgebrahd:d ∈ Set.univy:𝓕.FieldOpFreeAlgebrahy:y ∈ 𝓕.fieldOpIdealSetha:d * y ∈ Set.univ * 𝓕.fieldOpIdealSethx:d * y * b ∈ Set.univ * 𝓕.fieldOpIdealSet * Set.univkey:∀ {u w v : 𝓕.FieldOpFreeAlgebra},
v ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet → u * v * w ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethBy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethFy:↑(fermionicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF d) * ↑(bosonicProjF y) * ↑(bosonicProjF b) +
↑(fermionicProjF d) * ↑(fermionicProjF y) * ↑(bosonicProjF b) +
(↑(bosonicProjF d) * ↑(fermionicProjF y) * ↑(fermionicProjF b) +
↑(fermionicProjF d) * ↑(bosonicProjF y) * ↑(fermionicProjF b)) ∈
TwoSidedIdeal.span 𝓕.fieldOpIdealSet
exact add_mem (add_mem (key hBy) (key hFy)) (add_mem (key hFy) (key hBy)) All goals completed! 🐙
· zero 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ p 0 ⋯ simp only [TwoSidedIdeal.mem_ofRingCon, map_zero, ZeroMemClass.coe_zero, p] zero 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ (ringConGen fun a b => a - b ∈ 𝓕.fieldOpIdealSet) 0 0
exact (RingCon.eq (ringConGen fun a b => a - b ∈ 𝓕.fieldOpIdealSet)).mp rfl All goals completed! 🐙
· add 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ))
(hy : y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)), p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hpx hpy add 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:p x hxhpy:p y hy⊢ p (x + y) ⋯
simp_all only [map_add, Submodule.coe_add, p] add 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethpy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) + ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
apply TwoSidedIdeal.add_mem add.hx 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethpy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethy 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethpy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
· add.hx 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethpy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet exact hpx All goals completed! 🐙
· hy 𝓕:FieldSpecificationx✝:𝓕.FieldOpFreeAlgebrahx✝:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hy:y ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)hpx:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethpy:↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF y) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet exact hpy All goals completed! 🐙
· neg 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)), p x hx → p (-x) ⋯ intro x_1 hx_1 a neg 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)p:{k : Set 𝓕.FieldOpFreeAlgebra} → (a : 𝓕.FieldOpFreeAlgebra) → a ∈ AddSubgroup.closure k → Prop := fun {k} a h => ↑(bosonicProjF a) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSetx_1:𝓕.FieldOpFreeAlgebrahx_1:x_1 ∈ AddSubgroup.closure (Set.univ * 𝓕.fieldOpIdealSet * Set.univ)a:p x_1 hx_1⊢ p (-x_1) ⋯
simp_all only [map_neg, NegMemClass.coe_neg, neg_mem_iff, p] All goals completed! 🐙
lemma fermionicProjF_mem_ideal (x : FieldOpFreeAlgebra 𝓕)
(hx : x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) :
x.fermionicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
have hb := bosonicProjF_mem_ideal x hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSethb:↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(fermionicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
rw [← ι_eq_zero_iff_mem_ideal 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι x = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι x = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0] at hx hb ⊢ 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι x = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0
rw [← bosonicProjF_add_fermionicProjF x 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0] at hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahx:ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0hb:ι ↑(bosonicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0
simp only [map_add] at hx 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrahb:ι ↑(bosonicProjF x) = 0hx:ι ↑(bosonicProjF x) + ι ↑(fermionicProjF x) = 0⊢ ι ↑(fermionicProjF x) = 0
simp_all All goals completed! 🐙
lemma ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero (x : FieldOpFreeAlgebra 𝓕) :
ι x = 0 ↔ ι x.bosonicProjF.1 = 0 ∧ ι x.fermionicProjF.1 = 0 := by 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι x = 0 ↔ ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0
apply Iff.intro mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι x = 0 → ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0 → ι x = 0
· mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι x = 0 → ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0 intro h mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:ι x = 0⊢ ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0
rw [ι_eq_zero_iff_mem_ideal mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ι ↑(fermionicProjF x) = 0 mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ι ↑(fermionicProjF x) = 0] at h ⊢ mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ι ↑(fermionicProjF x) = 0
rw [ι_eq_zero_iff_mem_ideal mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ↑(fermionicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ↑(fermionicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet]mp 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊢ ↑(bosonicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet ∧ ↑(fermionicProjF x) ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
exact And.intro (bosonicProjF_mem_ideal x h) (fermionicProjF_mem_ideal x h) All goals completed! 🐙
· mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebra⊢ ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0 → ι x = 0 intro h mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0⊢ ι x = 0
rw [← bosonicProjF_add_fermionicProjF x mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0⊢ ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0 mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0⊢ ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0]mpr 𝓕:FieldSpecificationx:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF x) = 0 ∧ ι ↑(fermionicProjF x) = 0⊢ ι (↑(bosonicProjF x) + ↑(fermionicProjF x)) = 0
simp_all All goals completed! 🐙Constructors
For a field specification 𝓕 and an element φ of 𝓕.FieldOp,
ofFieldOp φ is defined as the element of
𝓕.WickAlgebra given by ι (ofFieldOpF φ).
def ofFieldOp (φ : 𝓕.FieldOp) : 𝓕.WickAlgebra := ι (ofFieldOpF φ)lemma ofFieldOp_eq_ι_ofFieldOpF (φ : 𝓕.FieldOp) : ofFieldOp φ = ι (ofFieldOpF φ) := rfl
For a field specification 𝓕 and a list φs of 𝓕.FieldOp,
ofFieldOpList φs is defined as the element of
𝓕.WickAlgebra given by ι (ofFieldOpListF φ).
def ofFieldOpList (φs : List 𝓕.FieldOp) : 𝓕.WickAlgebra := ι (ofFieldOpListF φs)lemma ofFieldOpList_eq_ι_ofFieldOpListF (φs : List 𝓕.FieldOp) :
ofFieldOpList φs = ι (ofFieldOpListF φs) := rfl
lemma ofFieldOpList_append (φs ψs : List 𝓕.FieldOp) :
ofFieldOpList (φs ++ ψs) = ofFieldOpList φs * ofFieldOpList ψs := by 𝓕:FieldSpecificationφs:List 𝓕.FieldOpψs:List 𝓕.FieldOp⊢ ofFieldOpList (φs ++ ψs) = ofFieldOpList φs * ofFieldOpList ψs
simp only [ofFieldOpList] 𝓕:FieldSpecificationφs:List 𝓕.FieldOpψs:List 𝓕.FieldOp⊢ ι (ofFieldOpListF (φs ++ ψs)) = ι (ofFieldOpListF φs) * ι (ofFieldOpListF ψs)
rw [ofFieldOpListF_append 𝓕:FieldSpecificationφs:List 𝓕.FieldOpψs:List 𝓕.FieldOp⊢ ι (ofFieldOpListF φs * ofFieldOpListF ψs) = ι (ofFieldOpListF φs) * ι (ofFieldOpListF ψs) 𝓕:FieldSpecificationφs:List 𝓕.FieldOpψs:List 𝓕.FieldOp⊢ ι (ofFieldOpListF φs * ofFieldOpListF ψs) = ι (ofFieldOpListF φs) * ι (ofFieldOpListF ψs)] 𝓕:FieldSpecificationφs:List 𝓕.FieldOpψs:List 𝓕.FieldOp⊢ ι (ofFieldOpListF φs * ofFieldOpListF ψs) = ι (ofFieldOpListF φs) * ι (ofFieldOpListF ψs)
simp All goals completed! 🐙lemma ofFieldOpList_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
ofFieldOpList (φ :: φs) = ofFieldOp φ * ofFieldOpList φs := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpList (φ :: φs) = ofFieldOp φ * ofFieldOpList φs
aesop All goals completed! 🐙lemma ofFieldOpList_singleton (φ : 𝓕.FieldOp) :
ofFieldOpList [φ] = ofFieldOp φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ofFieldOpList [φ] = ofFieldOp φ
simp only [ofFieldOpList, ofFieldOp, ofFieldOpListF_singleton] All goals completed! 🐙
For a field specification 𝓕 and an element φ of 𝓕.CrAnFieldOp,
ofCrAnOp φ is defined as the element of
𝓕.WickAlgebra given by ι (ofCrAnOpF φ).
def ofCrAnOp (φ : 𝓕.CrAnFieldOp) : 𝓕.WickAlgebra := ι (ofCrAnOpF φ)lemma ofCrAnOp_eq_ι_ofCrAnOpF (φ : 𝓕.CrAnFieldOp) :
ofCrAnOp φ = ι (ofCrAnOpF φ) := rfl
lemma ofFieldOp_eq_sum (φ : 𝓕.FieldOp) :
ofFieldOp φ = (∑ i : 𝓕.fieldOpToCrAnType φ, ofCrAnOp ⟨φ, i⟩) := by 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ofFieldOp φ = ∑ i, ofCrAnOp ⟨φ, i⟩
rw [ofFieldOp, 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (ofFieldOpF φ) = ∑ i, ofCrAnOp ⟨φ, i⟩ 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (∑ i, ofCrAnOpF ⟨φ, i⟩) = ∑ i, ofCrAnOp ⟨φ, i⟩ ofFieldOpF 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (∑ i, ofCrAnOpF ⟨φ, i⟩) = ∑ i, ofCrAnOp ⟨φ, i⟩ 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (∑ i, ofCrAnOpF ⟨φ, i⟩) = ∑ i, ofCrAnOp ⟨φ, i⟩] 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (∑ i, ofCrAnOpF ⟨φ, i⟩) = ∑ i, ofCrAnOp ⟨φ, i⟩
aesop All goals completed! 🐙
For a field specification 𝓕 and a list φs of 𝓕.CrAnFieldOp,
ofCrAnList φs is defined as the element of
𝓕.WickAlgebra given by ι (ofCrAnListF φ).
def ofCrAnList (φs : List 𝓕.CrAnFieldOp) : 𝓕.WickAlgebra := ι (ofCrAnListF φs)lemma ofCrAnList_eq_ι_ofCrAnListF (φs : List 𝓕.CrAnFieldOp) :
ofCrAnList φs = ι (ofCrAnListF φs) := rfllemma ofCrAnList_nil : ofCrAnList (𝓕 := 𝓕) [] = 1 := by 𝓕:FieldSpecification⊢ ofCrAnList [] = 1
simp only [ofCrAnList, ofCrAnListF_nil] 𝓕:FieldSpecification⊢ ι 1 = 1
simp All goals completed! 🐙lemma ofCrAnList_append (φs ψs : List 𝓕.CrAnFieldOp) :
ofCrAnList (φs ++ ψs) = ofCrAnList φs * ofCrAnList ψs := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpψs:List 𝓕.CrAnFieldOp⊢ ofCrAnList (φs ++ ψs) = ofCrAnList φs * ofCrAnList ψs
simp only [ofCrAnList, ofCrAnListF_append] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpψs:List 𝓕.CrAnFieldOp⊢ ι (ofCrAnListF φs * ofCrAnListF ψs) = ι (ofCrAnListF φs) * ι (ofCrAnListF ψs)
simp All goals completed! 🐙lemma ofCrAnList_singleton (φ : 𝓕.CrAnFieldOp) :
ofCrAnList [φ] = ofCrAnOp φ := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOp⊢ ofCrAnList [φ] = ofCrAnOp φ
simp only [ofCrAnList, ofCrAnOp, ofCrAnListF_singleton] All goals completed! 🐙
lemma ofFieldOpList_eq_sum (φs : List 𝓕.FieldOp) :
ofFieldOpList φs = ∑ s : CrAnSection φs, ofCrAnList s.1 := by 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ofFieldOpList φs = ∑ s, ofCrAnList ↑s
rw [ofFieldOpList, 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ι (ofFieldOpListF φs) = ∑ s, ofCrAnList ↑s 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ι (∑ s, ofCrAnListF ↑s) = ∑ s, ofCrAnList ↑s ofFieldOpListF_sum 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ι (∑ s, ofCrAnListF ↑s) = ∑ s, ofCrAnList ↑s 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ι (∑ s, ofCrAnListF ↑s) = ∑ s, ofCrAnList ↑s] 𝓕:FieldSpecificationφs:List 𝓕.FieldOp⊢ ι (∑ s, ofCrAnListF ↑s) = ∑ s, ofCrAnList ↑s
aesop All goals completed! 🐙
For a field specification 𝓕, and an element φ of 𝓕.FieldOp, the
annihilation part of 𝓕.FieldOp as an element of 𝓕.WickAlgebra.
Thus for φ
an incoming asymptotic state this is 0.
a position based state this is ofCrAnOp ⟨φ, .create⟩.
an outgoing asymptotic state this is ofCrAnOp ⟨φ, ()⟩.
def anPart (φ : 𝓕.FieldOp) : 𝓕.WickAlgebra := ι (anPartF φ)lemma anPart_eq_ι_anPartF (φ : 𝓕.FieldOp) : anPart φ = ι (anPartF φ) := rfl@[simp]
lemma anPart_inAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
anPart (FieldOp.inAsymp φ) = 0 := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.inAsymp φ) = 0
simp [anPart, anPartF] All goals completed! 🐙@[simp]
lemma anPart_position (φ : (Σ f, 𝓕.PositionLabel f) × SpaceTime) :
anPart (FieldOp.position φ) =
ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ anPart (FieldOp.position φ) = ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩
simp [anPart, ofCrAnOp] All goals completed! 🐙@[simp]
lemma anPart_outAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
anPart (FieldOp.outAsymp φ) = ofCrAnOp ⟨FieldOp.outAsymp φ, ()⟩ := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.outAsymp φ) = ofCrAnOp ⟨FieldOp.outAsymp φ, ()⟩
simp [anPart, ofCrAnOp] All goals completed! 🐙
For a field specification 𝓕, and an element φ of 𝓕.FieldOp, the
creation part of 𝓕.FieldOp as an element of 𝓕.WickAlgebra.
Thus for φ
an incoming asymptotic state this is ofCrAnOp ⟨φ, ()⟩.
a position based state this is ofCrAnOp ⟨φ, .create⟩.
an outgoing asymptotic state this is 0.
def crPart (φ : 𝓕.FieldOp) : 𝓕.WickAlgebra := ι (crPartF φ)lemma crPart_eq_ι_crPartF (φ : 𝓕.FieldOp) : crPart φ = ι (crPartF φ) := rfl@[simp]
lemma crPart_inAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
crPart (FieldOp.inAsymp φ) = ofCrAnOp ⟨FieldOp.inAsymp φ, ()⟩ := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.inAsymp φ) = ofCrAnOp ⟨FieldOp.inAsymp φ, ()⟩
simp [crPart, ofCrAnOp] All goals completed! 🐙@[simp]
lemma crPart_position (φ : (Σ f, 𝓕.PositionLabel f) × SpaceTime) :
crPart (FieldOp.position φ) =
ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.create⟩ := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ crPart (FieldOp.position φ) = ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.create⟩
simp [crPart, ofCrAnOp] All goals completed! 🐙@[simp]
lemma crPart_outAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
crPart (FieldOp.outAsymp φ) = 0 := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.outAsymp φ) = 0
simp [crPart] All goals completed! 🐙
For field specification 𝓕, and an element φ of 𝓕.FieldOp the following relation holds:
ofFieldOp φ = crPart φ + anPart φ
That is, every field operator splits into its creation part plus its annihilation part.
lemma ofFieldOp_eq_crPart_add_anPart (φ : 𝓕.FieldOp) :
ofFieldOp φ = crPart φ + anPart φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ofFieldOp φ = crPart φ + anPart φ
rw [ofFieldOp, 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (ofFieldOpF φ) = crPart φ + anPart φ 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ) crPart, 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (ofFieldOpF φ) = ι (crPartF φ) + anPart φ 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ) anPart, 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (ofFieldOpF φ) = ι (crPartF φ) + ι (anPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ) ofFieldOpF_eq_crPartF_add_anPartF 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ)] 𝓕:FieldSpecificationφ:𝓕.FieldOp⊢ ι (crPartF φ + anPartF φ) = ι (crPartF φ) + ι (anPartF φ)
simp [map_add] All goals completed! 🐙
lemma anPart_outAsymp_eq_ofFieldOp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
anPart (FieldOp.outAsymp φ) = ofFieldOp (FieldOp.outAsymp φ) := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.outAsymp φ) = ofFieldOp (FieldOp.outAsymp φ)
rw [ofFieldOp_eq_crPart_add_anPart 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.outAsymp φ) = crPart (FieldOp.outAsymp φ) + anPart (FieldOp.outAsymp φ) 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.outAsymp φ) = crPart (FieldOp.outAsymp φ) + anPart (FieldOp.outAsymp φ)] 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPart (FieldOp.outAsymp φ) = crPart (FieldOp.outAsymp φ) + anPart (FieldOp.outAsymp φ)
simp All goals completed! 🐙
lemma crPart_inAsymp_eq_ofFieldOp (φ : (Σ f, 𝓕.AsymptoticLabel f) × Momentum) :
crPart (FieldOp.inAsymp φ) = ofFieldOp (FieldOp.inAsymp φ) := by 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.inAsymp φ) = ofFieldOp (FieldOp.inAsymp φ)
rw [ofFieldOp_eq_crPart_add_anPart 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.inAsymp φ) = crPart (FieldOp.inAsymp φ) + anPart (FieldOp.inAsymp φ) 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.inAsymp φ) = crPart (FieldOp.inAsymp φ) + anPart (FieldOp.inAsymp φ)] 𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ crPart (FieldOp.inAsymp φ) = crPart (FieldOp.inAsymp φ) + anPart (FieldOp.inAsymp φ)
simp All goals completed! 🐙