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.WickAlgebra.Basic

Grading on the field operation algebra

@[expose] public section

The submodule of 𝓕.WickAlgebra spanned by lists of field statistic f.

def statSubmodule (f : FieldStatistic) : Submodule ℂ 𝓕.WickAlgebra := Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ (𝓕 |>ₛ φs) = f}
lemma ofCrAnList_mem_statSubmodule_of_eq (φs : List 𝓕.CrAnFieldOp) (f : FieldStatistic) (h : (𝓕 |>ₛ φs) = f) : ofCrAnList φs ∈ statSubmodule f := Submodule.mem_span.mpr fun _ a => a ⟨φs, ⟨rfl, h⟩⟩lemma ofCrAnList_mem_statSubmodule (φs : List 𝓕.CrAnFieldOp) : ofCrAnList φs ∈ statSubmodule (𝓕 |>ₛ φs) := Submodule.mem_span.mpr fun _ a => a ⟨φs, ⟨rfl, rfl⟩⟩lemma mem_bosonic_of_mem_free_bosonic (a : 𝓕.FieldOpFreeAlgebra) (h : a ∈ statisticSubmodule bosonic) : ι a ∈ statSubmodule .bosonic := 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonic⊢ ι a ∈ statSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ι a ∈ statSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ p a h 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ p 0 ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (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) ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicx:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}⊢ p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicx:𝓕.FieldOpFreeAlgebrahx:∃ φs, x = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic⊢ p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = bosonic⊢ p (ofCrAnListF φs) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = bosonic⊢ ι (ofCrAnListF φs) ∈ statSubmodule bosonic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = bosonic⊢ ofList 𝓕.crAnStatistics φs = bosonic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ p 0 ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ 0 ∈ statSubmodule bosonic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (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) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicx:𝓕.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) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonicx:𝓕.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:ι x ∈ statSubmodule bosonichpy:ι y ∈ statSubmodule bosonic⊢ ι x + ι y ∈ statSubmodule bosonic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonic⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonica:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:p x hx⊢ p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule bosonic → Prop := fun a hx => ι a ∈ statSubmodule bosonica:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:ι x ∈ statSubmodule bosonic⊢ a • ι x ∈ statSubmodule bosonic All goals completed! 🐙lemma mem_fermionic_of_mem_free_fermionic (a : 𝓕.FieldOpFreeAlgebra) (h : a ∈ statisticSubmodule fermionic) : ι a ∈ statSubmodule .fermionic := 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionic⊢ ι a ∈ statSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ι a ∈ statSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ p a h 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ p 0 ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (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) ⋯𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicx:𝓕.FieldOpFreeAlgebrahx:x ∈ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}⊢ p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicx:𝓕.FieldOpFreeAlgebrahx:∃ φs, x = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic⊢ p x ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = fermionic⊢ p (ofCrAnListF φs) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = fermionic⊢ ι (ofCrAnListF φs) ∈ statSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah✝:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicφs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = fermionic⊢ ofList 𝓕.crAnStatistics φs = fermionic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ p 0 ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ 0 ∈ statSubmodule fermionic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (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) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicx:𝓕.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) ⋯ 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionicx:𝓕.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:ι x ∈ statSubmodule fermionichpy:ι y ∈ statSubmodule fermionic⊢ ι x + ι y ∈ statSubmodule fermionic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionic⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionica:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:p x hx⊢ p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionicp:(a : 𝓕.FieldOpFreeAlgebra) → a ∈ statisticSubmodule fermionic → Prop := fun a hx => ι a ∈ statSubmodule fermionica:ℂx:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnListF φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:ι x ∈ statSubmodule fermionic⊢ a • ι x ∈ statSubmodule fermionic All goals completed! 🐙lemma mem_statSubmodule_of_mem_statisticSubmodule (f : FieldStatistic) (a : 𝓕.FieldOpFreeAlgebra) (h : a ∈ statisticSubmodule f) : ι a ∈ statSubmodule f := 𝓕:FieldSpecificationf:FieldStatistica:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule f⊢ ι a ∈ statSubmodule f 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonic⊢ ι a ∈ statSubmodule bosonic𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionic⊢ ι a ∈ statSubmodule fermionic 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule bosonic⊢ ι a ∈ statSubmodule bosonic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:a ∈ statisticSubmodule fermionic⊢ ι a ∈ statSubmodule fermionic All goals completed! 🐙

The projection of statisticSubmodule (𝓕 := 𝓕) f defined in the free algebra to statSubmodule (𝓕 := 𝓕) f.

