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.FieldSpecification.NormalOrder
public import Physlib.QFT.PerturbationTheory.FieldOpFreeAlgebra.SuperCommuteNormal Ordering in the FieldOpFreeAlgebra
In the module
Physlib.QFT.PerturbationTheory.FieldSpecification.NormalOrder
we defined the normal ordering of a list of CrAnFieldOp.
In this module we extend the normal ordering to a linear map on FieldOpFreeAlgebra.
We derive properties of this normal ordering.
@[expose] public section
For a field specification 𝓕, normalOrderF is the linear map
FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕
defined by its action on the basis ofCrAnListF φs, taking ofCrAnListF φs to
normalOrderSign φs • ofCrAnListF (normalOrderList φs).
That is, normalOrderF normal-orders the field operators and multiplies by the sign of the
normal order.
The notation 𝓝ᶠ(a) is used for normalOrderF a for a an element of
FieldOpFreeAlgebra 𝓕.
def normalOrderF : FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕 :=
Basis.constr ofCrAnListFBasis ℂ fun φs =>
normalOrderSign φs • ofCrAnListF (normalOrderList φs)@[inherit_doc normalOrderF]
scoped[FieldSpecification.FieldOpFreeAlgebra] notation "𝓝ᶠ(" a ")" => normalOrderF aAll goals completed! 🐙
lemma ofCrAnListF_eq_normalOrderF (φs : List 𝓕.CrAnFieldOp) :
ofCrAnListF (normalOrderList φs) = normalOrderSign φs • 𝓝ᶠ(ofCrAnListF φs) := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (normalOrderList φs) = normalOrderSign φs • normalOrderF (ofCrAnListF φs)
rw [normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (normalOrderList φs) = normalOrderSign φs • normalOrderSign φs • ofCrAnListF (normalOrderList φs) All goals completed! 🐙 normalOrderList, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (List.insertionSort normalOrderRel φs) =
normalOrderSign φs • normalOrderSign φs • ofCrAnListF (List.insertionSort normalOrderRel φs) All goals completed! 🐙 smul_smul, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (List.insertionSort normalOrderRel φs) =
(normalOrderSign φs * normalOrderSign φs) • ofCrAnListF (List.insertionSort normalOrderRel φs) All goals completed! 🐙 normalOrderSign, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (List.insertionSort normalOrderRel φs) =
(Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs * Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs) •
ofCrAnListF (List.insertionSort normalOrderRel φs) All goals completed! 🐙
Wick.koszulSign_mul_self, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (List.insertionSort normalOrderRel φs) = 1 • ofCrAnListF (List.insertionSort normalOrderRel φs) All goals completed! 🐙 one_smul 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOp⊢ ofCrAnListF (List.insertionSort normalOrderRel φs) = ofCrAnListF (List.insertionSort normalOrderRel φs) All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_one : normalOrderF (𝓕 := 𝓕) 1 = 1 := by 𝓕:FieldSpecification⊢ normalOrderF 1 = 1
rw [← ofCrAnListF_nil, 𝓕:FieldSpecification⊢ normalOrderF (ofCrAnListF []) = ofCrAnListF [] All goals completed! 🐙 normalOrderF_ofCrAnListF, 𝓕:FieldSpecification⊢ normalOrderSign [] • ofCrAnListF (normalOrderList []) = ofCrAnListF [] All goals completed! 🐙 normalOrderSign_nil, 𝓕:FieldSpecification⊢ 1 • ofCrAnListF (normalOrderList []) = ofCrAnListF [] All goals completed! 🐙 normalOrderList_nil, 𝓕:FieldSpecification⊢ 1 • ofCrAnListF [] = ofCrAnListF [] All goals completed! 🐙
ofCrAnListF_nil, 𝓕:FieldSpecification⊢ 1 • 1 = 1 All goals completed! 🐙 one_smul 𝓕:FieldSpecification⊢ 1 = 1 All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_normalOrderF_mid (a b c : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * b * c) = 𝓝ᶠ(a * 𝓝ᶠ(b) * c) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)
let pc (c : 𝓕.FieldOpFreeAlgebra) (hc : c ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
Prop := 𝓝ᶠ(a * b * c) = 𝓝ᶠ(a * 𝓝ᶠ(b) * c) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)
change pc c (Basis.mem_span _ c) 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ pc c ⋯
apply Submodule.span_induction mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pc x ⋯zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ pc 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pc x hx → pc y hy → pc (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pc x hx → pc (a • x) ⋯
· mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pc x ⋯ intro x hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)x:𝓕.FieldOpFreeAlgebrahx:x ∈ Set.range ⇑ofCrAnListFBasis⊢ pc x ⋯
obtain ⟨φs, rfl⟩ := hx mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOp⊢ pc (ofCrAnListFBasis φs) ⋯
simp only [ofListBasis_eq_ofList, pc] mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOp⊢ normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)
let pb (b : 𝓕.FieldOpFreeAlgebra) (hb : b ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
Prop := 𝓝ᶠ(a * b * ofCrAnListF φs) = 𝓝ᶠ(a * 𝓝ᶠ(b) * ofCrAnListF φs) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)
change pb b (Basis.mem_span _ b) mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ pb b ⋯
apply Submodule.span_induction mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pb x ⋯mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ pb 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pb x hx → pb y hy → pb (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pb x hx → pb (a • x) ⋯
· mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pb x ⋯ intro x hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)x:𝓕.FieldOpFreeAlgebrahx:x ∈ Set.range ⇑ofCrAnListFBasis⊢ pb x ⋯
obtain ⟨φs', rfl⟩ := hx mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOp⊢ pb (ofCrAnListFBasis φs') ⋯
simp only [ofListBasis_eq_ofList, pb] mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOp⊢ normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) = normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)
let pa (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
Prop := 𝓝ᶠ(a * ofCrAnListF φs' * ofCrAnListF φs) =
𝓝ᶠ(a * 𝓝ᶠ(ofCrAnListF φs') * ofCrAnListF φs) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) = normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)
change pa a (Basis.mem_span _ a) mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ pa a ⋯
apply Submodule.span_induction mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pa x ⋯mem.mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ pa 0 ⋯add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pa x hx → pa y hy → pa (x + y) ⋯smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pa x hx → pa (a • x) ⋯
· mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (x : 𝓕.FieldOpFreeAlgebra) (h : x ∈ Set.range ⇑ofCrAnListFBasis), pa x ⋯ intro x hx mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)x:𝓕.FieldOpFreeAlgebrahx:x ∈ Set.range ⇑ofCrAnListFBasis⊢ pa x ⋯
obtain ⟨φs'', rfl⟩ := hx mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ pa (ofCrAnListFBasis φs'') ⋯
simp only [ofListBasis_eq_ofList, pa] mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs'' * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (ofCrAnListF φs'' * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)
rw [normalOrderF_ofCrAnListF mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs'' * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (ofCrAnListF φs'' * normalOrderSign φs' • ofCrAnListF (normalOrderList φs') * ofCrAnListF φs) mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs'' * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (ofCrAnListF φs'' * normalOrderSign φs' • ofCrAnListF (normalOrderList φs') * ofCrAnListF φs)] mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs'' * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (ofCrAnListF φs'' * normalOrderSign φs' • ofCrAnListF (normalOrderList φs') * ofCrAnListF φs)
simp only [← ofCrAnListF_append, Algebra.mul_smul_comm,
Algebra.smul_mul_assoc, map_smul] mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs'' ++ φs' ++ φs)) =
normalOrderSign φs' • normalOrderF (ofCrAnListF (φs'' ++ normalOrderList φs' ++ φs))
rw [normalOrderF_ofCrAnListF, mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
normalOrderSign φs' • normalOrderF (ofCrAnListF (φs'' ++ normalOrderList φs' ++ φs)) mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
(normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs)) normalOrderF_ofCrAnListF, mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
normalOrderSign φs' •
normalOrderSign (φs'' ++ normalOrderList φs' ++ φs) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs))mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
(normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs)) smul_smul mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
(normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs))mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
(normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs))]mem.mem.mem 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) • ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) =
(normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)) •
ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs))
congr 1 mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) = normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs)mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) = ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs))
· mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs'' ++ φs' ++ φs) = normalOrderSign φs' * normalOrderSign (φs'' ++ normalOrderList φs' ++ φs) simp only [normalOrderSign, normalOrderList] mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ φs' ++ φs) =
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs' *
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs)
rw [Wick.koszulSign_of_append_eq_insertionSort, mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs) *
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs' =
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs' *
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs) All goals completed! 🐙 mul_comm mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs' *
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs) =
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel φs' *
Wick.koszulSign 𝓕.crAnStatistics normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs) All goals completed! 🐙] All goals completed! 🐙
· mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (normalOrderList (φs'' ++ φs' ++ φs)) = ofCrAnListF (normalOrderList (φs'' ++ normalOrderList φs' ++ φs)) congr 1 mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ normalOrderList (φs'' ++ φs' ++ φs) = normalOrderList (φs'' ++ normalOrderList φs' ++ φs)
simp only [normalOrderList] mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ List.insertionSort normalOrderRel (φs'' ++ φs' ++ φs) =
List.insertionSort normalOrderRel (φs'' ++ List.insertionSort normalOrderRel φs' ++ φs)
rw [Physlib.List.insertionSort_append_insertionSort_append mem.mem.mem.e_a 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)φs'':List 𝓕.CrAnFieldOp⊢ List.insertionSort normalOrderRel (φs'' ++ φs' ++ φs) = List.insertionSort normalOrderRel (φs'' ++ φs' ++ φs) All goals completed! 🐙] All goals completed! 🐙
· mem.mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ pa 0 ⋯ simp [pa] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pa x hx → pa y hy → pa (x + y) ⋯ intro x y hx hy h1 h2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)hy:y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)h1:pa x hxh2:pa y hy⊢ pa (x + y) ⋯
simp_all [pa, add_mul] All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pa x hx → pa (a • x) ⋯ intro x hx h smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)φs':List 𝓕.CrAnFieldOppa:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop :=
fun a ha =>
normalOrderF (a * ofCrAnListF φs' * ofCrAnListF φs) =
normalOrderF (a * normalOrderF (ofCrAnListF φs') * ofCrAnListF φs)x:ℂhx:𝓕.FieldOpFreeAlgebrah:hx ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)⊢ pa hx h → pa (x • hx) ⋯
simp_all [pa] All goals completed! 🐙
· mem.zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ pb 0 ⋯ simp [pb] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pb x hx → pb y hy → pb (x + y) ⋯ intro x y hx hy h1 h2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)hy:y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)h1:pb x hxh2:pb y hy⊢ pb (x + y) ⋯
simp_all [pb, mul_add, add_mul] All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pb x hx → pb (a • x) ⋯ intro x hx h smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)φs:List 𝓕.CrAnFieldOppb:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun b hb => normalOrderF (a * b * ofCrAnListF φs) = normalOrderF (a * normalOrderF b * ofCrAnListF φs)x:ℂhx:𝓕.FieldOpFreeAlgebrah:hx ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)⊢ pb hx h → pb (x • hx) ⋯
simp_all [pb] All goals completed! 🐙
· zero 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ pc 0 ⋯ simp [pc] All goals completed! 🐙
· add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (x y : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis))
(hy : y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pc x hx → pc y hy → pc (x + y) ⋯ intro x y hx hy h1 h2 add 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)x:𝓕.FieldOpFreeAlgebray:𝓕.FieldOpFreeAlgebrahx:x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)hy:y ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)h1:pc x hxh2:pc y hy⊢ pc (x + y) ⋯
simp_all [pc, mul_add] All goals completed! 🐙
· smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)⊢ ∀ (a : ℂ) (x : 𝓕.FieldOpFreeAlgebra) (hx : x ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)), pc x hx → pc (a • x) ⋯ intro x hx h hp smul 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrac:𝓕.FieldOpFreeAlgebrapc:(c : 𝓕.FieldOpFreeAlgebra) → c ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis) → Prop := fun c hc => normalOrderF (a * b * c) = normalOrderF (a * normalOrderF b * c)x:ℂhx:𝓕.FieldOpFreeAlgebrah:hx ∈ Submodule.span ℂ (Set.range ⇑ofCrAnListFBasis)hp:pc hx h⊢ pc (x • hx) ⋯
simp_all [pc] All goals completed! 🐙lemma normalOrderF_normalOrderF_right (a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * b) = 𝓝ᶠ(a * 𝓝ᶠ(b)) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * b) = normalOrderF (a * normalOrderF b)
simpa using normalOrderF_normalOrderF_mid a b 1 All goals completed! 🐙lemma normalOrderF_normalOrderF_left (a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * b) = 𝓝ᶠ(𝓝ᶠ(a) * b) := by 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * b) = normalOrderF (normalOrderF a * b)
simpa using normalOrderF_normalOrderF_mid 1 a b All goals completed! 🐙Normal ordering with a creation operator on the left or annihilation on the right
lemma normalOrderF_ofCrAnListF_cons_create (φ : 𝓕.CrAnFieldOp)
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.create) (φs : List 𝓕.CrAnFieldOp) :
𝓝ᶠ(ofCrAnListF (φ :: φs)) = ofCrAnOpF φ * 𝓝ᶠ(ofCrAnListF φs) := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φ :: φs)) = ofCrAnOpF φ * normalOrderF (ofCrAnListF φs)
rw [normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign (φ :: φs) • ofCrAnListF (normalOrderList (φ :: φs)) = ofCrAnOpF φ * normalOrderF (ofCrAnListF φs) All goals completed! 🐙 normalOrderSign_cons_create φ hφ, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • ofCrAnListF (normalOrderList (φ :: φs)) = ofCrAnOpF φ * normalOrderF (ofCrAnListF φs) All goals completed! 🐙
normalOrderList_cons_create φ hφ φs, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • ofCrAnListF (φ :: normalOrderList φs) = ofCrAnOpF φ * normalOrderF (ofCrAnListF φs) All goals completed! 🐙 ofCrAnListF_cons, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnOpF φ * ofCrAnListF (normalOrderList φs)) = ofCrAnOpF φ * normalOrderF (ofCrAnListF φs) All goals completed! 🐙 normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnOpF φ * ofCrAnListF (normalOrderList φs)) =
ofCrAnOpF φ * normalOrderSign φs • ofCrAnListF (normalOrderList φs) All goals completed! 🐙
mul_smul_comm 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnOpF φ * ofCrAnListF (normalOrderList φs)) =
normalOrderSign φs • (ofCrAnOpF φ * ofCrAnListF (normalOrderList φs)) All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_create_mul (φ : 𝓕.CrAnFieldOp)
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.create) (a : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(ofCrAnOpF φ * a) = ofCrAnOpF φ * 𝓝ᶠ(a) := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (ofCrAnOpF φ * a) = ofCrAnOpF φ * normalOrderF a
change (normalOrderF ∘ₗ mulLinearMap (ofCrAnOpF φ)) a =
(mulLinearMap (ofCrAnOpF φ) ∘ₗ normalOrderF) a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebra⊢ (normalOrderF ∘ₗ mulLinearMap (ofCrAnOpF φ)) a = (mulLinearMap (ofCrAnOpF φ) ∘ₗ normalOrderF) a
refine LinearMap.congr_fun (ofCrAnListFBasis.ext fun l ↦ ?_) a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (normalOrderF ∘ₗ mulLinearMap (ofCrAnOpF φ)) (ofCrAnListFBasis l) =
(mulLinearMap (ofCrAnOpF φ) ∘ₗ normalOrderF) (ofCrAnListFBasis l)
simp only [mulLinearMap, LinearMap.coe_mk, AddHom.coe_mk, ofListBasis_eq_ofList,
LinearMap.coe_comp, Function.comp_apply] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnOpF φ * ofCrAnListF l) = ofCrAnOpF φ * normalOrderF (ofCrAnListF l)
rw [← ofCrAnListF_cons, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φ :: l)) = ofCrAnOpF φ * normalOrderF (ofCrAnListF l) All goals completed! 🐙 normalOrderF_ofCrAnListF_cons_create φ hφ 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.createa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ ofCrAnOpF φ * normalOrderF (ofCrAnListF l) = ofCrAnOpF φ * normalOrderF (ofCrAnListF l) All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_ofCrAnListF_append_annihilate (φ : 𝓕.CrAnFieldOp)
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.annihilate) (φs : List 𝓕.CrAnFieldOp) :
𝓝ᶠ(ofCrAnListF (φs ++ [φ])) = 𝓝ᶠ(ofCrAnListF φs) * ofCrAnOpF φ := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs ++ [φ])) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ
rw [normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ [φ]) • ofCrAnListF (normalOrderList (φs ++ [φ])) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ All goals completed! 🐙 normalOrderSign_append_annihilate φ hφ φs, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • ofCrAnListF (normalOrderList (φs ++ [φ])) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ All goals completed! 🐙
normalOrderList_append_annihilate φ hφ φs, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • ofCrAnListF (normalOrderList φs ++ [φ]) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ All goals completed! 🐙 ofCrAnListF_append, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnListF (normalOrderList φs) * ofCrAnListF [φ]) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnListF (normalOrderList φs) * ofCrAnOpF φ) = normalOrderF (ofCrAnListF φs) * ofCrAnOpF φ All goals completed! 🐙
normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnListF (normalOrderList φs) * ofCrAnOpF φ) =
normalOrderSign φs • ofCrAnListF (normalOrderList φs) * ofCrAnOpF φ All goals completed! 🐙 smul_mul_assoc 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOp⊢ normalOrderSign φs • (ofCrAnListF (normalOrderList φs) * ofCrAnOpF φ) =
normalOrderSign φs • (ofCrAnListF (normalOrderList φs) * ofCrAnOpF φ) All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_mul_annihilate (φ : 𝓕.CrAnFieldOp)
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.annihilate)
(a : FieldOpFreeAlgebra 𝓕) : 𝓝ᶠ(a * ofCrAnOpF φ) = 𝓝ᶠ(a) * ofCrAnOpF φ := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * ofCrAnOpF φ) = normalOrderF a * ofCrAnOpF φ
change (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φ)) a =
(mulLinearMap.flip (ofCrAnOpF φ) ∘ₗ normalOrderF) a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebra⊢ (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φ)) a = (mulLinearMap.flip (ofCrAnOpF φ) ∘ₗ normalOrderF) a
refine LinearMap.congr_fun (ofCrAnListFBasis.ext fun l ↦ ?_) a 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φ)) (ofCrAnListFBasis l) =
(mulLinearMap.flip (ofCrAnOpF φ) ∘ₗ normalOrderF) (ofCrAnListFBasis l)
simp only [mulLinearMap, ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply,
LinearMap.flip_apply, LinearMap.coe_mk, AddHom.coe_mk] 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF l * ofCrAnOpF φ) = normalOrderF (ofCrAnListF l) * ofCrAnOpF φ
rw [← ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF l * ofCrAnListF [φ]) = normalOrderF (ofCrAnListF l) * ofCrAnListF [φ] All goals completed! 🐙 ← ofCrAnListF_append, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (l ++ [φ])) = normalOrderF (ofCrAnListF l) * ofCrAnListF [φ] All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (l ++ [φ])) = normalOrderF (ofCrAnListF l) * ofCrAnOpF φ All goals completed! 🐙
normalOrderF_ofCrAnListF_append_annihilate φ hφ 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOphφ:𝓕|>ᶜφ = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF l) * ofCrAnOpF φ = normalOrderF (ofCrAnListF l) * ofCrAnOpF φ All goals completed! 🐙] All goals completed! 🐙lemma normalOrderF_crPartF_mul (φ : 𝓕.FieldOp) (a : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(crPartF φ * a) =
crPartF φ * 𝓝ᶠ(a) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (crPartF φ * a) = crPartF φ * normalOrderF a
match φ with
| .inAsymp _ | .position _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (crPartF (FieldOp.position a✝) * a) = crPartF (FieldOp.position a✝) * normalOrderF a𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (crPartF (FieldOp.inAsymp a✝) * a) = crPartF (FieldOp.inAsymp a✝) * normalOrderF a exact normalOrderF_create_mul _ rfl _ All goals completed! 🐙
| .outAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (crPartF (FieldOp.outAsymp a✝) * a) = crPartF (FieldOp.outAsymp a✝) * normalOrderF a simp All goals completed! 🐙lemma normalOrderF_mul_anPartF (φ : 𝓕.FieldOp) (a : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(a * anPartF φ) =
𝓝ᶠ(a) * anPartF φ := by 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * anPartF φ) = normalOrderF a * anPartF φ
match φ with
| .inAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * anPartF (FieldOp.inAsymp a✝)) = normalOrderF a * anPartF (FieldOp.inAsymp a✝) simp All goals completed! 🐙
| .position _ | .outAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * anPartF (FieldOp.outAsymp a✝)) = normalOrderF a * anPartF (FieldOp.outAsymp a✝)𝓕:FieldSpecificationφ:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebraa✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * anPartF (FieldOp.position a✝)) = normalOrderF a * anPartF (FieldOp.position a✝) exact normalOrderF_mul_annihilate _ rfl _ All goals completed! 🐙Normal ordering for an adjacent creation and annihilation state
The main result of this section is normalOrderF_superCommuteF_annihilate_create.
lemma normalOrderF_swap_create_annihilate_ofCrAnListF_ofCrAnListF (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(φs φs' : List 𝓕.CrAnFieldOp) :
𝓝ᶠ(ofCrAnListF φs' * ofCrAnOpF φc * ofCrAnOpF φa * ofCrAnListF φs) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
𝓝ᶠ(ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs' * ofCrAnOpF φc * ofCrAnOpF φa * ofCrAnListF φs) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)
rw [mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs' * ofCrAnOpF φc * (ofCrAnOpF φa * ofCrAnListF φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φc * (ofCrAnOpF φa * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ← ofCrAnListF_cons, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φc * ofCrAnListF (φa :: φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ← ofCrAnListF_cons, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs' * ofCrAnListF (φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ← ofCrAnListF_append 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)
rw [normalOrderF_ofCrAnListF, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs' ++ φc :: φa :: φs) • ofCrAnListF (normalOrderList (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) * normalOrderSign (φs' ++ φa :: φc :: φs)) •
ofCrAnListF (normalOrderList (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) normalOrderSign_swap_create_annihilate φc φa hφc hφa 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) * normalOrderSign (φs' ++ φa :: φc :: φs)) •
ofCrAnListF (normalOrderList (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) * normalOrderSign (φs' ++ φa :: φc :: φs)) •
ofCrAnListF (normalOrderList (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) * normalOrderSign (φs' ++ φa :: φc :: φs)) •
ofCrAnListF (normalOrderList (φs' ++ φc :: φa :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)
rw [normalOrderList_swap_create_annihilate φc φa hφc hφa, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) * normalOrderSign (φs' ++ φa :: φc :: φs)) •
ofCrAnListF (normalOrderList (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (ofCrAnListF (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ← smul_smul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderSign (φs' ++ φa :: φc :: φs) • ofCrAnListF (normalOrderList (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (ofCrAnListF (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ← normalOrderF_ofCrAnListF 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (ofCrAnListF (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (ofCrAnListF (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (ofCrAnListF (φs' ++ φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)
rw [ofCrAnListF_append, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnListF (φa :: φc :: φs)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * (ofCrAnOpF φc * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ofCrAnListF_cons, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * ofCrAnListF (φc :: φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * (ofCrAnOpF φc * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) ofCrAnListF_cons 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * (ofCrAnOpF φc * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * (ofCrAnOpF φc * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * (ofCrAnOpF φa * (ofCrAnOpF φc * ofCrAnListF φs))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs' * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF φs)
noncomm_ring All goals completed! 🐙
lemma normalOrderF_swap_create_annihilate_ofCrAnListF (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(φs : List 𝓕.CrAnFieldOp) (a : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa * a) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
𝓝ᶠ(ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * a) := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa * a) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * a)
change (normalOrderF ∘ₗ mulLinearMap (ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa)) a =
(smulLinearMap _ ∘ₗ normalOrderF ∘ₗ
mulLinearMap (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc)) a 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebra⊢ (normalOrderF ∘ₗ mulLinearMap (ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa)) a =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)) ∘ₗ
normalOrderF ∘ₗ mulLinearMap (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc))
a
refine LinearMap.congr_fun (ofCrAnListFBasis.ext fun l ↦ ?_) a 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (normalOrderF ∘ₗ mulLinearMap (ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa)) (ofCrAnListFBasis l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)) ∘ₗ
normalOrderF ∘ₗ mulLinearMap (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc))
(ofCrAnListFBasis l)
simp only [mulLinearMap, LinearMap.coe_mk, AddHom.coe_mk, ofListBasis_eq_ofList,
LinearMap.coe_comp, Function.comp_apply] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * ofCrAnOpF φc * ofCrAnOpF φa * ofCrAnListF l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)))
(normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l))
rw [normalOrderF_swap_create_annihilate_ofCrAnListF_ofCrAnListF φc φa hφc hφa 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)))
(normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l)) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)))
(normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpa:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)))
(normalOrderF (ofCrAnListF φs * ofCrAnOpF φa * ofCrAnOpF φc * ofCrAnListF l))
rfl All goals completed! 🐙
lemma normalOrderF_swap_create_annihilate (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * ofCrAnOpF φc * ofCrAnOpF φa * b) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
𝓝ᶠ(a * ofCrAnOpF φa * ofCrAnOpF φc * b) := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * ofCrAnOpF φc * ofCrAnOpF φa * b) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b)
rw [mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * ofCrAnOpF φc * (ofCrAnOpF φa * b)) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b))) mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b))) mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * (ofCrAnOpF φc * b)) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b))) mul_assoc 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b)))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * (ofCrAnOpF φa * b))) =
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * (ofCrAnOpF φa * (ofCrAnOpF φc * b)))
change (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φc * (ofCrAnOpF φa * b))) a =
(smulLinearMap (𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa)) ∘ₗ
normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φa * (ofCrAnOpF φc * b))) a 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φc * (ofCrAnOpF φa * b))) a =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)) ∘ₗ
normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φa * (ofCrAnOpF φc * b)))
a
refine LinearMap.congr_fun (ofCrAnListFBasis.ext fun l ↦ ?_) _ 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φc * (ofCrAnOpF φa * b))) (ofCrAnListFBasis l) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)) ∘ₗ
normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnOpF φa * (ofCrAnOpF φc * b)))
(ofCrAnListFBasis l)
simp only [mulLinearMap, ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply,
LinearMap.flip_apply, LinearMap.coe_mk, AddHom.coe_mk, ← mul_assoc,
normalOrderF_swap_create_annihilate_ofCrAnListF φc φa hφc hφa] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebral:List 𝓕.CrAnFieldOp⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) •
normalOrderF (ofCrAnListF l * ofCrAnOpF φa * ofCrAnOpF φc * b) =
(smulLinearMap ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa)))
(normalOrderF (ofCrAnListF l * ofCrAnOpF φa * ofCrAnOpF φc * b))
rfl All goals completed! 🐙
lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * [ofCrAnOpF φc, ofCrAnOpF φa]ₛF * b) = 0 := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φa) * b) = 0
simp only [superCommuteF_ofCrAnOpF_ofCrAnOpF, Algebra.smul_mul_assoc] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
(a *
(ofCrAnOpF φc * ofCrAnOpF φa -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • (ofCrAnOpF φa * ofCrAnOpF φc)) *
b) =
0
rw [mul_sub, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
((a * (ofCrAnOpF φc * ofCrAnOpF φa) -
a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • (ofCrAnOpF φa * ofCrAnOpF φc)) *
b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 sub_mul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
(a * (ofCrAnOpF φc * ofCrAnOpF φa) * b -
a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • (ofCrAnOpF φa * ofCrAnOpF φc) * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 map_sub, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * ofCrAnOpF φa) * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • (ofCrAnOpF φa * ofCrAnOpF φc) * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 ← smul_mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (ofCrAnOpF φc * ofCrAnOpF φa) * b) -
normalOrderF (a * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc) * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 ← mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * ofCrAnOpF φc * ofCrAnOpF φa * b) -
normalOrderF (a * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc) * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 ← mul_assoc, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * ofCrAnOpF φc * ofCrAnOpF φa * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0
normalOrderF_swap_create_annihilate φc φa hφc hφa 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • normalOrderF (a * ofCrAnOpF φa * ofCrAnOpF φc * b) -
normalOrderF (a * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φa) • ofCrAnOpF φa * ofCrAnOpF φc * b) =
0
simp All goals completed! 🐙
lemma normalOrderF_superCommuteF_annihilate_create (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φc]ₛF * b) = 0 := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φc) * b) = 0
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
(a * -(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φc) • (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φa) *
b) =
0 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
(a * -(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φc) • (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φa) *
b) =
0] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφa:𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatea:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF
(a * -(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φc) • (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φa) *
b) =
0
simp [normalOrderF_superCommuteF_create_annihilate φc φa hφc hφa] All goals completed! 🐙lemma normalOrderF_swap_crPartF_anPartF (φ φ' : 𝓕.FieldOp) (a b : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(a * (crPartF φ) * (anPartF φ') * b) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
𝓝ᶠ(a * (anPartF φ') * (crPartF φ) * b) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * crPartF φ * anPartF φ' * b) =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • normalOrderF (a * anPartF φ' * crPartF φ * b)
match φ, φ' with
| _, .inAsymp φ' => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ'✝:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrax✝:𝓕.FieldOpφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * crPartF x✝ * anPartF (FieldOp.inAsymp φ') * b) =
(exchangeSign (𝓕|>ₛx✝)) (𝓕|>ₛFieldOp.inAsymp φ') • normalOrderF (a * anPartF (FieldOp.inAsymp φ') * crPartF x✝ * b) simp All goals completed! 🐙
| .outAsymp φ, _ => 𝓕:FieldSpecificationφ✝:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ normalOrderF (a * crPartF (FieldOp.outAsymp φ) * anPartF x✝ * b) =
(exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛx✝) • normalOrderF (a * anPartF x✝ * crPartF (FieldOp.outAsymp φ) * b) simp All goals completed! 🐙
| .inAsymp _, .position _ | .inAsymp _, .outAsymp _
| .position _, .position _ | .position _, .outAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * crPartF (FieldOp.position a✝¹) * anPartF (FieldOp.outAsymp a✝) * b) =
(exchangeSign (𝓕|>ₛFieldOp.position a✝¹)) (𝓕|>ₛFieldOp.outAsymp a✝) •
normalOrderF (a * anPartF (FieldOp.outAsymp a✝) * crPartF (FieldOp.position a✝¹) * b)𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * crPartF (FieldOp.position a✝¹) * anPartF (FieldOp.position a✝) * b) =
(exchangeSign (𝓕|>ₛFieldOp.position a✝¹)) (𝓕|>ₛFieldOp.position a✝) •
normalOrderF (a * anPartF (FieldOp.position a✝) * crPartF (FieldOp.position a✝¹) * b)𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * crPartF (FieldOp.inAsymp a✝¹) * anPartF (FieldOp.outAsymp a✝) * b) =
(exchangeSign (𝓕|>ₛFieldOp.inAsymp a✝¹)) (𝓕|>ₛFieldOp.outAsymp a✝) •
normalOrderF (a * anPartF (FieldOp.outAsymp a✝) * crPartF (FieldOp.inAsymp a✝¹) * b)𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * crPartF (FieldOp.inAsymp a✝¹) * anPartF (FieldOp.position a✝) * b) =
(exchangeSign (𝓕|>ₛFieldOp.inAsymp a✝¹)) (𝓕|>ₛFieldOp.position a✝) •
normalOrderF (a * anPartF (FieldOp.position a✝) * crPartF (FieldOp.inAsymp a✝¹) * b)
exact normalOrderF_swap_create_annihilate _ _ rfl rfl .. All goals completed! 🐙Normal ordering for an anPartF and crPartF
Using the results from above.
lemma normalOrderF_swap_anPartF_crPartF (φ φ' : 𝓕.FieldOp) (a b : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(a * (anPartF φ) * (crPartF φ') * b) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • 𝓝ᶠ(a * (crPartF φ') *
(anPartF φ) * b) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * anPartF φ * crPartF φ' * b) =
(exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • normalOrderF (a * crPartF φ' * anPartF φ * b)
simp [normalOrderF_swap_crPartF_anPartF, smul_smul] All goals completed! 🐙lemma normalOrderF_superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) (a b : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(a * superCommuteF
(crPartF φ) (anPartF φ') * b) = 0 := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (superCommuteF (crPartF φ)) (anPartF φ') * b) = 0
match φ, φ' with
| _, .inAsymp φ' => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ'✝:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrax✝:𝓕.FieldOpφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (crPartF x✝)) (anPartF (FieldOp.inAsymp φ')) * b) = 0 simp All goals completed! 🐙
| .outAsymp φ', _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ'✝:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ normalOrderF (a * (superCommuteF (crPartF (FieldOp.outAsymp φ'))) (anPartF x✝) * b) = 0 simp All goals completed! 🐙
| .inAsymp _, .position _ | .inAsymp _, .outAsymp _
| .position _, .position _ | .position _, .outAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (crPartF (FieldOp.position a✝¹))) (anPartF (FieldOp.outAsymp a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * (superCommuteF (crPartF (FieldOp.position a✝¹))) (anPartF (FieldOp.position a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (crPartF (FieldOp.inAsymp a✝¹))) (anPartF (FieldOp.outAsymp a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * (superCommuteF (crPartF (FieldOp.inAsymp a✝¹))) (anPartF (FieldOp.position a✝)) * b) = 0
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl .. All goals completed! 🐙lemma normalOrderF_superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) (a b : FieldOpFreeAlgebra 𝓕) :
𝓝ᶠ(a * superCommuteF
(anPartF φ) (crPartF φ') * b) = 0 := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebra⊢ normalOrderF (a * (superCommuteF (anPartF φ)) (crPartF φ') * b) = 0
match φ, φ' with
| .inAsymp φ', _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ'✝:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumx✝:𝓕.FieldOp⊢ normalOrderF (a * (superCommuteF (anPartF (FieldOp.inAsymp φ'))) (crPartF x✝) * b) = 0 simp All goals completed! 🐙
| _, .outAsymp φ' => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ'✝:𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebrax✝:𝓕.FieldOpφ':((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (anPartF x✝)) (crPartF (FieldOp.outAsymp φ')) * b) = 0 simp All goals completed! 🐙
| .position _, .position _ | .position _, .inAsymp _
| .outAsymp _, .position _ | .outAsymp _, .inAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (anPartF (FieldOp.outAsymp a✝¹))) (crPartF (FieldOp.inAsymp a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentuma✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * (superCommuteF (anPartF (FieldOp.outAsymp a✝¹))) (crPartF (FieldOp.position a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ normalOrderF (a * (superCommuteF (anPartF (FieldOp.position a✝¹))) (crPartF (FieldOp.inAsymp a✝)) * b) = 0𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOpa:𝓕.FieldOpFreeAlgebrab:𝓕.FieldOpFreeAlgebraa✝¹:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimea✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ normalOrderF (a * (superCommuteF (anPartF (FieldOp.position a✝¹))) (crPartF (FieldOp.position a✝)) * b) = 0
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl .. All goals completed! 🐙The normal ordering of a product of two states
@[simp]
lemma normalOrderF_crPartF_mul_crPartF (φ φ' : 𝓕.FieldOp) :
𝓝ᶠ(crPartF φ * crPartF φ') =
crPartF φ * crPartF φ' := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (crPartF φ * crPartF φ') = crPartF φ * crPartF φ'
rw [normalOrderF_crPartF_mul, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * normalOrderF (crPartF φ') = crPartF φ * crPartF φ' All goals completed! 🐙 ← mul_one (crPartF φ'), 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * normalOrderF (crPartF φ' * 1) = crPartF φ * (crPartF φ' * 1) All goals completed! 🐙 normalOrderF_crPartF_mul, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * (crPartF φ' * normalOrderF 1) = crPartF φ * (crPartF φ' * 1) All goals completed! 🐙
normalOrderF_one 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * (crPartF φ' * 1) = crPartF φ * (crPartF φ' * 1) All goals completed! 🐙] All goals completed! 🐙
@[simp]
lemma normalOrderF_anPartF_mul_anPartF (φ φ' : 𝓕.FieldOp) :
𝓝ᶠ(anPartF φ * anPartF φ') =
anPartF φ * anPartF φ' := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (anPartF φ * anPartF φ') = anPartF φ * anPartF φ'
rw [normalOrderF_mul_anPartF, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (anPartF φ) * anPartF φ' = anPartF φ * anPartF φ' All goals completed! 🐙 ← one_mul (anPartF φ), 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (1 * anPartF φ) * anPartF φ' = 1 * anPartF φ * anPartF φ' All goals completed! 🐙 normalOrderF_mul_anPartF, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF 1 * anPartF φ * anPartF φ' = 1 * anPartF φ * anPartF φ' All goals completed! 🐙
normalOrderF_one 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ 1 * anPartF φ * anPartF φ' = 1 * anPartF φ * anPartF φ' All goals completed! 🐙] All goals completed! 🐙
@[simp]
lemma normalOrderF_crPartF_mul_anPartF (φ φ' : 𝓕.FieldOp) :
𝓝ᶠ(crPartF φ * anPartF φ') =
crPartF φ * anPartF φ' := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (crPartF φ * anPartF φ') = crPartF φ * anPartF φ'
rw [normalOrderF_crPartF_mul, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * normalOrderF (anPartF φ') = crPartF φ * anPartF φ' All goals completed! 🐙 ← one_mul (anPartF φ'), 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * normalOrderF (1 * anPartF φ') = crPartF φ * (1 * anPartF φ') All goals completed! 🐙 normalOrderF_mul_anPartF, 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * (normalOrderF 1 * anPartF φ') = crPartF φ * (1 * anPartF φ') All goals completed! 🐙
normalOrderF_one 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * (1 * anPartF φ') = crPartF φ * (1 * anPartF φ') All goals completed! 🐙] All goals completed! 🐙@[simp]
lemma normalOrderF_anPartF_mul_crPartF (φ φ' : 𝓕.FieldOp) :
𝓝ᶠ(anPartF φ * crPartF φ') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
(crPartF φ' * anPartF φ) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (anPartF φ * crPartF φ') = (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • (crPartF φ' * anPartF φ)
simpa using normalOrderF_swap_anPartF_crPartF φ φ' 1 1 All goals completed! 🐙lemma normalOrderF_ofFieldOpF_mul_ofFieldOpF (φ φ' : 𝓕.FieldOp) :
𝓝ᶠ(ofFieldOpF φ * ofFieldOpF φ') =
crPartF φ * crPartF φ' +
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
(crPartF φ' * anPartF φ) +
crPartF φ * anPartF φ' +
anPartF φ * anPartF φ' := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ normalOrderF (ofFieldOpF φ * ofFieldOpF φ') =
crPartF φ * crPartF φ' + (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • (crPartF φ' * anPartF φ) + crPartF φ * anPartF φ' +
anPartF φ * anPartF φ'
simp only [ofFieldOpF_eq_crPartF_add_anPartF, mul_add, add_mul, map_add,
normalOrderF_crPartF_mul_crPartF, normalOrderF_anPartF_mul_crPartF,
normalOrderF_crPartF_mul_anPartF, normalOrderF_anPartF_mul_anPartF] 𝓕:FieldSpecificationφ:𝓕.FieldOpφ':𝓕.FieldOp⊢ crPartF φ * crPartF φ' + (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • (crPartF φ' * anPartF φ) +
(crPartF φ * anPartF φ' + anPartF φ * anPartF φ') =
crPartF φ * crPartF φ' + (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛφ') • (crPartF φ' * anPartF φ) + crPartF φ * anPartF φ' +
anPartF φ * anPartF φ'
abel All goals completed! 🐙Normal order with super commutators
TODO "Split the following two lemmas up into smaller parts."
lemma normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF
(φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create)
(hφc' : 𝓕 |>ᶜ φc' = CreateAnnihilate.create) (φs φs' : List 𝓕.CrAnFieldOp) :
(𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φc, ofCrAnOpF φc']ₛF * ofCrAnListF φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * [ofCrAnOpF φc, ofCrAnOpF φc']ₛF *
ofCrAnListF (createFilter φs') * ofCrAnListF (annihilateFilter (φs ++ φs'))) := by 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') * ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * (superCommuteF (ofCrAnOpF φc)) (ofCrAnOpF φc') * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
(ofCrAnListF φs *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) mul_sub, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
((ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') -
ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc)) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) sub_mul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
(ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs' -
ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) map_sub 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
conv_lhs =>
lhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs'); rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * (ofCrAnOpF φc * ofCrAnOpF φc') * ofCrAnListF φs'
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append,
← ofCrAnListF_append, ← ofCrAnListF_append] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (φs ++ ([φc] ++ [φc']) ++ φs')
conv_lhs =>
lhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF (φs ++ ([φc] ++ [φc']) ++ φs'))
rw [normalOrderF_ofCrAnListF, normalOrderList_eq_createFilter_append_annihilateFilter] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc] ++ [φc']) ++ φs') •
ofCrAnListF (createFilter (φs ++ ([φc] ++ [φc']) ++ φs') ++ annihilateFilter (φs ++ ([φc] ++ [φc']) ++ φs'))
rw [createFilter_append, createFilter_append, createFilter_append,
createFilter_singleton_create _ hφc, createFilter_singleton_create _ hφc'] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc] ++ [φc']) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ ([φc] ++ [φc']) ++ φs'))
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
annihilateFilter_singleton_create _ hφc, annihilateFilter_singleton_create _ hφc'] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc] ++ [φc']) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++
(annihilateFilter φs ++ ([] ++ []) ++ annihilateFilter φs'))
enter [2, 1, 2] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter φs ++ ([] ++ []) ++ annihilateFilter φs'
simp only [List.singleton_append, List.append_assoc, List.cons_append, List.append_nil,
Algebra.smul_mul_assoc, Algebra.mul_smul_comm, map_smul] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter φs ++ annihilateFilter φs'
rw [← annihilateFilter_append] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter (φs ++ φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs'); rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF φs'
rw [smul_mul_assoc, Algebra.mul_smul_comm, smul_mul_assoc] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
(ofCrAnListF φs * (ofCrAnOpF φc' * ofCrAnOpF φc) * ofCrAnListF φs')
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * (ofCrAnOpF φc' * ofCrAnOpF φc) * ofCrAnListF φs'
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append,
← ofCrAnListF_append, ← ofCrAnListF_append] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (φs ++ ([φc'] ++ [φc]) ++ φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF ((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF (φs ++ ([φc'] ++ [φc]) ++ φs'))
rw [map_smul] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • normalOrderF (ofCrAnListF (φs ++ ([φc'] ++ [φc]) ++ φs'))
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF (φs ++ ([φc'] ++ [φc]) ++ φs'))
rw [normalOrderF_ofCrAnListF, normalOrderList_eq_createFilter_append_annihilateFilter] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs') •
ofCrAnListF (createFilter (φs ++ ([φc'] ++ [φc]) ++ φs') ++ annihilateFilter (φs ++ ([φc'] ++ [φc]) ++ φs'))
rw [createFilter_append, createFilter_append, createFilter_append,
createFilter_singleton_create _ hφc, createFilter_singleton_create _ hφc'] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ ([φc'] ++ [φc]) ++ φs'))
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
annihilateFilter_singleton_create _ hφc, annihilateFilter_singleton_create _ hφc'] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++
(annihilateFilter φs ++ ([] ++ []) ++ annihilateFilter φs'))
enter [2, 1, 2] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter φs ++ ([] ++ []) ++ annihilateFilter φs'
simp only [List.singleton_append, List.append_assoc, List.cons_append,
List.append_nil, Algebra.smul_mul_assoc] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter φs ++ annihilateFilter φs'
rw [← annihilateFilter_append] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| annihilateFilter (φs ++ φs')
conv_lhs =>
lhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc] ++ [φc']) ++ φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')); lhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc] ++ [φc']) ++ φs')
simp 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ φc :: φc' :: φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')); rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')); lhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φc'] ++ [φc]) ++ φs')
simp 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ φc' :: φc :: φs')
rw [normalOrderSign_swap_create_create φc φc' hφc hφc' 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
rw [smul_smul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
((exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') * normalOrderSign (φs ++ φc' :: φc :: φs')) •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
normalOrderSign (φs ++ φc' :: φc :: φs') •
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) mul_comm, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
(normalOrderSign (φs ++ φc' :: φc :: φs') * (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc')) •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
normalOrderSign (φs ++ φc' :: φc :: φs') •
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ← smul_smul 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
normalOrderSign (φs ++ φc' :: φc :: φs') •
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
normalOrderSign (φs ++ φc' :: φc :: φs') •
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
normalOrderSign (φs ++ φc' :: φc :: φs') •
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
rw [← smul_sub, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ofCrAnListF_append, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs ++ ([φc] ++ [φc']) ++ createFilter φs') * ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ofCrAnListF_append, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs ++ ([φc] ++ [φc'])) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ofCrAnListF_append 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
conv_lhs =>
rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs')); rhs 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
ofCrAnListF (createFilter φs ++ ([φc'] ++ [φc]) ++ createFilter φs' ++ annihilateFilter (φs ++ φs'))
rw [ofCrAnListF_append, ofCrAnListF_append, ofCrAnListF_append] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') •
(ofCrAnListF (createFilter φs) * ofCrAnListF ([φc'] ++ [φc]) * ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
rw [← smul_mul_assoc, ← smul_mul_assoc, ← Algebra.mul_smul_comm] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (createFilter φs) *
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc]) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))
rw [← sub_mul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
((ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) * ofCrAnListF (createFilter φs') -
ofCrAnListF (createFilter φs) *
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc]) *
ofCrAnListF (createFilter φs')) *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ← sub_mul, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
((ofCrAnListF (createFilter φs) * ofCrAnListF ([φc] ++ [φc']) -
ofCrAnListF (createFilter φs) *
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ← mul_sub, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnListF ([φc] ++ [φc']) -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ofCrAnListF_append, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnListF [φc] * ofCrAnListF [φc'] -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) ofCrAnListF_singleton, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnListF [φc'] -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
ofCrAnListF_singleton 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))] 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnListF ([φc'] ++ [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs')))
rw [ofCrAnListF_append, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • (ofCrAnListF [φc'] * ofCrAnListF [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • (ofCrAnOpF φc' * ofCrAnListF [φc])) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • (ofCrAnOpF φc' * ofCrAnOpF φc)) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • ofCrAnOpF φc' * ofCrAnOpF φc) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) All goals completed! 🐙 smul_mul_assoc 𝓕:FieldSpecificationφc:𝓕.CrAnFieldOpφc':𝓕.CrAnFieldOphφc:𝓕|>ᶜφc = CreateAnnihilate.createhφc':𝓕|>ᶜφc' = CreateAnnihilate.createφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • (ofCrAnOpF φc' * ofCrAnOpF φc)) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) =
normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) *
(ofCrAnOpF φc * ofCrAnOpF φc' -
(exchangeSign (𝓕.crAnStatistics φc)) (𝓕.crAnStatistics φc') • (ofCrAnOpF φc' * ofCrAnOpF φc)) *
ofCrAnListF (createFilter φs') *
ofCrAnListF (annihilateFilter (φs ++ φs'))) All goals completed! 🐙] All goals completed! 🐙
lemma normalOrderF_superCommuteF_ofCrAnListF_annihilate_annihilate_ofCrAnListF
(φa φa' : 𝓕.CrAnFieldOp)
(hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(hφa' : 𝓕 |>ᶜ φa' = CreateAnnihilate.annihilate)
(φs φs' : List 𝓕.CrAnFieldOp) :
𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs'))
* ofCrAnListF (annihilateFilter φs) * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF
* ofCrAnListF (annihilateFilter φs')) := by 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') * ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(superCommuteF (ofCrAnOpF φa)) (ofCrAnOpF φa') *
ofCrAnListF (annihilateFilter φs'))
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
(ofCrAnListF φs *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) mul_sub, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
((ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') -
ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa)) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) sub_mul, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF
(ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs' -
ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) map_sub 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs') -
normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
conv_lhs =>
lhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs'); rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * (ofCrAnOpF φa * ofCrAnOpF φa') * ofCrAnListF φs'
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append,
← ofCrAnListF_append, ← ofCrAnListF_append] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (φs ++ ([φa] ++ [φa']) ++ φs')
conv_lhs =>
lhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF (φs ++ ([φa] ++ [φa']) ++ φs'))
rw [normalOrderF_ofCrAnListF, normalOrderList_eq_createFilter_append_annihilateFilter] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa] ++ [φa']) ++ φs') •
ofCrAnListF (createFilter (φs ++ ([φa] ++ [φa']) ++ φs') ++ annihilateFilter (φs ++ ([φa] ++ [φa']) ++ φs'))
rw [createFilter_append, createFilter_append, createFilter_append,
createFilter_singleton_annihilate _ hφa, createFilter_singleton_annihilate _ hφa'] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa] ++ [φa']) ++ φs') •
ofCrAnListF (createFilter φs ++ ([] ++ []) ++ createFilter φs' ++ annihilateFilter (φs ++ ([φa] ++ [φa']) ++ φs'))
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
annihilateFilter_singleton_annihilate _ hφa, annihilateFilter_singleton_annihilate _ hφa'] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa] ++ [φa']) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([] ++ []) ++ createFilter φs' ++
(annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs'))
enter [2, 1, 1] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter φs ++ ([] ++ []) ++ createFilter φs'
simp only [List.singleton_append, List.append_assoc, List.cons_append, List.append_nil,
Algebra.smul_mul_assoc, Algebra.mul_smul_comm, map_smul] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter φs ++ createFilter φs'
rw [← createFilter_append] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter (φs ++ φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF
(ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs'); rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs'
rw [smul_mul_assoc] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF φs'
rw [Algebra.mul_smul_comm, smul_mul_assoc] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
(ofCrAnListF φs * (ofCrAnOpF φa' * ofCrAnOpF φa) * ofCrAnListF φs')
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF φs * (ofCrAnOpF φa' * ofCrAnOpF φa) * ofCrAnListF φs'
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append,
← ofCrAnListF_append, ← ofCrAnListF_append] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (φs ++ ([φa'] ++ [φa]) ++ φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF ((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF (φs ++ ([φa'] ++ [φa]) ++ φs'))
rw [map_smul] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • normalOrderF (ofCrAnListF (φs ++ ([φa'] ++ [φa]) ++ φs'))
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderF (ofCrAnListF (φs ++ ([φa'] ++ [φa]) ++ φs'))
rw [normalOrderF_ofCrAnListF, normalOrderList_eq_createFilter_append_annihilateFilter] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs') •
ofCrAnListF (createFilter (φs ++ ([φa'] ++ [φa]) ++ φs') ++ annihilateFilter (φs ++ ([φa'] ++ [φa]) ++ φs'))
rw [createFilter_append, createFilter_append, createFilter_append,
createFilter_singleton_annihilate _ hφa, createFilter_singleton_annihilate _ hφa'] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs') •
ofCrAnListF (createFilter φs ++ ([] ++ []) ++ createFilter φs' ++ annihilateFilter (φs ++ ([φa'] ++ [φa]) ++ φs'))
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
annihilateFilter_singleton_annihilate _ hφa, annihilateFilter_singleton_annihilate _ hφa'] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs') •
ofCrAnListF
(createFilter φs ++ ([] ++ []) ++ createFilter φs' ++
(annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))
enter [2, 1, 1] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter φs ++ ([] ++ []) ++ createFilter φs'
simp only [List.singleton_append, List.append_assoc, List.cons_append,
List.append_nil, Algebra.smul_mul_assoc] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter φs ++ createFilter φs'
rw [← createFilter_append] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| createFilter (φs ++ φs')
conv_lhs =>
lhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa] ++ [φa']) ++ φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')); lhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa] ++ [φa']) ++ φs')
simp 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ φa :: φa' :: φs')
conv_lhs =>
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')); rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')); lhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ ([φa'] ++ [φa]) ++ φs')
simp 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| normalOrderSign (φs ++ φa' :: φa :: φs')
rw [normalOrderSign_swap_annihilate_annihilate φa φa' hφa hφa' 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
rw [smul_smul, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
((exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') * normalOrderSign (φs ++ φa' :: φa :: φs')) •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
normalOrderSign (φs ++ φa' :: φa :: φs') •
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) mul_comm, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
(normalOrderSign (φs ++ φa' :: φa :: φs') * (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa')) •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
normalOrderSign (φs ++ φa' :: φa :: φs') •
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ← smul_smul 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
normalOrderSign (φs ++ φa' :: φa :: φs') •
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
normalOrderSign (φs ++ φa' :: φa :: φs') •
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
normalOrderSign (φs ++ φa' :: φa :: φs') •
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
rw [← smul_sub, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ofCrAnListF_append, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
ofCrAnListF (annihilateFilter φs ++ ([φa] ++ [φa']) ++ annihilateFilter φs') -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ofCrAnListF_append, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs ++ ([φa] ++ [φa'])) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ofCrAnListF_append 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
conv_lhs =>
rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs')) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs')); rhs 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
ofCrAnListF (createFilter (φs ++ φs') ++ (annihilateFilter φs ++ ([φa'] ++ [φa]) ++ annihilateFilter φs'))
rw [ofCrAnListF_append, ofCrAnListF_append, ofCrAnListF_append] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| (exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa'] ++ [φa]) * ofCrAnListF (annihilateFilter φs')))
rw [← Algebra.mul_smul_comm, ← smul_mul_assoc, ← Algebra.mul_smul_comm] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa]) *
ofCrAnListF (annihilateFilter φs'))
rw [← mul_sub, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) * ofCrAnListF (annihilateFilter φs') -
ofCrAnListF (annihilateFilter φs) *
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa]) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ← sub_mul, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
((ofCrAnListF (annihilateFilter φs) * ofCrAnListF ([φa] ++ [φa']) -
ofCrAnListF (annihilateFilter φs) *
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) ← mul_sub 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs'))) =
normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
apply congrArg 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs')) =
ofCrAnListF (createFilter (φs ++ φs')) * ofCrAnListF (annihilateFilter φs) *
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')
conv_rhs => rw [mul_assoc, mul_assoc] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp| ofCrAnListF (createFilter (φs ++ φs')) *
(ofCrAnListF (annihilateFilter φs) *
((ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')))
apply congrArg 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (annihilateFilter φs) *
(ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
ofCrAnListF (annihilateFilter φs) *
((ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
rw [mul_assoc 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (annihilateFilter φs) *
((ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs')) =
ofCrAnListF (annihilateFilter φs) *
((ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')) 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (annihilateFilter φs) *
((ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs')) =
ofCrAnListF (annihilateFilter φs) *
((ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ ofCrAnListF (annihilateFilter φs) *
((ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs')) =
ofCrAnListF (annihilateFilter φs) *
((ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs'))
apply congrArg 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnListF ([φa] ++ [φa']) -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')
rw [ofCrAnListF_append, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnListF [φa] * ofCrAnListF [φa'] -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') ofCrAnListF_singleton, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnListF [φa'] -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') ofCrAnListF_singleton 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')] 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnListF ([φa'] ++ [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs')
rw [ofCrAnListF_append, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnListF [φa'] * ofCrAnListF [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnOpF φa' * ofCrAnListF [φa])) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') All goals completed! 🐙 ofCrAnListF_singleton, 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnOpF φa' * ofCrAnOpF φa)) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • ofCrAnOpF φa' * ofCrAnOpF φa) *
ofCrAnListF (annihilateFilter φs') All goals completed! 🐙 smul_mul_assoc 𝓕:FieldSpecificationφa:𝓕.CrAnFieldOpφa':𝓕.CrAnFieldOphφa:𝓕|>ᶜφa = CreateAnnihilate.annihilatehφa':𝓕|>ᶜφa' = CreateAnnihilate.annihilateφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnOpF φa' * ofCrAnOpF φa)) *
ofCrAnListF (annihilateFilter φs') =
(ofCrAnOpF φa * ofCrAnOpF φa' -
(exchangeSign (𝓕.crAnStatistics φa)) (𝓕.crAnStatistics φa') • (ofCrAnOpF φa' * ofCrAnOpF φa)) *
ofCrAnListF (annihilateFilter φs') All goals completed! 🐙] All goals completed! 🐙Super commutators involving a normal order.
lemma ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, 𝓝ᶠ(ofCrAnListF φs')]ₛF =
ofCrAnListF φs * 𝓝ᶠ(ofCrAnListF φs') -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofCrAnListF φs') * ofCrAnListF φs := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.CrAnFieldOp⊢ (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF φs')) =
ofCrAnListF φs * normalOrderF (ofCrAnListF φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics φs') • normalOrderF (ofCrAnListF φs') *
ofCrAnListF φs
simp only [normalOrderF_ofCrAnListF, map_smul, superCommuteF_ofCrAnListF_ofCrAnListF,
ofCrAnListF_append, normalOrderList_statistics, smul_sub, smul_smul,
Algebra.mul_smul_comm, mul_comm, Algebra.smul_mul_assoc] All goals completed! 🐙
lemma ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛF =
ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs := by 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofFieldOpListF φs')) =
ofCrAnListF φs * normalOrderF (ofFieldOpListF φs') -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofFieldOpListF φs') *
ofCrAnListF φs
rw [ofFieldOpListF_sum, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (normalOrderF (∑ s, ofCrAnListF ↑s)) =
ofCrAnListF φs * normalOrderF (∑ s, ofCrAnListF ↑s) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (∑ s, ofCrAnListF ↑s) *
ofCrAnListF φs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) map_sum, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (∑ x, normalOrderF (ofCrAnListF ↑x)) =
ofCrAnListF φs * ∑ x, normalOrderF (ofCrAnListF ↑x) -
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ∑ x, normalOrderF (ofCrAnListF ↑x)) *
ofCrAnListF φs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) Finset.mul_sum, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (∑ x, normalOrderF (ofCrAnListF ↑x)) =
∑ i, ofCrAnListF φs * normalOrderF (ofCrAnListF ↑i) -
((exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • ∑ x, normalOrderF (ofCrAnListF ↑x)) *
ofCrAnListF φs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) Finset.smul_sum, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (∑ x, normalOrderF (ofCrAnListF ↑x)) =
∑ i, ofCrAnListF φs * normalOrderF (ofCrAnListF ↑i) -
(∑ x, (exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x)) *
ofCrAnListF φs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) Finset.sum_mul, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (∑ x, normalOrderF (ofCrAnListF ↑x)) =
∑ i, ofCrAnListF φs * normalOrderF (ofCrAnListF ↑i) -
∑ i,
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑i) *
ofCrAnListF φs 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs)
← Finset.sum_sub_distrib, 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (superCommuteF (ofCrAnListF φs)) (∑ x, normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) map_sum 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs) 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs)] 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ∑ x, (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x)) =
∑ x,
(ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs)
congr e_f 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ (fun x => (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑x))) = fun x =>
ofCrAnListF φs * normalOrderF (ofCrAnListF ↑x) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑x) *
ofCrAnListF φs
funext n e_f 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOpn:CrAnSection φs'⊢ (superCommuteF (ofCrAnListF φs)) (normalOrderF (ofCrAnListF ↑n)) =
ofCrAnListF φs * normalOrderF (ofCrAnListF ↑n) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑n) *
ofCrAnListF φs
rw [ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF, e_f 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOpn:CrAnSection φs'⊢ ofCrAnListF φs * normalOrderF (ofCrAnListF ↑n) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.crAnStatistics ↑n) • normalOrderF (ofCrAnListF ↑n) *
ofCrAnListF φs =
ofCrAnListF φs * normalOrderF (ofCrAnListF ↑n) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑n) *
ofCrAnListF φs All goals completed! 🐙
CrAnSection.statistics_eq_state_statistics e_f 𝓕:FieldSpecificationφs:List 𝓕.CrAnFieldOpφs':List 𝓕.FieldOpn:CrAnSection φs'⊢ ofCrAnListF φs * normalOrderF (ofCrAnListF ↑n) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑n) *
ofCrAnListF φs =
ofCrAnListF φs * normalOrderF (ofCrAnListF ↑n) -
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofCrAnListF ↑n) *
ofCrAnListF φs All goals completed! 🐙] All goals completed! 🐙Multiplications with normal order written in terms of super commute.
lemma ofCrAnListF_mul_normalOrderF_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 * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (ofList 𝓕.crAnStatistics φs)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofFieldOpListF φs') *
ofCrAnListF φs +
(superCommuteF (ofCrAnListF φs)) (normalOrderF (ofFieldOpListF φs'))
simp [ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF] All goals completed! 🐙lemma ofCrAnOpF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : ofCrAnOpF φ * 𝓝ᶠ(ofFieldOpListF φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnOpF φ
+ [ofCrAnOpF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by 𝓕:FieldSpecificationφ:𝓕.CrAnFieldOpφs':List 𝓕.FieldOp⊢ ofCrAnOpF φ * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕.crAnStatistics φ)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofFieldOpListF φs') *
ofCrAnOpF φ +
(superCommuteF (ofCrAnOpF φ)) (normalOrderF (ofFieldOpListF φs'))
simp [← ofCrAnListF_singleton, ofCrAnListF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF] All goals completed! 🐙
lemma anPartF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp)
(φs' : List 𝓕.FieldOp) :
anPartF φ * 𝓝ᶠ(ofFieldOpListF φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs' * anPartF φ)
+ [anPartF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ anPartF φ * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs') • normalOrderF (ofFieldOpListF φs' * anPartF φ) +
(superCommuteF (anPartF φ)) (normalOrderF (ofFieldOpListF φs'))
rw [normalOrderF_mul_anPartF 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ anPartF φ * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs') • (normalOrderF (ofFieldOpListF φs') * anPartF φ) +
(superCommuteF (anPartF φ)) (normalOrderF (ofFieldOpListF φs')) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ anPartF φ * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs') • (normalOrderF (ofFieldOpListF φs') * anPartF φ) +
(superCommuteF (anPartF φ)) (normalOrderF (ofFieldOpListF φs'))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOp⊢ anPartF φ * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛφ)) (ofList 𝓕.fieldOpStatistic φs') • (normalOrderF (ofFieldOpListF φs') * anPartF φ) +
(superCommuteF (anPartF φ)) (normalOrderF (ofFieldOpListF φs'))
match φ with
| .inAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOpa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPartF (FieldOp.inAsymp a✝) * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛFieldOp.inAsymp a✝)) (ofList 𝓕.fieldOpStatistic φs') •
(normalOrderF (ofFieldOpListF φs') * anPartF (FieldOp.inAsymp a✝)) +
(superCommuteF (anPartF (FieldOp.inAsymp a✝))) (normalOrderF (ofFieldOpListF φs')) simp All goals completed! 🐙
| .position _ | .outAsymp _ => 𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOpa✝:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ anPartF (FieldOp.outAsymp a✝) * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛFieldOp.outAsymp a✝)) (ofList 𝓕.fieldOpStatistic φs') •
(normalOrderF (ofFieldOpListF φs') * anPartF (FieldOp.outAsymp a✝)) +
(superCommuteF (anPartF (FieldOp.outAsymp a✝))) (normalOrderF (ofFieldOpListF φs'))𝓕:FieldSpecificationφ:𝓕.FieldOpφs':List 𝓕.FieldOpa✝:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTime⊢ anPartF (FieldOp.position a✝) * normalOrderF (ofFieldOpListF φs') =
(exchangeSign (𝓕|>ₛFieldOp.position a✝)) (ofList 𝓕.fieldOpStatistic φs') •
(normalOrderF (ofFieldOpListF φs') * anPartF (FieldOp.position a✝)) +
(superCommuteF (anPartF (FieldOp.position a✝))) (normalOrderF (ofFieldOpListF φs'))
simp [ofCrAnOpF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF, crAnStatistics] All goals completed! 🐙