feat: Add some basic properties for the higgs field

This commit is contained in:
jstoobysmith 2024-05-02 13:13:48 -04:00
parent 22d784b343
commit d92e632cfb

View file

@ -0,0 +1,106 @@
/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license.
Authors: Joseph Tooby-Smith
-/
import Mathlib.Data.Complex.Exponential
import Mathlib.Geometry.Manifold.VectorBundle.Basic
import Mathlib.Geometry.Manifold.VectorBundle.SmoothSection
import Mathlib.Geometry.Manifold.Instances.Real
import Mathlib.RepresentationTheory.Basic
/-!
# The Higgs field
This file defines the basic properties for the higgs field in the standard model.
-/
universe v u
namespace StandardModel
open Manifold
open Matrix
open Complex
open ComplexConjugate
/-- The space-time (TODO: Change to Minkowski. Move.) -/
abbrev spaceTime := EuclideanSpace (Fin 4)
abbrev guageGroup : Type := specialUnitaryGroup (Fin 2) × unitary
/-- The trivial vector bundle 𝓡² × ℂ². (TODO: Make associated bundle.) -/
abbrev higgsBundle := Bundle.Trivial spaceTime (Fin 2 → )
instance : SmoothVectorBundle (Fin 2 → ) higgsBundle (𝓡 4) :=
Bundle.Trivial.smoothVectorBundle (Fin 2 → ) 𝓘(, spaceTime)
/-- A higgs field is a smooth section of the higgs bundle. -/
abbrev higgsFields : Type := SmoothSection (𝓡 4) (Fin 2 → ) higgsBundle
/-- -/
@[simps!]
noncomputable def higgsRepMap (g : guageGroup) : (Fin 2 → ) →ₗ[] (Fin 2 → ) where
toFun S := (g.2 ^ 3) • (g.1.1 *ᵥ S)
map_add' S T := by
simp [Matrix.mulVec_add, smul_add]
map_smul' a S := by
simp [Matrix.mulVec_smul]
exact smul_comm _ _ _
/-- The representation of the SM guage group acting on `ℂ²`. -/
noncomputable def higgsRep : Representation guageGroup (Fin 2 → ) where
toFun := higgsRepMap
map_mul' U V := by
apply LinearMap.ext
intro S
simp only [higgsRepMap, Prod.snd_mul, Submonoid.coe_inf, Prod.fst_mul, Submonoid.coe_mul,
LinearMap.coe_mk, AddHom.coe_mk, LinearMap.mul_apply, LinearMap.map_smul_of_tower,
mulVec_mulVec]
simp [mul_pow, smul_smul, mul_comm]
map_one' := by
apply LinearMap.ext
intro S
simp only [higgsRepMap, LinearMap.mul_apply, AddHom.coe_mk, LinearMap.coe_mk]
change 1 ^ 3 • (1 *ᵥ _) = _
rw [one_pow, Matrix.one_mulVec]
simp only [one_smul, LinearMap.one_apply]
namespace higgsFields
/-- A higgs field is constant if it is equal for all `x` `y` in `spaceTime`. -/
def isConst (Φ : higgsFields) : Prop := ∀ x y, Φ x = Φ y
/-- Given a vector `ℂ²` the constant higgs field with value equal to that
section. -/
noncomputable def const (φ : Fin 2 → ) : higgsFields where
toFun := fun _ => φ
contMDiff_toFun := by
intro x
rw [Bundle.contMDiffAt_section]
exact smoothAt_const
lemma const_isConst (φ : Fin 2 → ) : (const φ).isConst := by
intro x _
simp [const]
lemma isConst_iff_exists_const (Φ : higgsFields) : Φ.isConst ↔ ∃ φ, Φ = const φ := by
apply Iff.intro
intro h
use Φ 0
ext x y
rw [← h x 0]
rfl
intro h
intro x y
obtain ⟨φ, hφ⟩ := h
subst hφ
rfl
end higgsFields
end StandardModel