def ιStateSubmodule (f : FieldStatistic) : statisticSubmodule (𝓕 := 𝓕) f →ₗ[ℂ] statSubmodule (𝓕 := 𝓕) f where toFun a := ⟨a.1, mem_statSubmodule_of_mem_statisticSubmodule f a.1 a.2⟩ map_add' _ _ := rfl map_smul' _ _ := rfl

Defining bosonicProj

The projection of 𝓕.FieldOpFreeAlgebra to statSubmodule (𝓕 := 𝓕) bosonic.

def bosonicProjFree : 𝓕.FieldOpFreeAlgebra →ₗ[ℂ] statSubmodule (𝓕 := 𝓕) bosonic := ιStateSubmodule .bosonic ∘ₗ bosonicProjF
lemma bosonicProjFree_eq_ι_bosonicProjF (a : 𝓕.FieldOpFreeAlgebra) : (bosonicProjFree a).1 = ι (bosonicProjF a) := rfl𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF a) = 0 ∧ ι ↑(fermionicProjF a) = 0⊢ ι ↑(bosonicProjF a) = ↑0 All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrah:ι (a - b) = 0⊢ a - b ∈ bosonicProjFree.ker 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrah:ι (a - b) = 0⊢ bosonicProjFree (a - b) = 0 All goals completed! 🐙

The projection of 𝓕.WickAlgebra to statSubmodule (𝓕 := 𝓕) bosonic.

𝓕:FieldSpecificationc:ℂy:𝓕.FieldOpFreeAlgebra⊢ Quotient.lift ⇑bosonicProjFree ⋯ ⟦c • y⟧ = (RingHom.id ℂ) c • Quotient.lift ⇑bosonicProjFree ⋯ ⟦y⟧ All goals completed! 🐙
lemma bosonicProj_eq_bosonicProjFree (a : 𝓕.FieldOpFreeAlgebra) : bosonicProj (ι a) = bosonicProjFree a := rfl

Defining fermionicProj

The projection of 𝓕.FieldOpFreeAlgebra to statSubmodule (𝓕 := 𝓕) fermionic.

def fermionicProjFree : 𝓕.FieldOpFreeAlgebra →ₗ[ℂ] statSubmodule (𝓕 := 𝓕) fermionic := ιStateSubmodule .fermionic ∘ₗ fermionicProjF
lemma fermionicProjFree_eq_ι_fermionicProjF (a : 𝓕.FieldOpFreeAlgebra) : (fermionicProjFree a).1 = ι (fermionicProjF a) := rfl𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrah:ι ↑(bosonicProjF a) = 0 ∧ ι ↑(fermionicProjF a) = 0⊢ ι ↑(fermionicProjF a) = ↑0 All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrah:ι (a - b) = 0⊢ a - b ∈ fermionicProjFree.ker 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrah:ι (a - b) = 0⊢ fermionicProjFree (a - b) = 0 All goals completed! 🐙

The projection of 𝓕.WickAlgebra to statSubmodule (𝓕 := 𝓕) fermionic.

𝓕:FieldSpecificationc:ℂy:𝓕.FieldOpFreeAlgebra⊢ Quotient.lift ⇑fermionicProjFree ⋯ ⟦c • y⟧ = (RingHom.id ℂ) c • Quotient.lift ⇑fermionicProjFree ⋯ ⟦y⟧ All goals completed! 🐙
lemma fermionicProj_eq_fermionicProjFree (a : 𝓕.FieldOpFreeAlgebra) : fermionicProj (ι a) = fermionicProjFree a := rfl

Interaction between bosonicProj and fermionicProj

