Imports
/- Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Physlib.QFT.PerturbationTheory.WickAlgebra.Basic

Universality properties of WickAlgebra

@[expose] public section

For a field specification, 𝓕, given an algebra A and a function f : 𝓕.CrAnFieldOp β†’ A such that the lift of f to FreeAlgebra.lift β„‚ f : FreeAlgebra β„‚ 𝓕.CrAnFieldOp β†’ A is zero on the ideal defining 𝓕.WickAlgebra, the corresponding map 𝓕.WickAlgebra β†’ A.

𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0b:𝓕.FieldOpFreeAlgebraa:𝓕.FieldOpFreeAlgebraha:a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet⊒ ((FreeAlgebra.lift β„‚) f) b + 0 = ((FreeAlgebra.lift β„‚) f) b All goals completed! πŸ™)
@[simp] lemma universalLiftMap_ΞΉ {A : Type} [Semiring A] [Algebra β„‚ A] (f : 𝓕.CrAnFieldOp β†’ A) (h1 : βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, FreeAlgebra.lift β„‚ f a = 0) : universalLiftMap f h1 (ΞΉ a) = FreeAlgebra.lift β„‚ f a := 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ universalLiftMap f h1 (ΞΉ a) = ((FreeAlgebra.lift β„‚) f) a All goals completed! πŸ™

For a field specification, 𝓕, given an algebra A and a function f : 𝓕.CrAnFieldOp β†’ A such that the lift of f to FreeAlgebra.lift β„‚ f : FreeAlgebra β„‚ 𝓕.CrAnFieldOp β†’ A is zero on the ideal defining 𝓕.WickAlgebra, the corresponding algebra map 𝓕.WickAlgebra β†’ A.

𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0r:β„‚βŠ’ ((FreeAlgebra.lift β„‚) f) (r β€’ 1) = (algebraMap β„‚ A) r 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0r:β„‚βŠ’ r β€’ 1 = (algebraMap β„‚ A) r All goals completed! πŸ™
@[simp] lemma universalLift_ΞΉ {A : Type} [Semiring A] [Algebra β„‚ A] (f : 𝓕.CrAnFieldOp β†’ A) (h1 : βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, FreeAlgebra.lift β„‚ f a = 0) : universalLift f h1 (ΞΉ a) = FreeAlgebra.lift β„‚ f a := 𝓕:FieldSpecificationa:𝓕.FieldOpFreeAlgebraA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ (universalLift f h1) (ΞΉ a) = ((FreeAlgebra.lift β„‚) f) a All goals completed! πŸ™

For a field specification, 𝓕, the algebra 𝓕.WickAlgebra satisfies the following universal property. Let f : 𝓕.CrAnFieldOp β†’ A be a function and g : 𝓕.FieldOpFreeAlgebra →ₐ[β„‚] A the universal lift of that function associated with the free algebra 𝓕.FieldOpFreeAlgebra. If g is zero on the ideal defining 𝓕.WickAlgebra, then there exists algebra map g' : WickAlgebra 𝓕 →ₐ[β„‚] A such that g' ∘ ΞΉ = g, and furthermore this algebra map is unique.

lemma universality {A : Type} [Semiring A] [Algebra β„‚ A] (f : 𝓕.CrAnFieldOp β†’ A) (h1 : βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, FreeAlgebra.lift β„‚ f a = 0) : βˆƒ! g : WickAlgebra 𝓕 →ₐ[β„‚] A, g ∘ ΞΉ = FreeAlgebra.lift β„‚ f := 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ βˆƒ! g, ⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ (fun g => ⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)) (universalLift f h1) ∧ βˆ€ (y : 𝓕.WickAlgebra →ₐ[β„‚] A), (fun g => ⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)) y β†’ y = universalLift f h1 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ ⇑(universalLift f h1) ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) ∧ βˆ€ (y : 𝓕.WickAlgebra →ₐ[β„‚] A), ⇑y ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) β†’ y = universalLift f h1 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ ⇑(universalLift f h1) ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ βˆ€ (y : 𝓕.WickAlgebra →ₐ[β„‚] A), ⇑y ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) β†’ y = universalLift f h1 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ ⇑(universalLift f h1) ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0a:𝓕.FieldOpFreeAlgebra⊒ (⇑(universalLift f h1) ∘ ⇑ι) a = ((FreeAlgebra.lift β„‚) f) a All goals completed! πŸ™ 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0⊒ βˆ€ (y : 𝓕.WickAlgebra →ₐ[β„‚] A), ⇑y ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f) β†’ y = universalLift f h1 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0g:𝓕.WickAlgebra →ₐ[β„‚] Ahg:⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)⊒ g = universalLift f h1 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0g:𝓕.WickAlgebra →ₐ[β„‚] Ahg:⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)a:𝓕.WickAlgebra⊒ g a = (universalLift f h1) a 𝓕:FieldSpecificationA:Typeinst✝¹:Semiring Ainst✝:Algebra β„‚ Af:𝓕.CrAnFieldOp β†’ Ah1:βˆ€ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet, ((FreeAlgebra.lift β„‚) f) a = 0g:𝓕.WickAlgebra →ₐ[β„‚] Ahg:⇑g ∘ ⇑ι = ⇑((FreeAlgebra.lift β„‚) f)a:𝓕.FieldOpFreeAlgebra⊒ g (ΞΉ a) = (universalLift f h1) (ΞΉ a) All goals completed! πŸ™