PhysLean/HepLean/StandardModel/HiggsField.lean

127 lines
3.7 KiB
Text
Raw Normal View History

/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license.
Authors: Joseph Tooby-Smith
-/
2024-05-03 06:12:59 -04:00
import HepLean.StandardModel.Basic
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
2024-05-03 06:12:59 -04:00
noncomputable section
open Manifold
open Matrix
open Complex
open ComplexConjugate
/-- 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
2024-05-03 06:12:59 -04:00
-- rename
def rotateMatrix (φ : Fin 2 → ) : Matrix (Fin 2) (Fin 2) :=
![![conj φ 0 / √(normSq (φ 0) + normSq (φ 1)), conj φ 1 / √(normSq (φ 0) + normSq (φ 1))],
![ - φ 1/ √(normSq (φ 0) + normSq (φ 1)), φ 0 / √(normSq (φ 0) + normSq (φ 1))]]
lemma rotateMatrix_det {φ : Fin 2 → } (hφ : φ ≠ 0) :
det (rotateMatrix φ) = 1 := by
simp [rotateMatrix, det_fin_two]
simp [div_mul_div_comm]
rw [← normSq_eq_conj_mul_self, ← normSq_eq_conj_mul_self]
rw [div_sub_div_same]
simp
have h1 : 0 ≤ (normSq (φ 0)) + (normSq (φ 1)) :=
add_nonneg (normSq_nonneg _) (normSq_nonneg _)
rw [← ofReal_mul]
rw [Real.mul_self_sqrt h1, ofReal_add]
refine div_self ?_
2024-05-03 06:12:59 -04:00
sorry
theorem higgs_rotate (φ : Fin 2 → ) : ∃ (g : guageGroup) (v : ),
(higgsRep g) φ = ![(v : ), 0] := by
sorry
end higgsFields
end
end StandardModel