All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩φs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = bosonic⊢ ofCrAnListF φs ∈ statisticSubmodule bosonic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩⊢ p 0 ⋯ 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩⊢ 0 = ⟨0, ⋯⟩ All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩⊢ ∀ (x y : 𝓕.WickAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}) (hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x hx → p y hy → p (x + y) ⋯ 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩x:𝓕.WickAlgebray:𝓕.WickAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hpx:p x hxhpy:p y hy⊢ p (x + y) ⋯ All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩⊢ ∀ (a : ℂ) (x : 𝓕.WickAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.WickAlgebraha:a ∈ statSubmodule bosonicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule bosonic → Prop := fun a hx => bosonicProj a = ⟨a, hx⟩a:ℂx:𝓕.WickAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = bosonic}hy:p x hx⊢ p (a • x) ⋯ All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩φs:List 𝓕.CrAnFieldOph:ofList 𝓕.crAnStatistics φs = fermionic⊢ ofCrAnListF φs ∈ statisticSubmodule fermionic All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩⊢ p 0 ⋯ 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩⊢ 0 = ⟨0, ⋯⟩ All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩⊢ ∀ (x y : 𝓕.WickAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}) (hy : y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x hx → p y hy → p (x + y) ⋯ 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩x:𝓕.WickAlgebray:𝓕.WickAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:y ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hpx:p x hxhpy:p y hy⊢ p (x + y) ⋯ All goals completed! 🐙 𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩⊢ ∀ (a : ℂ) (x : 𝓕.WickAlgebra) (hx : x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}), p x hx → p (a • x) ⋯ 𝓕:FieldSpecificationa✝:𝓕.WickAlgebraha:a ∈ statSubmodule fermionicp:(a : 𝓕.WickAlgebra) → a ∈ statSubmodule fermionic → Prop := fun a hx => fermionicProj a = ⟨a, hx⟩a:ℂx:𝓕.WickAlgebrahx:x ∈ Submodule.span ℂ {a | ∃ φs, a = ofCrAnList φs ∧ ofList 𝓕.crAnStatistics φs = fermionic}hy:p x hx⊢ p (a • x) ⋯ All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule fermionich:↑(bosonicProj a) + ↑⟨a, ha⟩ = a⊢ bosonicProj a = 0 All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebraha:a ∈ statSubmodule bosonich:↑⟨a, ha⟩ + ↑(fermionicProj a) = a⊢ fermionicProj a = 0 All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebrah:fermionicProj a = 0ha:↑(bosonicProj a) = a⊢ ↑(bosonicProj a) ∈ statSubmodule bosonic All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebrah:bosonicProj a = 0ha:↑(fermionicProj a) = a⊢ ↑(fermionicProj a) ∈ statSubmodule fermionic All goals completed! 🐙𝓕:FieldSpecificationa:𝓕.WickAlgebrahb✝:a ∈ statSubmodule bosonichf:a ∈ statSubmodule fermionicha:bosonicProj a = ⟨a, hb⟩hb:fermionicProj a = ⟨a, hf⟩hc:↑⟨a, hb✝⟩ + ↑⟨a, hf⟩ = a⊢ a = 0 All goals completed! 🐙@[simp] lemma bosonicProj_fermionicProj_eq_zero (a : 𝓕.WickAlgebra) : bosonicProj (fermionicProj a).1 = 0 := 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ bosonicProj ↑(fermionicProj a) = 0 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ ↑(fermionicProj a) ∈ statSubmodule fermionic All goals completed! 🐙@[simp] lemma fermionicProj_bosonicProj_eq_zero (a : 𝓕.WickAlgebra) : fermionicProj (bosonicProj a).1 = 0 := 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ fermionicProj ↑(bosonicProj a) = 0 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ ↑(bosonicProj a) ∈ statSubmodule bosonic All goals completed! 🐙@[simp] lemma bosonicProj_bosonicProj_eq_bosonicProj (a : 𝓕.WickAlgebra) : bosonicProj (bosonicProj a).1 = bosonicProj a := 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ bosonicProj ↑(bosonicProj a) = bosonicProj a All goals completed! 🐙@[simp] lemma fermionicProj_fermionicProj_eq_fermionicProj (a : 𝓕.WickAlgebra) : fermionicProj (fermionicProj a).1 = fermionicProj a := 𝓕:FieldSpecificationa:𝓕.WickAlgebra⊢ fermionicProj ↑(fermionicProj a) = fermionicProj a All goals completed! 🐙@[simp] lemma bosonicProj_of_bosonic_part (a : DirectSum FieldStatistic (fun i => (statSubmodule (𝓕 := 𝓕) i))) : bosonicProj (a bosonic).1 = (a bosonic) := 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ bosonicProj ↑(a bosonic) = a bosonic All goals completed! 🐙@[simp] lemma bosonicProj_of_fermionic_part (a : DirectSum FieldStatistic (fun i => (statSubmodule (𝓕 := 𝓕) i))) : bosonicProj (a fermionic).1 = 0 := 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ bosonicProj ↑(a fermionic) = 0 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ ↑(a fermionic) ∈ statSubmodule fermionic All goals completed! 🐙@[simp] lemma fermionicProj_of_bosonic_part (a : DirectSum FieldStatistic (fun i => (statSubmodule (𝓕 := 𝓕) i))) : fermionicProj (a bosonic).1 = 0 := 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ fermionicProj ↑(a bosonic) = 0 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ ↑(a bosonic) ∈ statSubmodule bosonic All goals completed! 🐙@[simp] lemma fermionicProj_of_fermionic_part (a : DirectSum FieldStatistic (fun i => (statSubmodule (𝓕 := 𝓕) i))) : fermionicProj (a fermionic).1 = (a fermionic) := 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ fermionicProj ↑(a fermionic) = a fermionic All goals completed! 🐙

