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.Grading
public import Physlib.QFT.PerturbationTheory.FieldStatistics.ExchangeSignSuper Commute
@[expose] public sectionThe super commutator on the FieldOpFreeAlgebra.
@[inherit_doc superCommuteF]
scoped[FieldSpecification.FieldOpFreeAlgebra] notation "[" φs "," φs' "]ₛF" => superCommuteF φs φs'The super commutator of different types of elements
lemma superCommuteF_ofCrAnListF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛF =
ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) := 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') =
ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)
All goals completed! 🐙𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnListF [φ] * ofCrAnListF [φ'] -
(exchangeSign (ofList 𝓕.crAnStatistics [φ])) (ofList 𝓕.crAnStatistics [φ']) • (ofCrAnListF [φ'] * ofCrAnListF [φ]) =
ofCrAnListF [φ] * ofCrAnListF [φ'] -
(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnListF [φ'] * ofCrAnListF [φ]
simp [FieldStatistic.ofList_singleton] All goals completed! 🐙
lemma superCommuteF_ofCrAnListF_ofFieldOpFsList (φcas : List 𝓕.CrAnFieldOp) (φs : List 𝓕.FieldOp) :
[ofCrAnListF φcas, ofFieldOpListF φs]ₛF = ofCrAnListF φcas * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φcas, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofCrAnListF φcas := by 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φcas)) (ofFieldOpListF φs) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas
conv_lhs => rw [ofFieldOpListF_sum] 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp| (superCommuteF (ofCrAnListF φcas)) (∑ s, ofCrAnListF ↑s)
rw [map_sum 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φcas)) (ofCrAnListF ↑x) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φcas)) (ofCrAnListF ↑x) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas] 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φcas)) (ofCrAnListF ↑x) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas
conv_lhs =>
enter [2, x] 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOpx:CrAnSection φs| (superCommuteF (ofCrAnListF φcas)) (ofCrAnListF ↑x)
rw [superCommuteF_ofCrAnListF_ofCrAnListF, CrAnSection.statistics_eq_state_statistics,
ofCrAnListF_append, ofCrAnListF_append] 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOpx:CrAnSection φs| ofCrAnListF φcas * ofCrAnListF ↑x -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • (ofCrAnListF ↑x * ofCrAnListF φcas)
rw [Finset.sum_sub_distrib, 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ∑ x, ofCrAnListF φcas * ofCrAnListF ↑x -
∑ x,
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofCrAnListF ↑x * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas ← Finset.mul_sum, 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ∑ i, ofCrAnListF ↑i -
∑ x,
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofCrAnListF ↑x * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas ← Finset.smul_sum, 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ∑ i, ofCrAnListF ↑i -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
∑ x, ofCrAnListF ↑x * ofCrAnListF φcas =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas
← Finset.sum_mul, 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ∑ i, ofCrAnListF ↑i -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
((∑ i, ofCrAnListF ↑i) * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas ← ofFieldOpListF_sum 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas] 𝓕:FieldSpecificationφcas:List 𝓕.CrAnFieldOpφs:List 𝓕.FieldOp⊢ ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF φcas) =
ofCrAnListF φcas * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics φcas)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF φcas
simp All goals completed! 🐙
lemma superCommuteF_ofFieldOpListF_ofFieldOpFsList (φ : List 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[ofFieldOpListF φ, ofFieldOpListF φs]ₛF = ofFieldOpListF φ * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpListF φ := by 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (ofFieldOpListF φ)) (ofFieldOpListF φs) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpListF φ
conv_lhs => rw [ofFieldOpListF_sum] 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp| (superCommuteF (∑ s, ofCrAnListF ↑s)) (ofFieldOpListF φs)
simp only [map_sum, LinearMap.coe_sum, Finset.sum_apply, Algebra.smul_mul_assoc] 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ∑ c, (superCommuteF (ofCrAnListF ↑c)) (ofFieldOpListF φs) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ)
conv_lhs =>
enter [2, x] 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOpx:CrAnSection φ| (superCommuteF (ofCrAnListF ↑x)) (ofFieldOpListF φs)
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList] 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOpx:CrAnSection φ| ofCrAnListF ↑x * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.crAnStatistics ↑x)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofCrAnListF ↑x
simp only [CrAnSection.statistics_eq_state_statistics,
Algebra.smul_mul_assoc, Finset.sum_sub_distrib] 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ∑ x, ofCrAnListF ↑x * ofFieldOpListF φs -
∑ x,
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF ↑x) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ)
rw [← Finset.sum_mul, 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (∑ i, ofCrAnListF ↑i) * ofFieldOpListF φs -
∑ x,
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofCrAnListF ↑x) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ) All goals completed! 🐙 ← Finset.smul_sum, 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (∑ i, ofCrAnListF ↑i) * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) •
∑ x, ofFieldOpListF φs * ofCrAnListF ↑x =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ) All goals completed! 🐙 ← Finset.mul_sum, 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (∑ i, ofCrAnListF ↑i) * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ∑ i, ofCrAnListF ↑i) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ) All goals completed! 🐙 ← ofFieldOpListF_sum 𝓕:FieldSpecificationφ:List 𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) •
(ofFieldOpListF φs * ofFieldOpListF φ) =
ofFieldOpListF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic φ)) (ofList 𝓕.fieldOpStatistic φs) • (ofFieldOpListF φs * ofFieldOpListF φ) All goals completed! 🐙] All goals completed! 🐙
lemma superCommuteF_ofFieldOpF_ofFieldOpFsList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[ofFieldOpF φ, ofFieldOpListF φs]ₛF = ofFieldOpF φ * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (ofFieldOpF φ)) (ofFieldOpListF φs) =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ
rw [← ofFieldOpListF_singleton, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (ofFieldOpListF [φ])) (ofFieldOpListF φs) =
ofFieldOpListF [φ] * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpListF [φ] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ superCommuteF_ofFieldOpListF_ofFieldOpFsList, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpListF [φ] * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
ofFieldOpListF [φ] =
ofFieldOpListF [φ] * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpListF [φ] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ
ofFieldOpListF_singleton 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (ofList 𝓕.fieldOpStatistic [φ])) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ =
ofFieldOpF φ * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * ofFieldOpF φ
simp All goals completed! 🐙
lemma superCommuteF_ofFieldOpListF_ofFieldOpF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
[ofFieldOpListF φs, ofFieldOpF φ]ₛF = ofFieldOpListF φs * ofFieldOpF φ -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs := by 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ (superCommuteF (ofFieldOpListF φs)) (ofFieldOpF φ) =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs
rw [← ofFieldOpListF_singleton, 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ (superCommuteF (ofFieldOpListF φs)) (ofFieldOpListF [φ]) =
ofFieldOpListF φs * ofFieldOpListF [φ] -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpListF [φ] * ofFieldOpListF φs 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpF φ * ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs superCommuteF_ofFieldOpListF_ofFieldOpFsList, 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpListF [φ] -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpListF [φ] *
ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpListF [φ] -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpListF [φ] * ofFieldOpListF φs 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpF φ * ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs
ofFieldOpListF_singleton 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpF φ * ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpF φ * ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs] 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpF φ * ofFieldOpListF φs =
ofFieldOpListF φs * ofFieldOpF φ -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs
simp All goals completed! 🐙lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, crPartF φ']ₛF = anPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (anPartF φ)) (crPartF φ') =
anPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ
match φ, φ' with
| FieldOp.inAsymp φ, _ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ (superCommuteF (anPartF (FieldOp.inAsymp φ))) (crPartF x✝) =
anPartF (FieldOp.inAsymp φ) * crPartF x✝ -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛx✝) • crPartF x✝ * anPartF (FieldOp.inAsymp φ)
simp only [anPartF_negAsymp, map_zero, LinearMap.zero_apply, zero_mul, mul_zero,
sub_self] All goals completed! 🐙
| _, FieldOp.outAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpx✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF x✝)) (crPartF (FieldOp.outAsymp φ)) =
anPartF x✝ * crPartF (FieldOp.outAsymp φ) -
(exchangeSign (𝓕|>ₛx✝)) (𝓕|>ₛFieldOp.outAsymp φ) • crPartF (FieldOp.outAsymp φ) * anPartF x✝
simp only [crPartF_posAsymp, map_zero, mul_zero, smul_zero, zero_mul, sub_self] All goals completed! 🐙
| FieldOp.position φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (anPartF (FieldOp.position φ))) (crPartF (FieldOp.position φ')) =
anPartF (FieldOp.position φ) * crPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.position φ') • crPartF (FieldOp.position φ') *
anPartF (FieldOp.position φ)
simp [anPartF_position, crPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.outAsymp φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (anPartF (FieldOp.outAsymp φ))) (crPartF (FieldOp.position φ')) =
anPartF (FieldOp.outAsymp φ) * crPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛFieldOp.position φ') • crPartF (FieldOp.position φ') *
anPartF (FieldOp.outAsymp φ)
simp [anPartF_posAsymp, crPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.position φ, FieldOp.inAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.position φ))) (crPartF (FieldOp.inAsymp φ')) =
anPartF (FieldOp.position φ) * crPartF (FieldOp.inAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.inAsymp φ') • crPartF (FieldOp.inAsymp φ') *
anPartF (FieldOp.position φ)
simp [anPartF_position, crPartF_negAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.outAsymp φ, FieldOp.inAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.outAsymp φ))) (crPartF (FieldOp.inAsymp φ')) =
anPartF (FieldOp.outAsymp φ) * crPartF (FieldOp.inAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛFieldOp.inAsymp φ') • crPartF (FieldOp.inAsymp φ') *
anPartF (FieldOp.outAsymp φ)
simp [anPartF_posAsymp, crPartF_negAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, anPartF φ']ₛF = crPartF φ * anPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (crPartF φ)) (anPartF φ') =
crPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ
match φ, φ' with
| FieldOp.outAsymp φ, _ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ (superCommuteF (crPartF (FieldOp.outAsymp φ))) (anPartF x✝) =
crPartF (FieldOp.outAsymp φ) * anPartF x✝ -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛx✝) • anPartF x✝ * crPartF (FieldOp.outAsymp φ)
simp only [crPartF_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, mul_zero,
sub_self] All goals completed! 🐙
| _, FieldOp.inAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpx✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF x✝)) (anPartF (FieldOp.inAsymp φ)) =
crPartF x✝ * anPartF (FieldOp.inAsymp φ) -
(exchangeSign (𝓕|>ₛx✝)) (𝓕|>ₛFieldOp.inAsymp φ) • anPartF (FieldOp.inAsymp φ) * crPartF x✝
simp only [anPartF_negAsymp, map_zero, mul_zero, smul_zero, zero_mul, sub_self] All goals completed! 🐙
| FieldOp.position φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (crPartF (FieldOp.position φ))) (anPartF (FieldOp.position φ')) =
crPartF (FieldOp.position φ) * anPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.position φ') • anPartF (FieldOp.position φ') *
crPartF (FieldOp.position φ)
simp [crPartF_position, anPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.position φ, FieldOp.outAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.position φ))) (anPartF (FieldOp.outAsymp φ')) =
crPartF (FieldOp.position φ) * anPartF (FieldOp.outAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.outAsymp φ') • anPartF (FieldOp.outAsymp φ') *
crPartF (FieldOp.position φ)
simp [crPartF_position, anPartF_posAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.inAsymp φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (crPartF (FieldOp.inAsymp φ))) (anPartF (FieldOp.position φ')) =
crPartF (FieldOp.inAsymp φ) * anPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛFieldOp.position φ') • anPartF (FieldOp.position φ') *
crPartF (FieldOp.inAsymp φ)
simp [crPartF_negAsymp, anPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.inAsymp φ, FieldOp.outAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.inAsymp φ))) (anPartF (FieldOp.outAsymp φ')) =
crPartF (FieldOp.inAsymp φ) * anPartF (FieldOp.outAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛFieldOp.outAsymp φ') • anPartF (FieldOp.outAsymp φ') *
crPartF (FieldOp.inAsymp φ)
simp [crPartF_negAsymp, anPartF_posAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, crPartF φ']ₛF = crPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (crPartF φ)) (crPartF φ') =
crPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ
match φ, φ' with
| FieldOp.outAsymp φ, _ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ (superCommuteF (crPartF (FieldOp.outAsymp φ))) (crPartF x✝) =
crPartF (FieldOp.outAsymp φ) * crPartF x✝ -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛx✝) • crPartF x✝ * crPartF (FieldOp.outAsymp φ)
simp only [crPartF_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, mul_zero,
sub_self] All goals completed! 🐙
| _, FieldOp.outAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpx✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF x✝)) (crPartF (FieldOp.outAsymp φ)) =
crPartF x✝ * crPartF (FieldOp.outAsymp φ) -
(exchangeSign (𝓕|>ₛx✝)) (𝓕|>ₛFieldOp.outAsymp φ) • crPartF (FieldOp.outAsymp φ) * crPartF x✝
simp only [crPartF_posAsymp, map_zero, mul_zero, smul_zero, zero_mul, sub_self] All goals completed! 🐙
| FieldOp.position φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (crPartF (FieldOp.position φ))) (crPartF (FieldOp.position φ')) =
crPartF (FieldOp.position φ) * crPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.position φ') • crPartF (FieldOp.position φ') *
crPartF (FieldOp.position φ)
simp [crPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.position φ, FieldOp.inAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.position φ))) (crPartF (FieldOp.inAsymp φ')) =
crPartF (FieldOp.position φ) * crPartF (FieldOp.inAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.inAsymp φ') • crPartF (FieldOp.inAsymp φ') *
crPartF (FieldOp.position φ)
simp [crPartF_position, crPartF_negAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.inAsymp φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (crPartF (FieldOp.inAsymp φ))) (crPartF (FieldOp.position φ')) =
crPartF (FieldOp.inAsymp φ) * crPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛFieldOp.position φ') • crPartF (FieldOp.position φ') *
crPartF (FieldOp.inAsymp φ)
simp [crPartF_negAsymp, crPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.inAsymp φ, FieldOp.inAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.inAsymp φ))) (crPartF (FieldOp.inAsymp φ')) =
crPartF (FieldOp.inAsymp φ) * crPartF (FieldOp.inAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛFieldOp.inAsymp φ') • crPartF (FieldOp.inAsymp φ') *
crPartF (FieldOp.inAsymp φ)
simp [crPartF_negAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, anPartF φ']ₛF =
anPartF φ * anPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (anPartF φ)) (anPartF φ') =
anPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ
match φ, φ' with
| FieldOp.inAsymp φ, _ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ (superCommuteF (anPartF (FieldOp.inAsymp φ))) (anPartF x✝) =
anPartF (FieldOp.inAsymp φ) * anPartF x✝ -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛx✝) • anPartF x✝ * anPartF (FieldOp.inAsymp φ)
simp All goals completed! 🐙
| _, FieldOp.inAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpx✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF x✝)) (anPartF (FieldOp.inAsymp φ)) =
anPartF x✝ * anPartF (FieldOp.inAsymp φ) -
(exchangeSign (𝓕|>ₛx✝)) (𝓕|>ₛFieldOp.inAsymp φ) • anPartF (FieldOp.inAsymp φ) * anPartF x✝
simp All goals completed! 🐙
| FieldOp.position φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (anPartF (FieldOp.position φ))) (anPartF (FieldOp.position φ')) =
anPartF (FieldOp.position φ) * anPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.position φ') • anPartF (FieldOp.position φ') *
anPartF (FieldOp.position φ)
simp [anPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.position φ, FieldOp.outAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.position φ))) (anPartF (FieldOp.outAsymp φ')) =
anPartF (FieldOp.position φ) * anPartF (FieldOp.outAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (𝓕|>ₛFieldOp.outAsymp φ') • anPartF (FieldOp.outAsymp φ') *
anPartF (FieldOp.position φ)
simp [anPartF_position, anPartF_posAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.outAsymp φ, FieldOp.position φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (anPartF (FieldOp.outAsymp φ))) (anPartF (FieldOp.position φ')) =
anPartF (FieldOp.outAsymp φ) * anPartF (FieldOp.position φ') -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛFieldOp.position φ') • anPartF (FieldOp.position φ') *
anPartF (FieldOp.outAsymp φ)
simp [anPartF_posAsymp, anPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙
| FieldOp.outAsymp φ, FieldOp.outAsymp φ' => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ'✝:𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.outAsymp φ))) (anPartF (FieldOp.outAsymp φ')) =
anPartF (FieldOp.outAsymp φ) * anPartF (FieldOp.outAsymp φ') -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛFieldOp.outAsymp φ') • anPartF (FieldOp.outAsymp φ') *
anPartF (FieldOp.outAsymp φ)
simp [anPartF_posAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofCrAnListF, crAnStatistics, ← ofCrAnListF_append] All goals completed! 🐙lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[crPartF φ, ofFieldOpListF φs]ₛF =
crPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs *
crPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (crPartF φ)) (ofFieldOpListF φs) =
crPartF φ * ofFieldOpListF φs - (exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * crPartF φ
match φ with
| FieldOp.inAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.inAsymp φ))) (ofFieldOpListF φs) =
crPartF (FieldOp.inAsymp φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
crPartF (FieldOp.inAsymp φ)
simp [crPartF_negAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofFieldOpFsList, crAnStatistics] All goals completed! 🐙
| FieldOp.position φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (crPartF (FieldOp.position φ))) (ofFieldOpListF φs) =
crPartF (FieldOp.position φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
crPartF (FieldOp.position φ)
simp [crPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofFieldOpFsList, crAnStatistics] All goals completed! 🐙
| FieldOp.outAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (crPartF (FieldOp.outAsymp φ))) (ofFieldOpListF φs) =
crPartF (FieldOp.outAsymp φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
crPartF (FieldOp.outAsymp φ)
simp All goals completed! 🐙lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[anPartF φ, ofFieldOpListF φs]ₛF =
anPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) •
ofFieldOpListF φs * anPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOp⊢ (superCommuteF (anPartF φ)) (ofFieldOpListF φs) =
anPartF φ * ofFieldOpListF φs - (exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs * anPartF φ
match φ with
| FieldOp.inAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.inAsymp φ))) (ofFieldOpListF φs) =
anPartF (FieldOp.inAsymp φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
anPartF (FieldOp.inAsymp φ)
simp All goals completed! 🐙
| FieldOp.position φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ (superCommuteF (anPartF (FieldOp.position φ))) (ofFieldOpListF φs) =
anPartF (FieldOp.position φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.position φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
anPartF (FieldOp.position φ)
simp [anPartF_position, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofFieldOpFsList, crAnStatistics] All goals completed! 🐙
| FieldOp.outAsymp φ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφs:List 𝓕.FieldOpφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (superCommuteF (anPartF (FieldOp.outAsymp φ))) (ofFieldOpListF φs) =
anPartF (FieldOp.outAsymp φ) * ofFieldOpListF φs -
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (ofList 𝓕.fieldOpStatistic φs) • ofFieldOpListF φs *
anPartF (FieldOp.outAsymp φ)
simp [anPartF_posAsymp, ← ofCrAnListF_singleton,
superCommuteF_ofCrAnListF_ofFieldOpFsList, crAnStatistics] All goals completed! 🐙
lemma superCommuteF_crPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, ofFieldOpF φ']ₛF =
crPartF φ * ofFieldOpF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * crPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (crPartF φ)) (ofFieldOpF φ') =
crPartF φ * ofFieldOpF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpF φ' * crPartF φ
rw [← ofFieldOpListF_singleton, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (crPartF φ)) (ofFieldOpListF [φ']) =
crPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * crPartF φ 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * crPartF φ =
crPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * crPartF φ superCommuteF_crPartF_ofFieldOpListF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * crPartF φ =
crPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * crPartF φ 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * crPartF φ =
crPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * crPartF φ] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * crPartF φ =
crPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * crPartF φ
simp All goals completed! 🐙
lemma superCommuteF_anPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, ofFieldOpF φ']ₛF =
anPartF φ * ofFieldOpF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * anPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (anPartF φ)) (ofFieldOpF φ') =
anPartF φ * ofFieldOpF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpF φ' * anPartF φ
rw [← ofFieldOpListF_singleton, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ (superCommuteF (anPartF φ)) (ofFieldOpListF [φ']) =
anPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * anPartF φ 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * anPartF φ =
anPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * anPartF φ superCommuteF_anPartF_ofFieldOpListF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * anPartF φ =
anPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * anPartF φ 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * anPartF φ =
anPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * anPartF φ] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * ofFieldOpListF [φ'] -
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic [φ']) • ofFieldOpListF [φ'] * anPartF φ =
anPartF φ * ofFieldOpListF [φ'] - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • ofFieldOpListF [φ'] * anPartF φ
simp All goals completed! 🐙Mul equal superCommuteF
Lemmas which rewrite a multiplication of two elements of the algebra as their commuted multiplication with a sign plus the super commutator.
lemma ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF (φs φs' : List 𝓕.CrAnFieldOp) :
ofCrAnListF φs * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnListF φs
+ [ofCrAnListF φs, ofCrAnListF φs']ₛF := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF φs +
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs')
rw [superCommuteF_ofCrAnListF_ofCrAnListF 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF φs +
(ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF φs +
(ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs))] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF φs +
(ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs))
simp [ofCrAnListF_append] All goals completed! 🐙
lemma ofCrAnOpF_mul_ofCrAnListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.CrAnFieldOp) :
ofCrAnOpF φ * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnOpF φ
+ [ofCrAnOpF φ, ofCrAnListF φs']ₛF := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnListF φs' =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnOpF φ +
(superCommuteF (ofCrAnOpF φ)) (ofCrAnListF φs')
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF [φ] * ofCrAnListF φs' =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics [φ])) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics [φ])) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics [φ])) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs')] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics [φ])) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs') =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF φs' * ofCrAnListF [φ] +
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF φs')
simp All goals completed! 🐙
lemma ofFieldOpListF_mul_ofFieldOpListF_eq_superCommuteF (φs φs' : List 𝓕.FieldOp) :
ofFieldOpListF φs * ofFieldOpListF φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpListF φs
+ [ofFieldOpListF φs, ofFieldOpListF φs']ₛF := by 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφs':List 𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs +
(superCommuteF (ofFieldOpListF φs)) (ofFieldOpListF φs')
rw [superCommuteF_ofFieldOpListF_ofFieldOpFsList 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφs':List 𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs +
(ofFieldOpListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs) 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφs':List 𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs +
(ofFieldOpListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs)] 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφs':List 𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs +
(ofFieldOpListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' *
ofFieldOpListF φs)
simp All goals completed! 🐙lemma ofFieldOpF_mul_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) :
ofFieldOpF φ * ofFieldOpListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpF φ
+ [ofFieldOpF φ, ofFieldOpListF φs']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ ofFieldOpF φ * ofFieldOpListF φs' =
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofFieldOpF φ +
(superCommuteF (ofFieldOpF φ)) (ofFieldOpListF φs')
simp [superCommuteF_ofFieldOpF_ofFieldOpFsList] All goals completed! 🐙lemma ofFieldOpListF_mul_ofFieldOpF_eq_superCommuteF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
ofFieldOpListF φs * ofFieldOpF φ = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs
+ [ofFieldOpListF φs, ofFieldOpF φ]ₛF := by 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφ:𝓕.FieldOp⊢ ofFieldOpListF φs * ofFieldOpF φ =
(exchangeSign (ofList 𝓕.fieldOpStatistic φs)) (𝓕|>ₛφ) • ofFieldOpF φ * ofFieldOpListF φs +
(superCommuteF (ofFieldOpListF φs)) (ofFieldOpF φ)
simp [superCommuteF_ofFieldOpListF_ofFieldOpF] All goals completed! 🐙
lemma crPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
crPartF φ * anPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ +
[crPartF φ, anPartF φ']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ + (superCommuteF (crPartF φ)) (anPartF φ')
rw [superCommuteF_crPartF_anPartF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ +
(crPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ +
(crPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ)] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ +
(crPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * crPartF φ)
simp All goals completed! 🐙
lemma anPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
anPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
crPartF φ' * anPartF φ +
[anPartF φ, crPartF φ']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ + (superCommuteF (anPartF φ)) (crPartF φ')
rw [superCommuteF_anPartF_crPartF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ +
(anPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ +
(anPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ)] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ +
(anPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * anPartF φ)
simp All goals completed! 🐙
lemma crPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
crPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ +
[crPartF φ, crPartF φ']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ + (superCommuteF (crPartF φ)) (crPartF φ')
rw [superCommuteF_crPartF_crPartF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ +
(crPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ +
(crPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ)] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * crPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ +
(crPartF φ * crPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • crPartF φ' * crPartF φ)
simp All goals completed! 🐙
lemma anPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
anPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ +
[anPartF φ, anPartF φ']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ + (superCommuteF (anPartF φ)) (anPartF φ')
rw [superCommuteF_anPartF_anPartF 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ +
(anPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ) 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ +
(anPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ)] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ anPartF φ * anPartF φ' =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ +
(anPartF φ * anPartF φ' - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • anPartF φ' * anPartF φ)
simp All goals completed! 🐙
lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : ofCrAnListF φs * ofFieldOpListF φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofCrAnListF φs
+ [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs +
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs')
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs +
(ofCrAnListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs +
(ofCrAnListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs)] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs +
(ofCrAnListF φs * ofFieldOpListF φs' -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs)
simp All goals completed! 🐙Symmetry of the super commutator.
lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛF =
(- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnListF φs', ofCrAnListF φs]ₛF := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(superCommuteF (ofCrAnListF φs')) (ofCrAnListF φs)
rw [superCommuteF_ofCrAnListF_ofCrAnListF, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(superCommuteF (ofCrAnListF φs')) (ofCrAnListF φs) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) -
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') superCommuteF_ofCrAnListF_ofCrAnListF, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(ofCrAnListF (φs' ++ φs) -
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs')) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) -
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') smul_sub 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) -
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) -
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs')] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) -
-(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs')
simp only [neg_smul, sub_neg_eq_add] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs')
rw [smul_smul 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) +
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs)) •
ofCrAnListF (φs ++ φs') 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) +
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs)) •
ofCrAnListF (φs ++ φs')] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) +
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs)) •
ofCrAnListF (φs ++ φs')
conv_rhs =>
rhs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs)) •
ofCrAnListF (φs ++ φs')
rw [exchangeSign_symm, exchangeSign_mul_self] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| 1 • ofCrAnListF (φs ++ φs')
simp only [one_smul] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs) =
-((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)) +
ofCrAnListF (φs ++ φs')
abel All goals completed! 🐙
lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_symm (φ φ' : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF φ']ₛF =
(- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnOpF φ', ofCrAnOpF φ]ₛF := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (superCommuteF (ofCrAnOpF φ')) (ofCrAnOpF φ)
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (superCommuteF (ofCrAnOpF φ')) (ofCrAnOpF φ) 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) -
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
((exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ') superCommuteF_ofCrAnOpF_ofCrAnOpF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
(ofCrAnOpF φ' * ofCrAnOpF φ -
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) -
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
((exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ') smul_sub 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) -
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
((exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) -
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
((exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ')] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • ofCrAnOpF φ' * ofCrAnOpF φ =
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) -
-(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
((exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • ofCrAnOpF φ * ofCrAnOpF φ')
simp only [Algebra.smul_mul_assoc, neg_smul, sub_neg_eq_add] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) =
-((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ)) +
(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') •
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ) • (ofCrAnOpF φ * ofCrAnOpF φ')
rw [smul_smul 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) =
-((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ)) +
((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') *
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ)) •
(ofCrAnOpF φ * ofCrAnOpF φ') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) =
-((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ)) +
((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') *
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ)) •
(ofCrAnOpF φ * ofCrAnOpF φ')] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) =
-((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ)) +
((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') *
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ)) •
(ofCrAnOpF φ * ofCrAnOpF φ')
conv_rhs =>
rhs 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp| ((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') *
(exchangeSign (𝓕.crAnStatistics φ')) (𝓕.crAnStatistics φ)) •
(ofCrAnOpF φ * ofCrAnOpF φ')
rw [exchangeSign_symm, exchangeSign_mul_self] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp| 1 • (ofCrAnOpF φ * ofCrAnOpF φ')
simp only [one_smul] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * ofCrAnOpF φ' - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ) =
-((exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics φ') • (ofCrAnOpF φ' * ofCrAnOpF φ)) +
ofCrAnOpF φ * ofCrAnOpF φ'
abel All goals completed! 🐙Splitting the super commutator on lists into sums.
lemma superCommuteF_ofCrAnListF_ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF (φ :: φs')]ₛF =
[ofCrAnListF φs, ofCrAnOpF φ]ₛF * ofCrAnListF φs' +
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ)
• ofCrAnOpF φ * [ofCrAnListF φs, ofCrAnListF φs']ₛF := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF (φ :: φs')) =
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs')
rw [superCommuteF_ofCrAnListF_ofCrAnListF 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: φs' ++ φs) =
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: φs' ++ φs) =
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs')] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: φs' ++ φs) =
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs')
conv_rhs =>
lhs 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs'
rw [← ofCrAnListF_singleton, superCommuteF_ofCrAnListF_ofCrAnListF, sub_mul,
← ofCrAnListF_append] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (φs ++ [φ] ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics [φ]) • ofCrAnListF ([φ] ++ φs) * ofCrAnListF φs'
rhs 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics [φ]) • ofCrAnListF ([φ] ++ φs) * ofCrAnListF φs'
rw [FieldStatistic.ofList_singleton, ofCrAnListF_append, ofCrAnListF_singleton, smul_mul_assoc,
mul_assoc, ← ofCrAnListF_append] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • (ofCrAnOpF φ * ofCrAnListF (φs ++ φs'))
conv_rhs =>
rhs 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs')
rw [superCommuteF_ofCrAnListF_ofCrAnListF, mul_sub, smul_mul_assoc] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • (ofCrAnOpF φ * ofCrAnListF (φs ++ φs')) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • ofCrAnListF (φs' ++ φs)
simp only [List.cons_append, List.append_assoc, List.nil_append,
Algebra.mul_smul_comm, Algebra.smul_mul_assoc, sub_add_sub_cancel, sub_right_inj] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: (φs' ++ φs)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • (ofCrAnOpF φ * ofCrAnListF (φs' ++ φs))
rw [← ofCrAnListF_cons, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: (φs' ++ φs)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnListF (φ :: (φs' ++ φs)) 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ * ofList 𝓕.crAnStatistics φs') •
ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs)) smul_smul, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (φ :: φs')) • ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs)) 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ * ofList 𝓕.crAnStatistics φs') •
ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs)) FieldStatistic.ofList_cons_eq_mul 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ * ofList 𝓕.crAnStatistics φs') •
ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs)) 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ * ofList 𝓕.crAnStatistics φs') •
ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs))] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ * ofList 𝓕.crAnStatistics φs') •
ofCrAnListF (φ :: (φs' ++ φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ)) •
ofCrAnListF (φ :: (φs' ++ φs))
simp only [map_mul, mul_comm] All goals completed! 🐙
lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, ofFieldOpListF (φ :: φs')]ₛF =
[ofCrAnListF φs, ofFieldOpF φ]ₛF * ofFieldOpListF φs' +
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpListF (φ :: φs')) =
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs')
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF (φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) • ofFieldOpListF (φ :: φs') *
ofCrAnListF φs =
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs') 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF (φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) • ofFieldOpListF (φ :: φs') *
ofCrAnListF φs =
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs')] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnListF φs * ofFieldOpListF (φ :: φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) • ofFieldOpListF (φ :: φs') *
ofCrAnListF φs =
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs')
conv_rhs =>
lhs 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs'
rw [← ofFieldOpListF_singleton, superCommuteF_ofCrAnListF_ofFieldOpFsList, sub_mul, mul_assoc,
← ofFieldOpListF_append] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| ofCrAnListF φs * ofFieldOpListF ([φ] ++ φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpListF [φ] * ofCrAnListF φs *
ofFieldOpListF φs'
rhs 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic [φ]) • ofFieldOpListF [φ] * ofCrAnListF φs *
ofFieldOpListF φs'
rw [FieldStatistic.ofList_singleton, ofFieldOpListF_singleton, smul_mul_assoc,
smul_mul_assoc, mul_assoc] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • (ofFieldOpF φ * (ofCrAnListF φs * ofFieldOpListF φs'))
conv_rhs =>
rhs 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs')
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList, mul_sub, smul_mul_assoc] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • (ofFieldOpF φ * (ofCrAnListF φs * ofFieldOpListF φs')) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ofFieldOpListF φs' * ofCrAnListF φs)
simp only [Algebra.smul_mul_assoc, List.singleton_append, Algebra.mul_smul_comm,
sub_add_sub_cancel, sub_right_inj] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) •
(ofFieldOpListF (φ :: φs') * ofCrAnListF φs) =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • (ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs))
rw [ofFieldOpListF_cons, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) •
(ofFieldOpF φ * ofFieldOpListF φs' * ofCrAnListF φs) =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • (ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) mul_assoc, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') •
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • (ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) smul_smul, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (φ :: φs')) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) FieldStatistic.ofList_cons_eq_mul 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) ((𝓕|>ₛφ) * ofList 𝓕.fieldOpStatistic φs') •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs)) =
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') *
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ)) •
(ofFieldOpF φ * (ofFieldOpListF φs' * ofCrAnListF φs))
simp [mul_comm] All goals completed! 🐙
For a field specification 𝓕, and two lists φs = φ₀…φₙ and φs' of 𝓕.CrAnFieldOp
the following super commutation relation holds:
[φs', φ₀…φₙ]ₛF = ∑ i, 𝓢(φs', φ₀…φᵢ₋₁) • φ₀…φᵢ₋₁ * [φs', φᵢ]ₛF * φᵢ₊₁ … φₙ
The proof of this relation is via induction on the length of φs.
lemma superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum (φs : List 𝓕.CrAnFieldOp) :
(φs' : List 𝓕.CrAnFieldOp) → [ofCrAnListF φs, ofCrAnListF φs']ₛF =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofCrAnListF (φs'.take n) * [ofCrAnListF φs, ofCrAnOpF (φs'.get n)]ₛF *
ofCrAnListF (φs'.drop (n + 1))
| [] => 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF []) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take ↑n [])) •
ofCrAnListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ([].get n)) *
ofCrAnListF (List.drop (↑n + 1) []) by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF []) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take ↑n [])) •
ofCrAnListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ([].get n)) *
ofCrAnListF (List.drop (↑n + 1) [])
rw [superCommuteF_ofCrAnListF_ofCrAnListF 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ []) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics []) • ofCrAnListF ([] ++ φs) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take ↑n [])) •
ofCrAnListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ([].get n)) *
ofCrAnListF (List.drop (↑n + 1) []) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ []) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics []) • ofCrAnListF ([] ++ φs) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take ↑n [])) •
ofCrAnListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ([].get n)) *
ofCrAnListF (List.drop (↑n + 1) [])] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs ++ []) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics []) • ofCrAnListF ([] ++ φs) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take ↑n [])) •
ofCrAnListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ([].get n)) *
ofCrAnListF (List.drop (↑n + 1) [])
simp All goals completed! 🐙
| φ :: φs' => 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF (φ :: φs')) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs')) by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF (φ :: φs')) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs'))
rw [superCommuteF_ofCrAnListF_ofCrAnListF_cons, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs')) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs'))
superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum φs φs' 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs')) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs'))] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) (φ :: φs'))) •
ofCrAnListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get n)) *
ofCrAnListF (List.drop (↑n + 1) (φ :: φs'))
conv_rhs => erw [Fin.sum_univ_succ] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑0) (φ :: φs'))) •
ofCrAnListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get 0)) *
ofCrAnListF (List.drop (↑0 + 1) (φ :: φs')) +
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑i.succ) (φ :: φs'))) •
ofCrAnListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get i.succ)) *
ofCrAnListF (List.drop (↑i.succ + 1) (φ :: φs'))
congr 1 e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑0) (φ :: φs'))) •
ofCrAnListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get 0)) *
ofCrAnListF (List.drop (↑0 + 1) (φ :: φs'))e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑i.succ) (φ :: φs'))) •
ofCrAnListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get i.succ)) *
ofCrAnListF (List.drop (↑i.succ + 1) (φ :: φs'))
· e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φ) * ofCrAnListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑0) (φ :: φs'))) •
ofCrAnListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get 0)) *
ofCrAnListF (List.drop (↑0 + 1) (φ :: φs')) simp All goals completed! 🐙
· e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕.crAnStatistics φ) • ofCrAnOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs')) •
ofCrAnListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs'.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs') =
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑i.succ) (φ :: φs'))) •
ofCrAnListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF ((φ :: φs').get i.succ)) *
ofCrAnListF (List.drop (↑i.succ + 1) (φ :: φs')) simp [Finset.mul_sum, smul_smul, ofCrAnListF_cons, mul_assoc,
FieldStatistic.ofList_cons_eq_mul, mul_comm] All goals completed! 🐙
lemma superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum (φs : List 𝓕.CrAnFieldOp) :
(φs' : List 𝓕.FieldOp) →
[ofCrAnListF φs, ofFieldOpListF φs']ₛF =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofFieldOpListF (φs'.take n) * [ofCrAnListF φs, ofFieldOpF (φs'.get n)]ₛF *
ofFieldOpListF (φs'.drop (n + 1))
| [] => 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpListF []) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take ↑n [])) •
ofFieldOpListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ([].get n)) *
ofFieldOpListF (List.drop (↑n + 1) []) by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpListF []) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take ↑n [])) •
ofFieldOpListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ([].get n)) *
ofFieldOpListF (List.drop (↑n + 1) [])
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofFieldOpListF [] -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic []) • ofFieldOpListF [] * ofCrAnListF φs =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take ↑n [])) •
ofFieldOpListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ([].get n)) *
ofFieldOpListF (List.drop (↑n + 1) []) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofFieldOpListF [] -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic []) • ofFieldOpListF [] * ofCrAnListF φs =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take ↑n [])) •
ofFieldOpListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ([].get n)) *
ofFieldOpListF (List.drop (↑n + 1) [])] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF φs * ofFieldOpListF [] -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic []) • ofFieldOpListF [] * ofCrAnListF φs =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take ↑n [])) •
ofFieldOpListF (List.take ↑n []) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ([].get n)) *
ofFieldOpListF (List.drop (↑n + 1) [])
simp All goals completed! 🐙
| φ :: φs' => 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpListF (φ :: φs')) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs')) by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpListF (φ :: φs')) =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs'))
rw [superCommuteF_ofCrAnListF_ofFieldOpListF_cons, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpListF φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs')) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs'))
superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum φs φs' 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs')) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs'))] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' +
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) (φ :: φs'))) •
ofFieldOpListF (List.take (↑n) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get n)) *
ofFieldOpListF (List.drop (↑n + 1) (φ :: φs'))
conv_rhs => erw [Fin.sum_univ_succ] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp| (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑0) (φ :: φs'))) •
ofFieldOpListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get 0)) *
ofFieldOpListF (List.drop (↑0 + 1) (φ :: φs')) +
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑i.succ) (φ :: φs'))) •
ofFieldOpListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get i.succ)) *
ofFieldOpListF (List.drop (↑i.succ + 1) (φ :: φs'))
congr 1 e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑0) (φ :: φs'))) •
ofFieldOpListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get 0)) *
ofFieldOpListF (List.drop (↑0 + 1) (φ :: φs'))e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑i.succ) (φ :: φs'))) •
ofFieldOpListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get i.succ)) *
ofFieldOpListF (List.drop (↑i.succ + 1) (φ :: φs'))
· e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofFieldOpF φ) * ofFieldOpListF φs' =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑0) (φ :: φs'))) •
ofFieldOpListF (List.take (↑0) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get 0)) *
ofFieldOpListF (List.drop (↑0 + 1) (φ :: φs')) simp All goals completed! 🐙
· e_a 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (𝓕|>ₛφ) • ofFieldOpF φ *
∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑n) φs')) •
ofFieldOpListF (List.take (↑n) φs') *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF (φs'.get n)) *
ofFieldOpListF (List.drop (↑n + 1) φs') =
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic (List.take (↑i.succ) (φ :: φs'))) •
ofFieldOpListF (List.take (↑i.succ) (φ :: φs')) *
(superCommuteF (ofCrAnListF φs)) (ofFieldOpF ((φ :: φs').get i.succ)) *
ofFieldOpListF (List.drop (↑i.succ + 1) (φ :: φs')) simp [Finset.mul_sum, smul_smul, ofFieldOpListF_cons, mul_assoc,
FieldStatistic.ofList_cons_eq_mul, mul_comm] All goals completed! 🐙
lemma summerCommute_jacobi_ofCrAnListF (φs1 φs2 φs3 : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs1, [ofCrAnListF φs2, ofCrAnListF φs3]ₛF]ₛF =
𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs3) •
(- 𝓢(𝓕 |>ₛ φs2, 𝓕 |>ₛ φs3) • [ofCrAnListF φs3, [ofCrAnListF φs1, ofCrAnListF φs2]ₛF]ₛF -
𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs2) • [ofCrAnListF φs2, [ofCrAnListF φs3, ofCrAnListF φs1]ₛF]ₛF) := by 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1)) ((superCommuteF (ofCrAnListF φs2)) (ofCrAnListF φs3)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3)) ((superCommuteF (ofCrAnListF φs1)) (ofCrAnListF φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2)) ((superCommuteF (ofCrAnListF φs3)) (ofCrAnListF φs1)))
repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1))
(ofCrAnListF (φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) • ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3)) ((superCommuteF (ofCrAnListF φs1)) (ofCrAnListF φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2)) ((superCommuteF (ofCrAnListF φs3)) (ofCrAnListF φs1))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1))
(ofCrAnListF (φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) • ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3))
(ofCrAnListF (φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) • ofCrAnListF (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2))
(ofCrAnListF (φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) • ofCrAnListF (φs1 ++ φs3)))] 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1))
(ofCrAnListF (φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) • ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3))
(ofCrAnListF (φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) • ofCrAnListF (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2)) ((superCommuteF (ofCrAnListF φs3)) (ofCrAnListF φs1))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1))
(ofCrAnListF (φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) • ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3))
(ofCrAnListF (φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) • ofCrAnListF (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2))
(ofCrAnListF (φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) • ofCrAnListF (φs1 ++ φs3))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1))
(ofCrAnListF (φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) • ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs3))
(ofCrAnListF (φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) • ofCrAnListF (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs2))
(ofCrAnListF (φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) • ofCrAnListF (φs1 ++ φs3)))
simp only [map_sub, map_smul, neg_smul] 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs1)) (ofCrAnListF (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs1)) (ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
((superCommuteF (ofCrAnListF φs3)) (ofCrAnListF (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs3)) (ofCrAnListF (φs2 ++ φs1)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
((superCommuteF (ofCrAnListF φs2)) (ofCrAnListF (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(superCommuteF (ofCrAnListF φs2)) (ofCrAnListF (φs1 ++ φs3))))
repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs2 ++ φs3)) •
ofCrAnListF (φs2 ++ φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(superCommuteF (ofCrAnListF φs1)) (ofCrAnListF (φs3 ++ φs2)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
((superCommuteF (ofCrAnListF φs3)) (ofCrAnListF (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(superCommuteF (ofCrAnListF φs3)) (ofCrAnListF (φs2 ++ φs1)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
((superCommuteF (ofCrAnListF φs2)) (ofCrAnListF (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(superCommuteF (ofCrAnListF φs2)) (ofCrAnListF (φs1 ++ φs3)))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs2 ++ φs3)) •
ofCrAnListF (φs2 ++ φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs3 ++ φs2)) •
ofCrAnListF (φs3 ++ φs2 ++ φs1)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs1 ++ φs2)) •
ofCrAnListF (φs1 ++ φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs2 ++ φs1)) •
ofCrAnListF (φs2 ++ φs1 ++ φs3)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs3 ++ φs1)) •
ofCrAnListF (φs3 ++ φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs1 ++ φs3)) •
ofCrAnListF (φs1 ++ φs3 ++ φs2))))] 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs2 ++ φs3)) •
ofCrAnListF (φs2 ++ φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs3 ++ φs2)) •
ofCrAnListF (φs3 ++ φs2 ++ φs1)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs1 ++ φs2)) •
ofCrAnListF (φs1 ++ φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs2 ++ φs1)) •
ofCrAnListF (φs2 ++ φs1 ++ φs3)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs3 ++ φs1)) •
ofCrAnListF (φs3 ++ φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(superCommuteF (ofCrAnListF φs2)) (ofCrAnListF (φs1 ++ φs3)))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs2 ++ φs3)) •
ofCrAnListF (φs2 ++ φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs3 ++ φs2)) •
ofCrAnListF (φs3 ++ φs2 ++ φs1)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs1 ++ φs2)) •
ofCrAnListF (φs1 ++ φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs2 ++ φs1)) •
ofCrAnListF (φs2 ++ φs1 ++ φs3)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs3 ++ φs1)) •
ofCrAnListF (φs3 ++ φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs1 ++ φs3)) •
ofCrAnListF (φs1 ++ φs3 ++ φs2)))) 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs2 ++ φs3)) •
ofCrAnListF (φs2 ++ φs3 ++ φs1) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics (φs3 ++ φs2)) •
ofCrAnListF (φs3 ++ φs2 ++ φs1)) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs1 ++ φs2)) •
ofCrAnListF (φs1 ++ φs2 ++ φs3) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics (φs2 ++ φs1)) •
ofCrAnListF (φs2 ++ φs1 ++ φs3)))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs3 ++ φs1)) •
ofCrAnListF (φs3 ++ φs1 ++ φs2) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics (φs1 ++ φs3)) •
ofCrAnListF (φs1 ++ φs3 ++ φs2))))
simp only [ofList_append_eq_mul, List.append_assoc] 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))
by_cases h1 : (𝓕 |>ₛ φs1) = bosonic pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2))))) <;> pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))
by_cases h2 : (𝓕 |>ₛ φs2) = bosonic pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2))))) <;> pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))
by_cases h3 : (𝓕 |>ₛ φs3) = bosonic pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:¬ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2))))) <;> pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:¬ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:¬ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:¬ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs1 = bosonich2:¬ofList 𝓕.crAnStatistics φs2 = bosonich3:¬ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs3) •
(-((exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3) •
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs2) •
ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3))
(ofList 𝓕.crAnStatistics φs2 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs2 ++ (φs1 ++ φs3))))) -
(exchangeSign (ofList 𝓕.crAnStatistics φs1)) (ofList 𝓕.crAnStatistics φs2) •
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs3 * ofList 𝓕.crAnStatistics φs1) •
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs3)) (ofList 𝓕.crAnStatistics φs1) •
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(exchangeSign (ofList 𝓕.crAnStatistics φs2)) (ofList 𝓕.crAnStatistics φs1 * ofList 𝓕.crAnStatistics φs3) •
ofCrAnListF (φs1 ++ (φs3 ++ φs2)))))
simp_all only [neq_bosonic_iff_eq_fermionic, mul_self, bosonic_exchangeSign, one_smul,
exchangeSign_bosonic, neg_sub, mul_bosonic, map_one, fermionic_exchangeSign_fermionic,
neg_smul, bosonic_mul_fermionic, sub_neg_eq_add, smul_add] neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = fermionich2:ofList 𝓕.crAnStatistics φs2 = fermionich3:ofList 𝓕.crAnStatistics φs3 = fermionic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))) =
ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2))) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1)))) <;> pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = fermionic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = fermionich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = bosonich2:ofList 𝓕.crAnStatistics φs2 = fermionich3:ofList 𝓕.crAnStatistics φs3 = fermionic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))) =
ofCrAnListF (φs3 ++ (φs1 ++ φs2)) + ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) + ofCrAnListF (φs2 ++ (φs1 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) + ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) + ofCrAnListF (φs1 ++ (φs3 ++ φs2))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = fermionich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = fermionich2:ofList 𝓕.crAnStatistics φs2 = bosonich3:ofList 𝓕.crAnStatistics φs3 = fermionic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) + ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) + ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3))) -
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) + ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) + ofCrAnListF (φs1 ++ (φs2 ++ φs3))))pos 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = fermionich2:ofList 𝓕.crAnStatistics φs2 = fermionich3:ofList 𝓕.crAnStatistics φs3 = bosonic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) + ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs1 ++ (φs3 ++ φs2)) + ofCrAnListF (φs3 ++ (φs2 ++ φs1))) =
ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1)) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3))) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) + ofCrAnListF (φs1 ++ (φs3 ++ φs2)) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) + ofCrAnListF (φs3 ++ (φs1 ++ φs2))))neg 𝓕:FieldSpecificationφs1:List 𝓕.CrAnFieldOpφs2:List 𝓕.CrAnFieldOpφs3:List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs1 = fermionich2:ofList 𝓕.crAnStatistics φs2 = fermionich3:ofList 𝓕.crAnStatistics φs3 = fermionic⊢ ofCrAnListF (φs1 ++ (φs2 ++ φs3)) - ofCrAnListF (φs2 ++ (φs3 ++ φs1)) -
(ofCrAnListF (φs3 ++ (φs2 ++ φs1)) - ofCrAnListF (φs1 ++ (φs3 ++ φs2))) =
ofCrAnListF (φs1 ++ (φs3 ++ φs2)) - ofCrAnListF (φs2 ++ (φs1 ++ φs3)) -
(ofCrAnListF (φs2 ++ (φs3 ++ φs1)) - ofCrAnListF (φs3 ++ (φs1 ++ φs2))) -
(ofCrAnListF (φs3 ++ (φs1 ++ φs2)) - ofCrAnListF (φs1 ++ (φs2 ++ φs3)) -
(ofCrAnListF (φs2 ++ (φs1 ++ φs3)) - ofCrAnListF (φs3 ++ (φs2 ++ φs1))))
abel All goals completed! 🐙Interaction with grading.
lemma superCommuteF_grade {a b : 𝓕.FieldOpFreeAlgebra} {f1 f2 : FieldStatistic}
(ha : a ∈ statisticSubmodule f1) (hb : b ∈ statisticSubmodule f2) :
[a, b]ₛF ∈ statisticSubmodule (f1 + f2) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2⊢ (superCommuteF a) b ∈ statisticSubmodule (f1 + f2)
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f2) : Prop :=
[a, a2]ₛF ∈ statisticSubmodule (f1 + f2) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ (superCommuteF a) b ∈ statisticSubmodule (f1 + f2)
change p b hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ p b hb
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}), p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}), p x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}⊢ p x ⋯
obtain ⟨φs, rfl, hφs⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2⊢ p (ofCrAnListF φs) ⋯
simp only [add_eq_mul, p] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2⊢ (superCommuteF a) (ofCrAnListF φs) ∈ statisticSubmodule (f1 * f2)
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f1) : Prop :=
[a2, ofCrAnListF φs]ₛF ∈ statisticSubmodule (f1 + f2) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ (superCommuteF a) (ofCrAnListF φs) ∈ statisticSubmodule (f1 * f2)
change p a ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ p a ha
apply Submodule.span_induction (p := p) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}), p x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ p 0 ⋯mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}),
p x hx → p y hy → p (x + y) ⋯mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}), p x hx → p (a • x) ⋯mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}), p x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}⊢ p x ⋯
obtain ⟨φs', rfl, hφs'⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ p (ofCrAnListF φs') ⋯
simp only [add_eq_mul, p] mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ (superCommuteF (ofCrAnListF φs')) (ofCrAnListF φs) ∈ statisticSubmodule (f1 * f2)
rw [superCommuteF_ofCrAnListF_ofCrAnListF mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs' ++ φs) -
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') ∈
statisticSubmodule (f1 * f2) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs' ++ φs) -
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') ∈
statisticSubmodule (f1 * f2)] mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs' ++ φs) -
(exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') ∈
statisticSubmodule (f1 * f2)
apply Submodule.sub_mem _ mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs' ++ φs) ∈ statisticSubmodule (f1 * f2)mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') ∈
statisticSubmodule (f1 * f2)
· mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs' ++ φs) ∈ statisticSubmodule (f1 * f2) apply ofCrAnListF_mem_statisticSubmodule_of mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofList 𝓕.crAnStatistics (φs' ++ φs) = f1 * f2
rw [ofList_append_eq_mul, mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofList 𝓕.crAnStatistics φs' * ofList 𝓕.crAnStatistics φs = f1 * f2 All goals completed! 🐙 hφs, mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofList 𝓕.crAnStatistics φs' * f2 = f1 * f2 All goals completed! 🐙 hφs' mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ f1 * f2 = f1 * f2 All goals completed! 🐙] All goals completed! 🐙
· mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs')) (ofList 𝓕.crAnStatistics φs) • ofCrAnListF (φs ++ φs') ∈
statisticSubmodule (f1 * f2) apply Submodule.smul_mem mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofCrAnListF (φs ++ φs') ∈ statisticSubmodule (f1 * f2)
apply ofCrAnListF_mem_statisticSubmodule_of mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofList 𝓕.crAnStatistics (φs ++ φs') = f1 * f2
rw [ofList_append_eq_mul, mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ ofList 𝓕.crAnStatistics φs * ofList 𝓕.crAnStatistics φs' = f1 * f2 All goals completed! 🐙 hφs, mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ f2 * ofList 𝓕.crAnStatistics φs' = f1 * f2 All goals completed! 🐙 hφs', mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ f2 * f1 = f1 * f2 All goals completed! 🐙 mul_comm mem.mem.a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = f1⊢ f1 * f2 = f1 * f2 All goals completed! 🐙] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp only [add_eq_mul, map_add, LinearMap.add_apply, p] mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hp1:p x hxhp2:p y hy⊢ (superCommuteF x) (ofCrAnListF φs) + (superCommuteF y) (ofCrAnListF φs) ∈ statisticSubmodule (f1 * f2)
exact Submodule.add_mem _ hp1 hp2 All goals completed! 🐙
· mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}), p x hx → p (a • x) ⋯ intro c x hx hp1 mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hp1:p x hx⊢ p (c • x) ⋯
simp only [add_eq_mul, map_smul, LinearMap.smul_apply, p] mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1}hp1:p x hx⊢ c • (superCommuteF x) (ofCrAnListF φs) ∈ statisticSubmodule (f1 * f2)
exact Submodule.smul_mem _ c hp1 All goals completed! 🐙
· mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f1 → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) ∈ statisticSubmodule (f1 + f2)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f1} exact ha All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp only [add_eq_mul, map_add, p] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hp1:p x hxhp2:p y hy⊢ (superCommuteF a) x + (superCommuteF a) y ∈ statisticSubmodule (f1 * f2)
exact Submodule.add_mem _ hp1 hp2 All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}), p x hx → p (a • x) ⋯ intro c x hx hp1 smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hp1:p x hx⊢ p (c • x) ⋯
simp only [add_eq_mul, map_smul, p] smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2}hp1:p x hx⊢ c • (superCommuteF a) x ∈ statisticSubmodule (f1 * f2)
exact Submodule.smul_mem _ c hp1 All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraf1:FieldStatisticf2:FieldStatisticha:a ∈ statisticSubmodule f1hb:b ∈ statisticSubmodule f2p:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule f2 → Prop := fun a2 hx => (superCommuteF a) a2 ∈ statisticSubmodule (f1 + f2)⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = f2} exact hb All goals completed! 🐙lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛF = a * b - b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = a * b - b * a
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a, a2]ₛF = a * a2 - a2 * a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ (superCommuteF a) b = a * b - b * a
change p b hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p b hb
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p x ⋯
obtain ⟨φs, rfl, hφs⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ p (ofCrAnListF φs) ⋯
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p✝ (ofCrAnListF φs) ⋯
change p a ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p a ha
apply Submodule.span_induction (p := p) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p x ⋯
obtain ⟨φs', rfl, hφs'⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = bosonic⊢ p (ofCrAnListF φs') ⋯
simp [p, hφs, ofCrAnListF_append, superCommuteF_ofCrAnListF_ofCrAnListF] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, LinearMap.add_apply, add_mul, mul_add] mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:(superCommuteF x) (ofCrAnListF φs) = x * ofCrAnListF φs - ofCrAnListF φs * xhp2:(superCommuteF y) (ofCrAnListF φs) = y * ofCrAnListF φs - ofCrAnListF φs * y⊢ x * ofCrAnListF φs - ofCrAnListF φs * x + (y * ofCrAnListF φs - ofCrAnListF φs * y) =
x * ofCrAnListF φs + y * ofCrAnListF φs - (ofCrAnListF φs * x + ofCrAnListF φs * y)
abel All goals completed! 🐙
· mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic} exact ha All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, mul_add, add_mul] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:(superCommuteF a) x = a * x - x * ahp2:(superCommuteF a) y = a * y - y * a⊢ a * x - x * a + (a * y - y * a) = a * x + a * y - (x * a + y * a)
abel All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ac:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic} exact hb All goals completed! 🐙lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛF = a * b - b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionic⊢ (superCommuteF a) b = a * b - b * a
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a, a2]ₛF = a * a2 - a2 * a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ (superCommuteF a) b = a * b - b * a
change p b hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p b hb
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p x ⋯
obtain ⟨φs, rfl, hφs⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ p (ofCrAnListF φs) ⋯
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p✝ (ofCrAnListF φs) ⋯
change p a ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p a ha
apply Submodule.span_induction (p := p) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p x ⋯
obtain ⟨φs', rfl, hφs'⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = bosonic⊢ p (ofCrAnListF φs') ⋯
simp [p, hφs, hφs', ofCrAnListF_append, superCommuteF_ofCrAnListF_ofCrAnListF] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, LinearMap.add_apply, add_mul, mul_add] mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:(superCommuteF x) (ofCrAnListF φs) = x * ofCrAnListF φs - ofCrAnListF φs * xhp2:(superCommuteF y) (ofCrAnListF φs) = y * ofCrAnListF φs - ofCrAnListF φs * y⊢ x * ofCrAnListF φs - ofCrAnListF φs * x + (y * ofCrAnListF φs - ofCrAnListF φs * y) =
x * ofCrAnListF φs + y * ofCrAnListF φs - (ofCrAnListF φs * x + ofCrAnListF φs * y)
abel All goals completed! 🐙
· mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic} exact ha All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, mul_add, add_mul] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:(superCommuteF a) x = a * x - x * ahp2:(superCommuteF a) y = a * y - y * a⊢ a * x - x * a + (a * y - y * a) = a * x + a * y - (x * a + y * a)
abel All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ac:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic} exact hb All goals completed! 🐙lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛF = a * b - b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = a * b - b * a
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a, a2]ₛF = a * a2 - a2 * a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ (superCommuteF a) b = a * b - b * a
change p b hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p b hb
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p x ⋯
obtain ⟨φs, rfl, hφs⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ p (ofCrAnListF φs) ⋯
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p✝ (ofCrAnListF φs) ⋯
change p a ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p a ha
apply Submodule.span_induction (p := p) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p x ⋯
obtain ⟨φs', rfl, hφs'⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = fermionic⊢ p (ofCrAnListF φs') ⋯
simp [p, hφs, hφs', ofCrAnListF_append, superCommuteF_ofCrAnListF_ofCrAnListF] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, LinearMap.add_apply, add_mul, mul_add] mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:(superCommuteF x) (ofCrAnListF φs) = x * ofCrAnListF φs - ofCrAnListF φs * xhp2:(superCommuteF y) (ofCrAnListF φs) = y * ofCrAnListF φs - ofCrAnListF φs * y⊢ x * ofCrAnListF φs - ofCrAnListF φs * x + (y * ofCrAnListF φs - ofCrAnListF φs * y) =
x * ofCrAnListF φs + y * ofCrAnListF φs - (ofCrAnListF φs * x + ofCrAnListF φs * y)
abel All goals completed! 🐙
· mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs - ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic} exact ha All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [map_add, mul_add, add_mul, p] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:(superCommuteF a) x = a * x - x * ahp2:(superCommuteF a) y = a * y - y * a⊢ a * x - x * a + (a * y - y * a) = a * x + a * y - (x * a + y * a)
abel All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * ac:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p, smul_sub] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule bosonicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule bosonic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 - a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic} exact hb All goals completed! 🐙
lemma superCommuteF_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛF = a * b - b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = a * b - b * a
rw [← bosonicProjF_add_fermionicProjF a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF (↑(bosonicProjF a) + ↑(fermionicProjF a))) b =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a)) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF (↑(bosonicProjF a) + ↑(fermionicProjF a))) b =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF (↑(bosonicProjF a) + ↑(fermionicProjF a))) b =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))
simp only [map_add, LinearMap.add_apply] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF ↑(bosonicProjF a)) b + (superCommuteF ↑(fermionicProjF a)) b =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))
rw [superCommuteF_bosonic_bosonic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) ∈ statisticSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a)) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))) hb, superCommuteF_fermionic_bonsonic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF a) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a)) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))) hb] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
(↑(bosonicProjF a) + ↑(fermionicProjF a)) * b - b * (↑(bosonicProjF a) + ↑(fermionicProjF a))
simp only [add_mul, mul_add] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF a) * b - b * ↑(bosonicProjF a) + (↑(fermionicProjF a) * b - b * ↑(fermionicProjF a)) =
↑(bosonicProjF a) * b + ↑(fermionicProjF a) * b - (b * ↑(bosonicProjF a) + b * ↑(fermionicProjF a))
abel All goals completed! 🐙
lemma bosonic_superCommuteF {a b : 𝓕.FieldOpFreeAlgebra} (ha : a ∈ statisticSubmodule bosonic) :
[a, b]ₛF = a * b - b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = a * b - b * a
rw [← bosonicProjF_add_fermionicProjF b 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) (↑(bosonicProjF b) + ↑(fermionicProjF b)) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) (↑(bosonicProjF b) + ↑(fermionicProjF b)) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) (↑(bosonicProjF b) + ↑(fermionicProjF b)) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a
simp only [map_add] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) ↑(bosonicProjF b) + (superCommuteF a) ↑(fermionicProjF b) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a
rw [superCommuteF_bosonic_bosonic ha (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ ↑(bosonicProjF b) ∈ statisticSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a), superCommuteF_bosonic_fermionic ha (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ ↑(fermionicProjF b) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a)] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * (↑(bosonicProjF b) + ↑(fermionicProjF b)) - (↑(bosonicProjF b) + ↑(fermionicProjF b)) * a
simp only [add_mul, mul_add] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * ↑(bosonicProjF b) - ↑(bosonicProjF b) * a + (a * ↑(fermionicProjF b) - ↑(fermionicProjF b) * a) =
a * ↑(bosonicProjF b) + a * ↑(fermionicProjF b) - (↑(bosonicProjF b) * a + ↑(fermionicProjF b) * a)
abel All goals completed! 🐙
lemma superCommuteF_bonsonic_symm {a b : 𝓕.FieldOpFreeAlgebra}
(hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛF = - [b, a]ₛF := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = -(superCommuteF b) a
rw [bosonic_superCommuteF hb, 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = -(b * a - a * b) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b) superCommuteF_bonsonic hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b)] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrahb:b ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b)
simp All goals completed! 🐙
lemma bonsonic_superCommuteF_symm {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) :
[a, b]ₛF = - [b, a]ₛF := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) b = -(superCommuteF b) a
rw [bosonic_superCommuteF ha, 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(superCommuteF b) a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b) superCommuteF_bonsonic ha 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b)] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule bosonic⊢ a * b - b * a = -(b * a - a * b)
simp All goals completed! 🐙lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛF = a * b + b * a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ (superCommuteF a) b = a * b + b * a
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a, a2]ₛF = a * a2 + a2 * a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ (superCommuteF a) b = a * b + b * a
change p b hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ p b hb
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * ax:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p x ⋯
obtain ⟨φs, rfl, hφs⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ p (ofCrAnListF φs) ⋯
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs + ofCrAnListF φs * a2 mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ p✝ (ofCrAnListF φs) ⋯
change p a ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ p a ha
apply Submodule.span_induction (p := p) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ p 0 ⋯mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p x ⋯
obtain ⟨φs', rfl, hφs'⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2φs':List 𝓕.CrAnFieldOphφs':ofList 𝓕.crAnStatistics φs' = fermionic⊢ p (ofCrAnListF φs') ⋯
simp [p, hφs, hφs', ofCrAnListF_append, superCommuteF_ofCrAnListF_ofCrAnListF] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [p, map_add, LinearMap.add_apply, add_mul, mul_add] mem.add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:(superCommuteF x) (ofCrAnListF φs) = x * ofCrAnListF φs + ofCrAnListF φs * xhp2:(superCommuteF y) (ofCrAnListF φs) = y * ofCrAnListF φs + ofCrAnListF φs * y⊢ x * ofCrAnListF φs + ofCrAnListF φs * x + (y * ofCrAnListF φs + ofCrAnListF φs * y) =
x * ofCrAnListF φs + y * ofCrAnListF φs + (ofCrAnListF φs * x + ofCrAnListF φs * y)
abel All goals completed! 🐙
· mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 mem.smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p] All goals completed! 🐙
· mem.hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp✝:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * aφs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a2) (ofCrAnListF φs) = a2 * ofCrAnListF φs + ofCrAnListF φs * a2⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic} exact ha All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hp1 hp2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hxhp2:p y hy⊢ p (x + y) ⋯
simp_all only [map_add, mul_add, add_mul, p] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * ax:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:(superCommuteF a) x = a * x + x * ahp2:(superCommuteF a) y = a * y + y * a⊢ a * x + x * a + (a * y + y * a) = a * x + a * y + (x * a + y * a)
abel All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯ intro c x hx hp1 smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * ac:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hp1:p x hx⊢ p (c • x) ⋯
simp_all [p] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionicp:(a2 : 𝓕.FieldOpFreeAlgebra) → a2 ∈ statisticSubmodule fermionic → Prop := fun a2 hx => (superCommuteF a) a2 = a * a2 + a2 * a⊢ b ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic} exact hb All goals completed! 🐙
lemma superCommuteF_fermionic_fermionic_symm {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛF = [b, a]ₛF := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ (superCommuteF a) b = (superCommuteF b) a
rw [superCommuteF_fermionic_fermionic ha hb 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = (superCommuteF b) a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = (superCommuteF b) a] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = (superCommuteF b) a
rw [superCommuteF_fermionic_fermionic hb ha 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = b * a + a * b 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = b * a + a * b] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraha:a ∈ statisticSubmodule fermionichb:b ∈ statisticSubmodule fermionic⊢ a * b + b * a = b * a + a * b
abel All goals completed! 🐙
lemma superCommuteF_expand_bosonicProjF_fermionicProjF (a b : 𝓕.FieldOpFreeAlgebra) :
[a, b]ₛF = bosonicProjF a * bosonicProjF b - bosonicProjF b * bosonicProjF a +
bosonicProjF a * fermionicProjF b - fermionicProjF b * bosonicProjF a +
fermionicProjF a * bosonicProjF b - bosonicProjF b * fermionicProjF a +
fermionicProjF a * fermionicProjF b + fermionicProjF b * fermionicProjF a := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (superCommuteF a) b =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)
conv_lhs => rw [← bosonicProjF_add_fermionicProjF a, ← bosonicProjF_add_fermionicProjF b] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra| (superCommuteF (↑(bosonicProjF a) + ↑(fermionicProjF a))) (↑(bosonicProjF b) + ↑(fermionicProjF b))
simp only [map_add, LinearMap.add_apply] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (superCommuteF ↑(bosonicProjF a)) ↑(bosonicProjF b) + (superCommuteF ↑(fermionicProjF a)) ↑(bosonicProjF b) +
((superCommuteF ↑(bosonicProjF a)) ↑(fermionicProjF b) + (superCommuteF ↑(fermionicProjF a)) ↑(fermionicProjF b)) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)
rw [superCommuteF_bonsonic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF b) ∈ statisticSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)),
superCommuteF_fermionic_bonsonic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(fermionicProjF a) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)) (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF b) ∈ statisticSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)),
superCommuteF_bosonic_fermionic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) ∈ statisticSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)) (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(fermionicProjF b) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)),
superCommuteF_fermionic_fermionic (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(fermionicProjF a) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)) (by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(fermionicProjF b) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a) simp All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a))] 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ ↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(fermionicProjF a)) +
(↑(bosonicProjF a) * ↑(fermionicProjF b) - ↑(fermionicProjF b) * ↑(bosonicProjF a) +
(↑(fermionicProjF a) * ↑(fermionicProjF b) + ↑(fermionicProjF b) * ↑(fermionicProjF a))) =
↑(bosonicProjF a) * ↑(bosonicProjF b) - ↑(bosonicProjF b) * ↑(bosonicProjF a) +
↑(bosonicProjF a) * ↑(fermionicProjF b) -
↑(fermionicProjF b) * ↑(bosonicProjF a) +
↑(fermionicProjF a) * ↑(bosonicProjF b) -
↑(bosonicProjF b) * ↑(fermionicProjF a) +
↑(fermionicProjF a) * ↑(fermionicProjF b) +
↑(fermionicProjF b) * ↑(fermionicProjF a)
abel All goals completed! 🐙
lemma superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule bosonic ∨
[ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic
by_cases h1 : (𝓕 |>ₛ φs) = bosonic pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionicneg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic <;> pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionicneg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic by_cases h2 : (𝓕 |>ₛ φs') = bosonic pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionicneg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic
· pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic left pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic
rw [show bosonic = bosonic + bosonic from rfl pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic) pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic)] pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ h1)
(ofCrAnListF_mem_statisticSubmodule_of _ _ h2) All goals completed! 🐙
· neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic right neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic
rw [show fermionic = bosonic + fermionic from rfl neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + fermionic) neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + fermionic)]neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + fermionic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ h1)
(ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ ofList 𝓕.crAnStatistics φs' = fermionic simpa using h2 All goals completed! 🐙))
· pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic right pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic
rw [show fermionic = fermionic + bosonic from rfl pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + bosonic) pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + bosonic)]pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + bosonic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:ofList 𝓕.crAnStatistics φs' = bosonic⊢ ofList 𝓕.crAnStatistics φs = fermionic simpa using h1 All goals completed! 🐙))
(ofCrAnListF_mem_statisticSubmodule_of _ _ h2)
· neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic left neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic
rw [show bosonic = fermionic + fermionic from rfl neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic) neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic)]neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ ofList 𝓕.crAnStatistics φs = fermionic simpa using h1 All goals completed! 🐙))
(ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph1:¬ofList 𝓕.crAnStatistics φs = bosonich2:¬ofList 𝓕.crAnStatistics φs' = bosonic⊢ ofList 𝓕.crAnStatistics φs' = fermionic simpa using h2 All goals completed! 🐙))
lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic (φ φ' : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule bosonic ∨
[ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule fermionic := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF [φ])) (ofCrAnOpF φ') ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF [φ])) (ofCrAnOpF φ') ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule fermionic ← ofCrAnListF_singleton 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule fermionic 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule fermionic] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφ':𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnListF [φ])) (ofCrAnListF [φ']) ∈ statisticSubmodule fermionic
exact superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [φ'] All goals completed! 🐙
lemma superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule bosonic ∨
[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule fermionic := by 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic
rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ2 φ3 with hs | hs inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionicinr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic
<;> inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionicinr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic rcases ofCrAnOpF_bosonic_or_fermionic φ1 with h1 | h1 inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionicinr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic
· inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic left inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic
rw [show bosonic = bosonic + bosonic from rfl inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule (bosonic + bosonic) inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule (bosonic + bosonic)] inl.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule (bosonic + bosonic)
exact superCommuteF_grade h1 hs All goals completed! 🐙
· inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic right inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic
rw [show fermionic = fermionic + bosonic from rfl inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + bosonic) inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + bosonic)]inl.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule bosonich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + bosonic)
exact superCommuteF_grade h1 hs All goals completed! 🐙
· inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic right inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic
rw [show fermionic = bosonic + fermionic from rfl inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (bosonic + fermionic) inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (bosonic + fermionic)]inr.inl 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule bosonic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (bosonic + fermionic)
exact superCommuteF_grade h1 hs All goals completed! 🐙
· inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic ∨
(superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule fermionic left inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈ statisticSubmodule bosonic
rw [show bosonic = fermionic + fermionic from rfl inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + fermionic) inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + fermionic)]inr.inr 𝓕:FieldSpecificationφ1:𝓕.CrAnFieldOpφ2:𝓕.CrAnFieldOpφ3:𝓕.CrAnFieldOphs:(superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3) ∈ statisticSubmodule fermionich1:ofCrAnOpF φ1 ∈ statisticSubmodule fermionic⊢ (superCommuteF (ofCrAnOpF φ1)) ((superCommuteF (ofCrAnOpF φ2)) (ofCrAnOpF φ3)) ∈
statisticSubmodule (fermionic + fermionic)
exact superCommuteF_grade h1 hs All goals completed! 🐙
lemma superCommuteF_bosonic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) (φs : List 𝓕.CrAnFieldOp)
(ha : a ∈ statisticSubmodule bosonic) :
[a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length),
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonic⊢ (superCommuteF a) (ofCrAnListF φs) =
∑ n, ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)
let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule bosonic) : Prop :=
[a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length),
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ (superCommuteF a) (ofCrAnListF φs) =
∑ n, ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)
change p a ha 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ p a ha
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ intro a ha mem 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha✝:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)a:𝓕.FieldOpFreeAlgebraha:a ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p a ⋯
obtain ⟨φs, rfl, hφs⟩ := ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ p (ofCrAnListF φs) ⋯
simp only [List.get_eq_getElem, p] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs✝) =
∑ x,
ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝)
rw [superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝)] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝)
congr mem.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonic⊢ (fun n =>
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝)) =
fun x =>
ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝)
funext n mem.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = bosonicn:Fin φs✝.length⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
ofCrAnListF (List.take (↑n) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑n]) *
ofCrAnListF (List.drop (↑n + 1) φs✝)
simp [hφs] All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hpx hpy add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:p x hxhpy:p y hy⊢ p (x + y) ⋯
simp_all only [List.get_eq_getElem, map_add, LinearMap.add_apply, p] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)⊢ ∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs) +
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)
rw [← Finset.sum_add_distrib add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)⊢ ∑ x_1,
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs) +
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs) add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)⊢ ∑ x_1,
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs) +
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)]add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)⊢ ∑ x_1,
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs) +
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)
congr add.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)⊢ (fun x_1 =>
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs) +
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) =
fun x_1 =>
ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)
funext n add.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) * ofCrAnListF (List.drop (↑x_1 + 1) φs)hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x, ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)n:Fin φs✝.length⊢ ofCrAnListF (List.take (↑n) φs) * (superCommuteF x) (ofCrAnOpF φs[↑n]) * ofCrAnListF (List.drop (↑n + 1) φs) +
ofCrAnListF (List.take (↑n) φs) * (superCommuteF y) (ofCrAnOpF φs[↑n]) * ofCrAnListF (List.drop (↑n + 1) φs) =
ofCrAnListF (List.take (↑n) φs) * ((superCommuteF x) (ofCrAnOpF φs[↑n]) + (superCommuteF y) (ofCrAnOpF φs[↑n])) *
ofCrAnListF (List.drop (↑n + 1) φs)
simp [mul_add, add_mul] All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}),
p x hx → p (a • x) ⋯ intro c x hx hpx smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:p x hx⊢ p (c • x) ⋯
simp_all [p, Finset.smul_sum] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
ofCrAnListF (List.take (↑n) φs) * (superCommuteF a) (ofCrAnOpF (φs.get n)) * ofCrAnListF (List.drop (↑n + 1) φs)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic} exact ha All goals completed! 🐙
lemma superCommuteF_fermionic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra)
(φs : List 𝓕.CrAnFieldOp) (ha : a ∈ statisticSubmodule fermionic) :
[a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) •
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionic⊢ (superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)
let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule fermionic) : Prop :=
[a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) •
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ (superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)
change p a ha 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ p a ha
apply Submodule.span_induction (p := p) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ p 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ intro a ha mem 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha✝:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)a:𝓕.FieldOpFreeAlgebraha:a ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p a ⋯
obtain ⟨φs, rfl, hφs⟩ := ha mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ p (ofCrAnListF φs) ⋯
simp only [List.get_eq_getElem, Algebra.smul_mul_assoc, p] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs✝) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs✝)) •
(ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝))
rw [superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs✝)) •
(ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝)) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs✝)) •
(ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝))] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ ∑ n,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs✝)) •
(ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝))
congr mem.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionic⊢ (fun n =>
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝)) =
fun x =>
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs✝)) •
(ofCrAnListF (List.take (↑x) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑x]) *
ofCrAnListF (List.drop (↑x + 1) φs✝))
funext n mem.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs✝:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)φs:List 𝓕.CrAnFieldOphφs:ofList 𝓕.crAnStatistics φs = fermionicn:Fin φs✝.length⊢ (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
ofCrAnListF (List.take (↑n) φs✝) *
(superCommuteF (ofCrAnListF φs)) (ofCrAnOpF (φs✝.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs✝) =
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs✝)) •
(ofCrAnListF (List.take (↑n) φs✝) * (superCommuteF (ofCrAnListF φs)) (ofCrAnOpF φs✝[↑n]) *
ofCrAnListF (List.drop (↑n + 1) φs✝))
simp [hφs] All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ p 0 ⋯ simp [p] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic})
(hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p y hy → p (x + y) ⋯ intro x y hx hy hpx hpy add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:p x hxhpy:p y hy⊢ p (x + y) ⋯
simp_all only [p, List.get_eq_getElem, Algebra.smul_mul_assoc, map_add,
LinearMap.add_apply] add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))⊢ ∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) +
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))
rw [← Finset.sum_add_distrib add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))⊢ ∑ x_1,
((exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) +
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))⊢ ∑ x_1,
((exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) +
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))]add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))⊢ ∑ x_1,
((exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) +
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))
congr add.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))⊢ (fun x_1 =>
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) +
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))) =
fun x_1 =>
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) *
((superCommuteF x) (ofCrAnOpF φs[↑x_1]) + (superCommuteF y) (ofCrAnOpF φs[↑x_1])) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))
funext n add.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))hpy:(superCommuteF y) (ofCrAnListF φs) =
∑ x,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF y) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))n:Fin φs✝.length⊢ (exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) •
(ofCrAnListF (List.take (↑n) φs) * (superCommuteF x) (ofCrAnOpF φs[↑n]) * ofCrAnListF (List.drop (↑n + 1) φs)) +
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) •
(ofCrAnListF (List.take (↑n) φs) * (superCommuteF y) (ofCrAnOpF φs[↑n]) * ofCrAnListF (List.drop (↑n + 1) φs)) =
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) •
(ofCrAnListF (List.take (↑n) φs) * ((superCommuteF x) (ofCrAnOpF φs[↑n]) + (superCommuteF y) (ofCrAnOpF φs[↑n])) *
ofCrAnListF (List.drop (↑n + 1) φs))
simp [mul_add, add_mul] All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra)
(hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}),
p x hx → p (a • x) ⋯ intro c x hx hpx smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:p x hx⊢ p (c • x) ⋯
simp_all only [p, List.get_eq_getElem, Algebra.smul_mul_assoc, map_smul,
LinearMap.smul_apply, Finset.smul_sum, Algebra.mul_smul_comm] smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))⊢ ∑ x_1,
c •
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs)) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
c •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))
congr smul.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)c:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))⊢ (fun x_1 =>
c •
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))) =
fun x_1 =>
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
c •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))
funext x smul.e_f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)c:ℂx✝:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:(superCommuteF x) (ofCrAnListF φs) =
∑ x_1,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x_1) φs)) •
(ofCrAnListF (List.take (↑x_1) φs) * (superCommuteF x) (ofCrAnOpF φs[↑x_1]) *
ofCrAnListF (List.drop (↑x_1 + 1) φs))x:Fin φs✝.length⊢ c •
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
(ofCrAnListF (List.take (↑x) φs) * (superCommuteF x✝) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs)) =
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑x) φs)) •
c • (ofCrAnListF (List.take (↑x) φs) * (superCommuteF x✝) (ofCrAnOpF φs[↑x]) * ofCrAnListF (List.drop (↑x + 1) φs))
simp [smul_smul, mul_comm] All goals completed! 🐙
· hx 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraφs:List 𝓕.CrAnFieldOpha:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop :=
fun a ha =>
(superCommuteF a) (ofCrAnListF φs) =
∑ n,
(exchangeSign fermionic) (ofList 𝓕.crAnStatistics (List.take (↑n) φs)) • ofCrAnListF (List.take (↑n) φs) *
(superCommuteF a) (ofCrAnOpF (φs.get n)) *
ofCrAnListF (List.drop (↑n + 1) φs)⊢ a ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic} exact ha All goals completed! 🐙
lemma statistic_ne_of_superCommuteF_fermionic {φs φs' : List 𝓕.CrAnFieldOp}
(h : [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic) :
(𝓕 |>ₛ φs) ≠ (𝓕 |>ₛ φs') ∨ [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0 := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionic⊢ ofList 𝓕.crAnStatistics φs ≠ ofList 𝓕.crAnStatistics φs' ∨ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0
by_cases h0 : [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0 pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0⊢ ofList 𝓕.crAnStatistics φs ≠ ofList 𝓕.crAnStatistics φs' ∨ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0⊢ ofList 𝓕.crAnStatistics φs ≠ ofList 𝓕.crAnStatistics φs' ∨ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0
· pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0⊢ ofList 𝓕.crAnStatistics φs ≠ ofList 𝓕.crAnStatistics φs' ∨ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0 simp [h0] All goals completed! 🐙
simp only [ne_eq, h0, or_false] neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0⊢ ¬ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'
by_contra hn neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'⊢ False
refine h0 (eq_zero_of_bosonic_and_fermionic ?_ h) neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic
by_cases hc : (𝓕 |>ₛ φs) = bosonic pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonicneg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic
· pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic rw [show bosonic = bosonic + bosonic from rfl pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic) pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic)] pos 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (bosonic + bosonic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ hc)
(ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ ofList 𝓕.crAnStatistics φs' = bosonic rw [← hn, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ ofList 𝓕.crAnStatistics φs = bosonic All goals completed! 🐙 hc 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:ofList 𝓕.crAnStatistics φs = bosonic⊢ bosonic = bosonic All goals completed! 🐙] All goals completed! 🐙))
· neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule bosonic rw [show bosonic = fermionic + fermionic from rfl neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic) neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic)]neg 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ (superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule (fermionic + fermionic)
exact superCommuteF_grade (ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ ofList 𝓕.crAnStatistics φs = fermionic simpa using hc All goals completed! 🐙))
(ofCrAnListF_mem_statisticSubmodule_of _ _ (by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOph:(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') ∈ statisticSubmodule fermionich0:¬(superCommuteF (ofCrAnListF φs)) (ofCrAnListF φs') = 0hn:ofList 𝓕.crAnStatistics φs = ofList 𝓕.crAnStatistics φs'hc:¬ofList 𝓕.crAnStatistics φs = bosonic⊢ ofList 𝓕.crAnStatistics φs' = fermionic simpa [← hn] using hc All goals completed! 🐙))