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.WickContraction.Sign.InsertNone
public import Physlib.QFT.PerturbationTheory.WickContraction.Sign.InsertSome
public import Physlib.QFT.PerturbationTheory.WickContraction.TimeContract
public import Physlib.QFT.PerturbationTheory.WickAlgebra.NormalOrder.WickContractionsWick term
@[expose] public section
For a list φs of 𝓕.FieldOp, and a Wick contraction φsΛ of φs, the element
of 𝓕.WickAlgebra, φsΛ.wickTerm is defined as
φsΛ.sign • φsΛ.timeContract * 𝓝([φsΛ]ᵘᶜ).
This is a term which appears in the Wick's theorem.
def wickTerm {φs : List 𝓕.FieldOp} (φsΛ : WickContraction φs.length) : 𝓕.WickAlgebra :=
φsΛ.sign • φsΛ.timeContract * 𝓝(ofFieldOpList [φsΛ]ᵘᶜ)
For the empty list [] of 𝓕.FieldOp, the wickTerm of the Wick contraction
corresponding to the empty set ∅ (the only Wick contraction of []) is 1.
𝓕:FieldSpecification⊢ sign [] empty • ↑empty.timeContract * normalOrder (ofFieldOpList [empty]ᵘᶜ) = 1
simp [sign_empty] All goals completed! 🐙
For a list φs = φ₀…φₙ of 𝓕.FieldOp, a Wick contraction φsΛ of φs, an element φ of
𝓕.FieldOp, and i ≤ φs.length, then (φsΛ ↩Λ φ i none).wickTerm is equal to
𝓢(φ, φ₀…φᵢ₋₁) φsΛ.sign • φsΛ.timeContract * 𝓝(φ :: [φsΛ]ᵘᶜ)
The proof of this result relies on
normalOrder_uncontracted_none to rewrite normal orderings.
timeContract_insert_none to rewrite the time contract.
sign_insert_none to rewrite the sign.
lemma wickTerm_insert_none (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp)
(i : Fin φs.length.succ) (φsΛ : WickContraction φs.length) :
(φsΛ ↩Λ φ i none).wickTerm =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (Finset.univ.filter (fun k => i.succAbove k < i))⟩)
• (φsΛ.sign • φsΛ.timeContract * 𝓝(ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.length⊢ (φsΛ↩Λφ i none).wickTerm =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
rw [wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.length⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.length⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.length⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
by_cases hg : GradingCompliant φs φsΛ pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) rw [normalOrder_uncontracted_none, pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) •
normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ) •
↑(φsΛ↩Λφ i none).timeContract *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) •
normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) sign_insert_none _ _ _ _ hg pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ) •
↑(φsΛ↩Λφ i none).timeContract *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) •
normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ) •
↑(φsΛ↩Λφ i none).timeContract *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) •
normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))]pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ) •
↑(φsΛ↩Λφ i none).timeContract *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) •
normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
simp only [Nat.succ_eq_add_one, timeContract_insert_none,
Algebra.mul_smul_comm, Algebra.smul_mul_assoc, smul_smul] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
((exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ)) •
(↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) =
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) * sign φs φsΛ) •
(↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
congr 1 pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
((exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) * sign φs φsΛ
rw [← mul_assoc pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
(exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) * sign φs φsΛ pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
(exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) * sign φs φsΛ]pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
(exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) *
sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) * sign φs φsΛ
congr 1 pos.e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i})) *
(exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i})
rw [← map_mul pos.e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i}) *
ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) pos.e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i}) *
ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i})]pos.e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ (exchangeSign (𝓕|>ₛφ))
(ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i}) *
ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i})
congr pos.e_a.e_a.e_6 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | i.succAbove x < i}) *
ofFinset 𝓕.fieldOpStatistic φs.get {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i} =
ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}
rw [ofFinset_union pos.e_a.e_a.e_6 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ofFinset 𝓕.fieldOpStatistic φs.get
(({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∪ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) \
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∩ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i})) =
ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i} pos.e_a.e_a.e_6 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ofFinset 𝓕.fieldOpStatistic φs.get
(({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∪ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) \
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∩ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i})) =
ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}]pos.e_a.e_a.e_6 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ofFinset 𝓕.fieldOpStatistic φs.get
(({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∪ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) \
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∩ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i})) =
ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}
congr pos.e_a.e_a.e_6.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛ⊢ ({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∪ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) \
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∩ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) =
{k | i.succAbove k < i}
ext a pos.e_a.e_a.e_6.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ a ∈
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∪ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) \
({x ∈ φsΛ.uncontracted | i.succAbove x < i} ∩ {x | (φsΛ.getDual? x).isSome = true ∧ i.succAbove x < i}) ↔
a ∈ {k | i.succAbove k < i}
simp only [Finset.mem_sdiff, Finset.mem_union, Finset.mem_filter, Finset.mem_univ, true_and,
Finset.mem_inter, not_and, not_lt, and_imp] pos.e_a.e_a.e_6.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ (a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a) ↔
i.succAbove a < i
apply Iff.intro pos.e_a.e_a.e_6.e_a.mp 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ (a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a) →
i.succAbove a < ipos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ i.succAbove a < i →
(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
· pos.e_a.e_a.e_6.e_a.mp 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ (a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a) →
i.succAbove a < i intro ha pos.e_a.e_a.e_6.e_a.mp 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)⊢ i.succAbove a < i
have ha1 := ha.1 pos.e_a.e_a.e_6.e_a.mp 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)ha1:a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i⊢ i.succAbove a < i
rcases ha1 with ha1 | ha1 pos.e_a.e_a.e_6.e_a.mp.inl 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)ha1:a ∈ φsΛ.uncontracted ∧ i.succAbove a < i⊢ i.succAbove a < ipos.e_a.e_a.e_6.e_a.mp.inr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)ha1:(φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i⊢ i.succAbove a < i
· pos.e_a.e_a.e_6.e_a.mp.inl 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)ha1:a ∈ φsΛ.uncontracted ∧ i.succAbove a < i⊢ i.succAbove a < i exact ha1.2 All goals completed! 🐙
· pos.e_a.e_a.e_6.e_a.mp.inr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)ha1:(φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i⊢ i.succAbove a < i exact ha1.2 All goals completed! 🐙
· pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.length⊢ i.succAbove a < i →
(a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a) intro ha pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < i⊢ (a ∈ φsΛ.uncontracted ∧ i.succAbove a < i ∨ (φsΛ.getDual? a).isSome = true ∧ i.succAbove a < i) ∧
(a ∈ φsΛ.uncontracted → i.succAbove a < i → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
simp only [uncontracted, Finset.mem_filter, Finset.mem_univ, true_and, ha, and_true,
forall_const] pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < i⊢ (φsΛ.getDual? a = none ∨ (φsΛ.getDual? a).isSome = true) ∧
(φsΛ.getDual? a = none → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
have hx : φsΛ.getDual? a = none ↔ ¬ (φsΛ.getDual? a).isSome := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.length⊢ (φsΛ↩Λφ i none).wickTerm =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (φsΛ.getDual? a = none ∨ (φsΛ.getDual? a).isSome = true) ∧
(φsΛ.getDual? a = none → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
simppos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (φsΛ.getDual? a = none ∨ (φsΛ.getDual? a).isSome = true) ∧
(φsΛ.getDual? a = none → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (φsΛ.getDual? a = none ∨ (φsΛ.getDual? a).isSome = true) ∧
(φsΛ.getDual? a = none → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
rw [hx pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (¬(φsΛ.getDual? a).isSome = true ∨ (φsΛ.getDual? a).isSome = true) ∧
(¬(φsΛ.getDual? a).isSome = true → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a) pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (¬(φsΛ.getDual? a).isSome = true ∨ (φsΛ.getDual? a).isSome = true) ∧
(¬(φsΛ.getDual? a).isSome = true → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)]pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (¬(φsΛ.getDual? a).isSome = true ∨ (φsΛ.getDual? a).isSome = true) ∧
(¬(φsΛ.getDual? a).isSome = true → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a)
simp only [Bool.not_eq_true, Bool.eq_false_or_eq_true_self, true_and] pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = true⊢ (φsΛ.getDual? a).isSome = false → (φsΛ.getDual? a).isSome = true → i ≤ i.succAbove a
intro h1 h2 pos.e_a.e_a.e_6.e_a.mpr 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:GradingCompliant φs φsΛa:Fin φs.lengthha:i.succAbove a < ihx:φsΛ.getDual? a = none ↔ ¬(φsΛ.getDual? a).isSome = trueh1:(φsΛ.getDual? a).isSome = falseh2:(φsΛ.getDual? a).isSome = true⊢ i ≤ i.succAbove a
simp_all All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • ↑(φsΛ↩Λφ i none).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) simp only [Nat.succ_eq_add_one, timeContract_insert_none, Algebra.smul_mul_assoc] neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • (↑φsΛ.timeContract * normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
sign φs φsΛ • (↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
rw [timeContract_of_not_gradingCompliant neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • (↑0 * normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
sign φs φsΛ • (↑0 * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • (↑0 * normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
sign φs φsΛ • (↑0 * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i none) • (↑0 * normalOrder (ofFieldOpList [φsΛ↩Λφ i none]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
sign φs φsΛ • (↑0 * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ
simp only [ZeroMemClass.coe_zero, zero_mul, smul_zero] neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhg:¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ
exact hg All goals completed! 🐙
For a list φs = φ₀…φₙ of 𝓕.FieldOp, a Wick contraction φsΛ of φs, an element φ of
𝓕.FieldOp, i ≤ φs.length and a k in φsΛ.uncontracted,
such that all 𝓕.FieldOp in φ₀…φᵢ₋₁ have time strictly less than φ and
φ has a time greater than or equal to all FieldOp in φ₀…φₙ, then
(φsΛ ↩Λ φ i (some k)).staticWickTerm
is equal to the product of
the sign 𝓢(φ, φ₀…φᵢ₋₁)
the sign φsΛ.sign
φsΛ.timeContract
s • [anPart φ, ofFieldOp φs[k]]ₛ where s is the sign associated with moving φ through
uncontracted fields in φ₀…φₖ₋₁
the normal ordering [φsΛ]ᵘᶜ with the field corresponding to k removed.
The proof of this result relies on
timeContract_insert_some_of_not_lt
and timeContract_insert_some_of_lt to rewrite time
contractions.
normalOrder_uncontracted_some to rewrite normal orderings.
sign_insert_some_of_not_lt and sign_insert_some_of_lt to rewrite signs.
set_option backward.isDefEq.respectTransparency false in
lemma wickTerm_insert_some (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp)
(i : Fin φs.length.succ) (φsΛ : WickContraction φs.length) (k : φsΛ.uncontracted)
(hlt : ∀ (k : Fin φs.length), timeOrderRel φ φs[k])
(hn : ∀ (k : Fin φs.length), i.succAbove k < i → ¬ timeOrderRel φs[k] φ) :
(φsΛ ↩Λ φ i (some k)).wickTerm =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (Finset.univ.filter (fun x => i.succAbove x < i))⟩)
• (φsΛ.sign • (contractStateAtIndex φ [φsΛ]ᵘᶜ
((uncontractedFieldOpEquiv φs φsΛ) (some k)) * φsΛ.timeContract)
* 𝓝(ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (uncontractedFieldOpEquiv φs φsΛ k)))) := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ (φsΛ↩Λφ i some k).wickTerm =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
rw [wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
by_cases hg : GradingCompliant φs φsΛ ∧ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φs[k.1]) pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:¬(GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k])⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) by_cases hk : i.succAbove k < i pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) rw [WickContraction.timeContract_insert_some_of_not_lt pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))pos.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬timeOrderRel φs[↑k] φpos.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬i < i.succAbove ↑k pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))pos.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬timeOrderRel φs[↑k] φpos.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬i < i.succAbove ↑k]pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))pos.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬timeOrderRel φs[↑k] φpos.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬i < i.succAbove ↑k
swap pos.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬timeOrderRel φs[↑k] φpos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))pos.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬i < i.succAbove ↑k
· pos.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬timeOrderRel φs[↑k] φ exact hn _ hk All goals completed! 🐙
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) rw [normalOrder_uncontracted_some, pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) sign_insert_some_of_lt φ φs φsΛ i k hk hg pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))]pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
simp only [smul_smul, Algebra.smul_mul_assoc] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k}))) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) =
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
congr 1 pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ
rw [mul_assoc, pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k}))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc, pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛpos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_comm, pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k}))) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛpos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc, pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k}))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛpos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛpos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ]pos.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x ≤ ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ
simp All goals completed! 🐙
· pos.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:i.succAbove ↑k < i⊢ ¬i < i.succAbove ↑k omega All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) have hik : i.succAbove ↑k ≠ i := Fin.succAbove_ne i ↑k neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
rw [timeContract_insert_some_of_lt neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ timeOrderRel φ φs[↑k]neg.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ i < i.succAbove ↑k neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ timeOrderRel φ φs[↑k]neg.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ i < i.succAbove ↑k]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ timeOrderRel φ φs[↑k]neg.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ i < i.succAbove ↑k
swap neg.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ timeOrderRel φ φs[↑k]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ i < i.succAbove ↑k
· neg.ht 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ timeOrderRel φ φs[↑k] exact hlt _ All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) rw [normalOrder_uncontracted_some neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
rw [sign_insert_some_of_not_lt φ φs φsΛ i k hk hg neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
simp only [smul_smul, Algebra.smul_mul_assoc] neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ ((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k}))) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) =
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
congr 1 neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ
rw [mul_assoc, neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k}))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc, neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛneg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_comm, neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k}))) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛneg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc, neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ * (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k}))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛneg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ mul_assoc neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛneg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ]neg.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(sign φs φsΛ *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get ({x ∈ φsΛ.uncontracted | x < ↑k})))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ
simp All goals completed! 🐙
· neg.hik 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k]hk:¬i.succAbove ↑k < ihik:i.succAbove ↑k ≠ i⊢ i < i.succAbove ↑k omega All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:¬(GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k])⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) • ↑(φsΛ↩Λφ i some k).timeContract *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) rw [timeContract_insertAndContract_some neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:¬(GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k])⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:¬(GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k])⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:¬(GradingCompliant φs φsΛ ∧ (𝓕|>ₛφ) = 𝓕|>ₛφs[↑k])⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
simp only [Fin.getElem_fin, not_and] at hg neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
by_cases hg' : GradingCompliant φs φsΛ pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) have hg := hg hg' pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, Algebra.smul_mul_assoc,
contractStateAtIndex, uncontractedFieldOpEquiv, Equiv.optionCongr_apply,
Equiv.coe_trans, Option.map_some, Function.comp_apply, finCongr_apply, Fin.val_cast,
List.getElem_map, uncontractedList_getElem_uncontractedIndexEquiv_symm, List.get_eq_getElem,
uncontractedListGet] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(↑(if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑↑k], ⋯⟩ * φsΛ.timeContract
else ⟨WickAlgebra.timeContract φs[↑↑k] φ, ⋯⟩ * φsΛ.timeContract) *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))
by_cases h1 : i < i.succAbove ↑k pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(↑(if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑↑k], ⋯⟩ * φsΛ.timeContract
else ⟨WickAlgebra.timeContract φs[↑↑k] φ, ⋯⟩ * φsΛ.timeContract) *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(↑(if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑↑k], ⋯⟩ * φsΛ.timeContract
else ⟨WickAlgebra.timeContract φs[↑↑k] φ, ⋯⟩ * φsΛ.timeContract) *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))
· pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(↑(if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑↑k], ⋯⟩ * φsΛ.timeContract
else ⟨WickAlgebra.timeContract φs[↑↑k] φ, ⋯⟩ * φsΛ.timeContract) *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k)))))) simp only [h1, ↓reduceIte, MulMemClass.coe_mul] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(WickAlgebra.timeContract φ φs[↑↑k] * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))
rw [timeContract_zero_of_diff_grade pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]]pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]
simp only [zero_mul, smul_zero] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]
rw [superCommute_anPart_ofFieldOpF_diff_grade_zero pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k] pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]]pos 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]
simp only [zero_mul, smul_zero] pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]
exact hg pos.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]
exact hg All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(↑(if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑↑k], ⋯⟩ * φsΛ.timeContract
else ⟨WickAlgebra.timeContract φs[↑↑k] φ, ⋯⟩ * φsΛ.timeContract) *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k)))))) simp only [h1, ↓reduceIte, MulMemClass.coe_mul] neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(WickAlgebra.timeContract φs[↑↑k] φ * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))
rw [timeContract_zero_of_diff_grade neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
(0 * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (List.map (φs.insertIdx (↑i) φ).get (φsΛ↩Λφ i some k).uncontractedList))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ
simp only [zero_mul, smul_zero] neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
((superCommute (anPart φ)) (ofFieldOp φs[↑↑k]) * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ
rw [superCommute_anPart_ofFieldOpF_diff_grade_zero neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ 0 =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
sign φs φsΛ •
(exchangeSign (𝓕|>ₛφ))
(ofList 𝓕.fieldOpStatistic
(List.take (↑(φsΛ.uncontractedIndexEquiv.symm k)) (List.map φs.get φsΛ.uncontractedList))) •
(0 * ↑φsΛ.timeContract *
normalOrder
(ofFieldOpList
(optionEraseZ (List.map φs.get φsΛ.uncontractedList) φ
(some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm k))))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ
simp only [zero_mul, smul_zero] neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφ) ≠ 𝓕|>ₛφs[↑↑k]neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ
exact hg neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg✝:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':GradingCompliant φs φsΛhg:¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]h1:¬i < i.succAbove ↑k⊢ (𝓕|>ₛφs[↑↑k]) ≠ 𝓕|>ₛφ
exact fun a => hg (id (Eq.symm a)) All goals completed! 🐙
· neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
φsΛ.timeContract) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k))))) rw [timeContract_of_not_gradingCompliant neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
0) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑0) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
0) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑0) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ]neg 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ sign (φs.insertIdx (↑i) φ) (φsΛ↩Λφ i some k) •
↑((if i < i.succAbove ↑k then ⟨WickAlgebra.timeContract φ φs[↑k], ⋯⟩
else ⟨WickAlgebra.timeContract φs[↑k] φ, ⋯⟩) *
0) *
normalOrder (ofFieldOpList [φsΛ↩Λφ i some k]ᵘᶜ) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some k)) * ↑0) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some k)))))neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, mul_zero, ZeroMemClass.coe_zero, smul_zero,
zero_mul] neg.h 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthk:↥φsΛ.uncontractedhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φhg:GradingCompliant φs φsΛ → ¬(𝓕|>ₛφ) = 𝓕|>ₛφs[↑↑k]hg':¬GradingCompliant φs φsΛ⊢ ¬GradingCompliant φs φsΛ
exact hg' All goals completed! 🐙
For a list φs = φ₀…φₙ of 𝓕.FieldOp, a Wick contraction φsΛ of φs, an element φ of
𝓕.FieldOp, and i ≤ φs.length
such that all 𝓕.FieldOp in φ₀…φᵢ₋₁ have time strictly less than φ and
φ has a time greater than or equal to all FieldOp in φ₀…φₙ, then
φ * φsΛ.wickTerm = 𝓢(φ, φ₀…φᵢ₋₁) • ∑ k, (φsΛ ↩Λ φ i k).wickTerm
where the sum is over all k in Option φsΛ.uncontracted, so k is either none or some k.
The proof proceeds as follows:
ofFieldOp_mul_normalOrder_ofFieldOpList_eq_sum is used to expand φ 𝓝([φsΛ]ᵘᶜ) as
a sum over k in Option φsΛ.uncontracted of terms involving [anPart φ, φs[k]]ₛ.
Then wickTerm_insert_none and wickTerm_insert_some are used to equate terms.
lemma mul_wickTerm_eq_sum (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) (i : Fin φs.length.succ)
(φsΛ : WickContraction φs.length) (hlt : ∀ (k : Fin φs.length), timeOrderRel φ φs[k])
(hn : ∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ) :
ofFieldOp φ * φsΛ.wickTerm =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (Finset.univ.filter (fun x => i.succAbove x < i))⟩) •
∑ (k : Option φsΛ.uncontracted), (φsΛ ↩Λ φ i k).wickTerm := by 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ofFieldOp φ * φsΛ.wickTerm =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • ∑ k, (φsΛ↩Λφ i k).wickTerm
trans (φsΛ.sign • φsΛ.timeContract) * ((ofFieldOp φ) * 𝓝(ofFieldOpList [φsΛ]ᵘᶜ)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ofFieldOp φ * φsΛ.wickTerm = sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ))𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • ∑ k, (φsΛ↩Λφ i k).wickTerm
· 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ofFieldOp φ * φsΛ.wickTerm = sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) have ht := Subalgebra.mem_center_iff.mp (Subalgebra.smul_mem (Subalgebra.center ℂ _)
(WickContraction.timeContract φsΛ).2 (φsΛ.sign)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ ofFieldOp φ * φsΛ.wickTerm = sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ))
rw [wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ ofFieldOp φ * (sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ ofFieldOp φ * (sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ ofFieldOp φ * (sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ))
rw [← mul_assoc, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ ofFieldOp φ * sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) All goals completed! 🐙 ht, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ sign φs φsΛ • ↑φsΛ.timeContract * ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) All goals completed! 🐙 mul_assoc 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φht:∀ (b : 𝓕.WickAlgebra), b * sign φs φsΛ • ↑φsΛ.timeContract = sign φs φsΛ • ↑φsΛ.timeContract * b⊢ sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) =
sign φs φsΛ • ↑φsΛ.timeContract * (ofFieldOp φ * normalOrder (ofFieldOpList [φsΛ]ᵘᶜ)) All goals completed! 🐙] All goals completed! 🐙
rw [ofFieldOp_mul_normalOrder_ofFieldOpList_eq_sum, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ sign φs φsΛ • ↑φsΛ.timeContract *
∑ n, contractStateAtIndex φ [φsΛ]ᵘᶜ n * normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ n)) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • ∑ k, (φsΛ↩Λφ i k).wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm Finset.mul_sum, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ i * normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ i))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • ∑ k, (φsΛ↩Λφ i k).wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm
uncontractedFieldOpEquiv_list_sum, 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • ∑ k, (φsΛ↩Λφ i k).wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm Finset.smul_sum 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm
simp only [Nat.succ_eq_add_one] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ ∑ i,
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i)))) =
∑ x, (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm
congr 1 e_f 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φ⊢ (fun i =>
sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) i) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) i))))) =
fun x => (exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i x).wickTerm
funext n e_f 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) n) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) n)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i n).wickTerm
match n with
| none => 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) none) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) none)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i none).wickTerm
rw [wickTerm_insert_none 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) none) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) none)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ))) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) none) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) none)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) none) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) none)))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {k | i.succAbove k < i}) •
(sign φs φsΛ • ↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
simp only [contractStateAtIndex, uncontractedFieldOpEquiv, Equiv.optionCongr_apply,
Equiv.coe_trans, Option.map_none, one_mul, Algebra.smul_mul_assoc, smul_smul] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ • (↑φsΛ.timeContract * normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ none))) =
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ)) •
(↑φsΛ.timeContract * normalOrder (ofFieldOpList (φ :: [φsΛ]ᵘᶜ)))
congr 1 e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ)
rw [← mul_assoc, e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ exchangeSign_mul_self e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛe_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ]e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn:Option ↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ
simp All goals completed! 🐙
| some n => 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n))))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) • (φsΛ↩Λφ i some n).wickTerm
rw [wickTerm_insert_some _ _ _ _ _
(fun k => hlt k) (fun k a => hn k a) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n))))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n))))) 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n))))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n)))))] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ • ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n))))) =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) •
(sign φs φsΛ • (contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedFieldOpEquiv φs φsΛ) (some n)) * ↑φsΛ.timeContract) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ ((uncontractedFieldOpEquiv φs φsΛ) (some n)))))
simp only [uncontractedFieldOpEquiv, Equiv.optionCongr_apply, Equiv.coe_trans, Option.map_some,
Function.comp_apply, finCongr_apply, Algebra.smul_mul_assoc, smul_smul] 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ •
(↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))))) =
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ)) •
(contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))))
congr 1 e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ)e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n)))))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n)))))
· e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
((exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) * sign φs φsΛ) rw [← mul_assoc, e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ =
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
(exchangeSign (𝓕|>ₛφ)) (ofFinset 𝓕.fieldOpStatistic φs.get {x | i.succAbove x < i}) *
sign φs φsΛ e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ exchangeSign_mul_self e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛe_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ]e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ = 1 * sign φs φsΛ
rw [one_mul e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ sign φs φsΛ = sign φs φsΛ All goals completed! 🐙] All goals completed! 🐙
· e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract *
(contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n)))))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))) rw [← mul_assoc e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))) e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n)))))]e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract *
normalOrder (ofFieldOpList (optionEraseZ [φsΛ]ᵘᶜ φ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n)))))
congr 1 e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontracted⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract
have ht := (WickContraction.timeContract φsΛ).prop e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontractedht:↑φsΛ.timeContract ∈ Subalgebra.center ℂ 𝓕.WickAlgebra⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract
rw [@Subalgebra.mem_center_iff e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontractedht:∀ (b : 𝓕.WickAlgebra), b * ↑φsΛ.timeContract = ↑φsΛ.timeContract * b⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontractedht:∀ (b : 𝓕.WickAlgebra), b * ↑φsΛ.timeContract = ↑φsΛ.timeContract * b⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract] at hte_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontractedht:∀ (b : 𝓕.WickAlgebra), b * ↑φsΛ.timeContract = ↑φsΛ.timeContract * b⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) * ↑φsΛ.timeContract
rw [ht e_a.e_a 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpi:Fin φs.length.succφsΛ:WickContraction φs.lengthhlt:∀ (k : Fin φs.length), timeOrderRel φ φs[k]hn:∀ (k : Fin φs.length), i.succAbove k < i → ¬timeOrderRel φs[k] φn✝:Option ↥φsΛ.uncontractedn:↥φsΛ.uncontractedht:∀ (b : 𝓕.WickAlgebra), b * ↑φsΛ.timeContract = ↑φsΛ.timeContract * b⊢ ↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) =
↑φsΛ.timeContract * contractStateAtIndex φ [φsΛ]ᵘᶜ (some (Fin.cast ⋯ (φsΛ.uncontractedIndexEquiv.symm n))) All goals completed! 🐙] All goals completed! 🐙