The grading

𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)i:FieldStatisticx:↥(statSubmodule i)⊢ ↑x = ↑(if h : i = bosonic then Eq.recOn h x else 0) + ↑(if h : i = fermionic then Eq.recOn h x else 0) match i with 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)i:FieldStatisticx:↥(statSubmodule bosonic)⊢ ↑x = ↑(if h : bosonic = bosonic then Eq.recOn h x else 0) + ↑(if h : bosonic = fermionic then Eq.recOn h x else 0) All goals completed! 🐙 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)i:FieldStatisticx:↥(statSubmodule fermionic)⊢ ↑x = ↑(if h : fermionic = bosonic then Eq.recOn h x else 0) + ↑(if h : fermionic = fermionic then Eq.recOn h x else 0) All goals completed! 🐙 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)⊢ ∀ (x y : DirectSum FieldStatistic fun i => ↥(statSubmodule i)), C x → C y → C (x + y) 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)x:DirectSum FieldStatistic fun i => ↥(statSubmodule i)y:DirectSum FieldStatistic fun i => ↥(statSubmodule i)hx:C xhy:C y⊢ C (x + y) 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => (DirectSum.coeAddMonoidHom statSubmodule) a = ↑(a.toFun bosonic) + ↑(a.toFun fermionic)x:DirectSum FieldStatistic fun i => ↥(statSubmodule i)y:DirectSum FieldStatistic fun i => ↥(statSubmodule i)hx:(DirectSum.coeAddMonoidHom statSubmodule) x = ↑(x bosonic) + ↑(x fermionic)hy:(DirectSum.coeAddMonoidHom statSubmodule) y = ↑(y bosonic) + ↑(y fermionic)⊢ ↑(x bosonic) + ↑(x fermionic) + (↑(y bosonic) + ↑(y fermionic)) = ↑(x bosonic) + ↑(y bosonic) + (↑(x fermionic) + ↑(y fermionic)) All goals completed! 🐙𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)i:FieldStatisticx:↥(statSubmodule fermionic)⊢ (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) x = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) 0 + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) x𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)i:FieldStatisticx:↥(statSubmodule fermionic)⊢ bosonic ≠ fermionic 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)i:FieldStatisticx:↥(statSubmodule fermionic)⊢ bosonic ≠ fermionic All goals completed! 🐙 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)⊢ ∀ (x y : DirectSum FieldStatistic fun i => ↥(statSubmodule i)), C x → C y → C (x + y) 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)x:DirectSum FieldStatistic fun i => ↥(statSubmodule i)y:DirectSum FieldStatistic fun i => ↥(statSubmodule i)hx:C xhy:C y⊢ C (x + y) 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)x:DirectSum FieldStatistic fun i => ↥(statSubmodule i)y:DirectSum FieldStatistic fun i => ↥(statSubmodule i)hx:x = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (x bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (x fermionic)hy:y = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (y bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (y fermionic)⊢ x + y = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (x bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (y bosonic) + ((DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (x fermionic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (y fermionic)) conv_lhs => 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)C:(DirectSum FieldStatistic fun i => ↥(statSubmodule i)) → Prop := fun a => a = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)x:DirectSum FieldStatistic fun i => ↥(statSubmodule i)y:DirectSum FieldStatistic fun i => ↥(statSubmodule i)hx:x = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (x bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (x fermionic)hy:y = (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (y bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (y fermionic)| (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (x bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (x fermionic) + ((DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (y bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (y fermionic)) All goals completed! 🐙

For a field statistic 𝓕, the algebra 𝓕.WickAlgebra is graded by FieldStatistic. Those ofCrAnList φs for which φs has an overall bosonic statistic (i.e. 𝓕 |>ₛ φs = bosonic) span bosonic submodule, whilst those ofCrAnList φs for which φs has an overall fermionic statistic (i.e. 𝓕 |>ₛ φs = fermionic) span the fermionic submodule.

𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ (fun a => (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (bosonicProj a) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (fermionicProj a)) (↑(a.toFun bosonic) + ↑(a.toFun fermionic)) = a 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)⊢ (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic) = a conv_rhs => 𝓕:FieldSpecificationa:DirectSum FieldStatistic fun i => ↥(statSubmodule i)| (DirectSum.of (fun i => ↥(statSubmodule i)) bosonic) (a bosonic) + (DirectSum.of (fun i => ↥(statSubmodule i)) fermionic) (a fermionic)