222 lines
9.3 KiB
Text
222 lines
9.3 KiB
Text
/-
|
||
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
|
||
Released under Apache 2.0 license as described in the file LICENSE.
|
||
Authors: Joseph Tooby-Smith
|
||
-/
|
||
import HepLean.StandardModel.HiggsBoson.Potential
|
||
/-!
|
||
|
||
# The Two Higgs Doublet Model
|
||
|
||
The two Higgs doublet model is the standard model plus an additional Higgs doublet.
|
||
|
||
Currently this file contains the definition of the 2HDM potential.
|
||
|
||
-/
|
||
|
||
namespace TwoHDM
|
||
|
||
open StandardModel
|
||
open ComplexConjugate
|
||
open HiggsField
|
||
|
||
noncomputable section
|
||
|
||
/-- The parameters of the Two Higgs doublet model potential. -/
|
||
structure Potential where
|
||
/-- The parameter corresponding to `m₁₁²` in the 2HDM potential. -/
|
||
m₁₁2 : ℝ
|
||
/-- The parameter corresponding to `m₂₂²` in the 2HDM potential. -/
|
||
m₂₂2 : ℝ
|
||
/-- The parameter corresponding to `m₁₂²` in the 2HDM potential. -/
|
||
m₁₂2 : ℂ
|
||
/-- The parameter corresponding to `λ₁` in the 2HDM potential. -/
|
||
𝓵₁ : ℝ
|
||
/-- The parameter corresponding to `λ₂` in the 2HDM potential. -/
|
||
𝓵₂ : ℝ
|
||
/-- The parameter corresponding to `λ₃` in the 2HDM potential. -/
|
||
𝓵₃ : ℝ
|
||
/-- The parameter corresponding to `λ₄` in the 2HDM potential. -/
|
||
𝓵₄ : ℝ
|
||
/-- The parameter corresponding to `λ₅` in the 2HDM potential. -/
|
||
𝓵₅ : ℂ
|
||
/-- The parameter corresponding to `λ₆` in the 2HDM potential. -/
|
||
𝓵₆ : ℂ
|
||
/-- The parameter corresponding to `λ₇` in the 2HDM potential. -/
|
||
𝓵₇ : ℂ
|
||
|
||
namespace Potential
|
||
|
||
variable (P : Potential) (Φ1 Φ2 : HiggsField)
|
||
|
||
/-- The potential of the two Higgs doublet model. -/
|
||
def toFun (Φ1 Φ2 : HiggsField) (x : SpaceTime) : ℝ :=
|
||
P.m₁₁2 * ‖Φ1‖_H ^ 2 x + P.m₂₂2 * ‖Φ2‖_H ^ 2 x -
|
||
(P.m₁₂2 * ⟪Φ1, Φ2⟫_H x + conj P.m₁₂2 * ⟪Φ2, Φ1⟫_H x).re
|
||
+ 1/2 * P.𝓵₁ * ‖Φ1‖_H ^ 2 x * ‖Φ1‖_H ^ 2 x + 1/2 * P.𝓵₂ * ‖Φ2‖_H ^ 2 x * ‖Φ2‖_H ^ 2 x
|
||
+ P.𝓵₃ * ‖Φ1‖_H ^ 2 x * ‖Φ2‖_H ^ 2 x
|
||
+ P.𝓵₄ * ‖⟪Φ1, Φ2⟫_H x‖ ^ 2
|
||
+ (1/2 * P.𝓵₅ * ⟪Φ1, Φ2⟫_H x ^ 2 + 1/2 * conj P.𝓵₅ * ⟪Φ2, Φ1⟫_H x ^ 2).re
|
||
+ (P.𝓵₆ * ‖Φ1‖_H ^ 2 x * ⟪Φ1, Φ2⟫_H x + conj P.𝓵₆ * ‖Φ1‖_H ^ 2 x * ⟪Φ2, Φ1⟫_H x).re
|
||
+ (P.𝓵₇ * ‖Φ2‖_H ^ 2 x * ⟪Φ1, Φ2⟫_H x + conj P.𝓵₇ * ‖Φ2‖_H ^ 2 x * ⟪Φ2, Φ1⟫_H x).re
|
||
|
||
/-- The potential where all parameters are zero. -/
|
||
def zero : Potential := ⟨0, 0, 0, 0, 0, 0, 0, 0, 0, 0⟩
|
||
|
||
lemma swap_fields : P.toFun Φ1 Φ2 =
|
||
(Potential.mk P.m₂₂2 P.m₁₁2 (conj P.m₁₂2) P.𝓵₂ P.𝓵₁ P.𝓵₃ P.𝓵₄
|
||
(conj P.𝓵₅) (conj P.𝓵₇) (conj P.𝓵₆)).toFun Φ2 Φ1 := by
|
||
funext x
|
||
simp only [toFun, normSq, Complex.add_re, Complex.mul_re, Complex.conj_re, Complex.conj_im,
|
||
neg_mul, sub_neg_eq_add, one_div, Complex.norm_eq_abs, Complex.inv_re, Complex.re_ofNat,
|
||
Complex.normSq_ofNat, div_self_mul_self', Complex.inv_im, Complex.im_ofNat, neg_zero, zero_div,
|
||
zero_mul, sub_zero, Complex.mul_im, add_zero, mul_neg, Complex.ofReal_pow, normSq_apply_re_self,
|
||
normSq_apply_im_zero, mul_zero, zero_add, RingHomCompTriple.comp_apply, RingHom.id_apply]
|
||
ring_nf
|
||
simp only [one_div, add_left_inj, add_right_inj, mul_eq_mul_left_iff]
|
||
apply Or.inl
|
||
rw [HiggsField.innerProd, HiggsField.innerProd, ← InnerProductSpace.conj_symm, Complex.abs_conj]
|
||
|
||
/-- If `Φ₂` is zero the potential reduces to the Higgs potential on `Φ₁`. -/
|
||
lemma right_zero : P.toFun Φ1 0 =
|
||
(HiggsField.Potential.mk (- P.m₁₁2) (P.𝓵₁/2)).toFun Φ1 := by
|
||
funext x
|
||
simp only [toFun, normSq, ContMDiffSection.coe_zero, Pi.zero_apply, norm_zero, ne_eq,
|
||
OfNat.ofNat_ne_zero, not_false_eq_true, zero_pow, mul_zero, add_zero, innerProd_right_zero,
|
||
innerProd_left_zero, Complex.zero_re, sub_zero, one_div, Complex.ofReal_pow,
|
||
Complex.ofReal_zero, neg_neg, add_right_inj, mul_eq_mul_right_iff, pow_eq_zero_iff,
|
||
norm_eq_zero, HiggsField.Potential.toFun, or_self_right]
|
||
ring_nf
|
||
simp only [true_or]
|
||
|
||
/-- If `Φ₁` is zero the potential reduces to the Higgs potential on `Φ₂`. -/
|
||
lemma left_zero : P.toFun 0 Φ2 =
|
||
(HiggsField.Potential.mk (- P.m₂₂2) (P.𝓵₂/2)).toFun Φ2 := by
|
||
rw [swap_fields, right_zero]
|
||
|
||
/-- Negating `Φ₁` is equivalent to negating `m₁₂2`, `𝓵₆` and `𝓵₇`. -/
|
||
lemma neg_left : P.toFun (- Φ1) Φ2
|
||
= (Potential.mk P.m₁₁2 P.m₂₂2 (- P.m₁₂2) P.𝓵₁ P.𝓵₂ P.𝓵₃ P.𝓵₄ P.𝓵₅ (- P.𝓵₆) (- P.𝓵₇)).toFun
|
||
Φ1 Φ2 := by
|
||
funext x
|
||
simp only [toFun, normSq, ContMDiffSection.coe_neg, Pi.neg_apply, norm_neg,
|
||
innerProd_neg_left, mul_neg, innerProd_neg_right, Complex.add_re, Complex.neg_re,
|
||
Complex.mul_re, neg_sub, Complex.conj_re, Complex.conj_im, neg_mul, sub_neg_eq_add, neg_add_rev,
|
||
one_div, Complex.norm_eq_abs, even_two, Even.neg_pow, Complex.inv_re, Complex.re_ofNat,
|
||
Complex.normSq_ofNat, div_self_mul_self', Complex.inv_im, Complex.im_ofNat, neg_zero, zero_div,
|
||
zero_mul, sub_zero, Complex.mul_im, add_zero, Complex.ofReal_pow, map_neg]
|
||
|
||
/-- Negating `Φ₁` is equivalent to negating `m₁₂2`, `𝓵₆` and `𝓵₇`. -/
|
||
lemma neg_right : P.toFun Φ1 (- Φ2)
|
||
= (Potential.mk P.m₁₁2 P.m₂₂2 (- P.m₁₂2) P.𝓵₁ P.𝓵₂ P.𝓵₃ P.𝓵₄ P.𝓵₅ (- P.𝓵₆) (- P.𝓵₇)).toFun
|
||
Φ1 Φ2 := by
|
||
rw [swap_fields, neg_left, swap_fields]
|
||
simp only [map_neg, RingHomCompTriple.comp_apply, RingHom.id_apply]
|
||
|
||
lemma left_eq_right : P.toFun Φ1 Φ1 =
|
||
(HiggsField.Potential.mk (- P.m₁₁2 - P.m₂₂2 + 2 * P.m₁₂2.re)
|
||
(P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re + 2 * P.𝓵₆.re + 2 * P.𝓵₇.re)).toFun Φ1 := by
|
||
funext x
|
||
simp only [toFun, normSq, innerProd_self_eq_normSq, Complex.ofReal_pow, Complex.add_re,
|
||
Complex.mul_re, normSq_apply_re_self, normSq_apply_im_zero, mul_zero, sub_zero, Complex.conj_re,
|
||
Complex.conj_im, one_div, norm_pow, Complex.norm_real, norm_norm, Complex.inv_re,
|
||
Complex.re_ofNat, Complex.normSq_ofNat, div_self_mul_self', Complex.inv_im, Complex.im_ofNat,
|
||
neg_zero, zero_div, zero_mul, Complex.mul_im, add_zero, mul_neg, neg_mul, sub_neg_eq_add,
|
||
sub_add_add_cancel, zero_add, HiggsField.Potential.toFun, neg_add_rev, neg_sub]
|
||
ring_nf
|
||
erw [show ((Complex.ofRealHom ‖Φ1 x‖) ^ 4).re = ‖Φ1 x‖ ^ 4 by
|
||
erw [← Complex.ofReal_pow]; rfl]
|
||
erw [show ((Complex.ofRealHom ‖Φ1 x‖) ^ 2).re = ‖Φ1 x‖ ^ 2 by
|
||
erw [← Complex.ofReal_pow]; rfl]
|
||
erw [show (Complex.ofRealHom ‖Φ1 x‖ ^ 2).im = 0 by exact normSq_apply_im_zero Φ1 x]
|
||
ring
|
||
|
||
lemma left_eq_neg_right : P.toFun Φ1 (- Φ1) =
|
||
(HiggsField.Potential.mk (- P.m₁₁2 - P.m₂₂2 - 2 * P.m₁₂2.re)
|
||
(P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re - 2 * P.𝓵₆.re - 2 * P.𝓵₇.re)).toFun Φ1 := by
|
||
rw [neg_right, left_eq_right]
|
||
simp_all only [Complex.neg_re, mul_neg]
|
||
rfl
|
||
|
||
/-!
|
||
|
||
## Potential bounded from below
|
||
|
||
-/
|
||
|
||
/-! TODO: Prove bounded properties of the 2HDM potential.
|
||
See e.g. https://inspirehep.net/literature/201299 and
|
||
https://arxiv.org/pdf/hep-ph/0605184. -/
|
||
|
||
/-- The proposition on the coefficents for a potential to be bounded. -/
|
||
def IsBounded : Prop :=
|
||
∃ c, ∀ Φ1 Φ2 x, c ≤ P.toFun Φ1 Φ2 x
|
||
|
||
section IsBounded
|
||
|
||
variable {P : Potential}
|
||
|
||
lemma isBounded_right_zero (h : P.IsBounded) :
|
||
(HiggsField.Potential.mk (- P.m₁₁2) (P.𝓵₁/2)).IsBounded := by
|
||
obtain ⟨c, hc⟩ := h
|
||
use c
|
||
intro Φ x
|
||
have hc1 := hc Φ 0 x
|
||
rw [right_zero] at hc1
|
||
exact hc1
|
||
|
||
lemma isBounded_left_zero (h : P.IsBounded) :
|
||
(HiggsField.Potential.mk (- P.m₂₂2) (P.𝓵₂/2)).IsBounded := by
|
||
obtain ⟨c, hc⟩ := h
|
||
use c
|
||
intro Φ x
|
||
have hc1 := hc 0 Φ x
|
||
rw [left_zero] at hc1
|
||
exact hc1
|
||
|
||
lemma isBounded_𝓵₁_nonneg (h : P.IsBounded) :
|
||
0 ≤ P.𝓵₁ := by
|
||
have h1 := isBounded_right_zero h
|
||
have h2 := HiggsField.Potential.isBounded_𝓵_nonneg _ h1
|
||
simp only at h2
|
||
linarith
|
||
|
||
lemma isBounded_𝓵₂_nonneg (h : P.IsBounded) :
|
||
0 ≤ P.𝓵₂ := by
|
||
have h1 := isBounded_left_zero h
|
||
have h2 := HiggsField.Potential.isBounded_𝓵_nonneg _ h1
|
||
simp only at h2
|
||
linarith
|
||
|
||
lemma isBounded_of_left_eq_right (h : P.IsBounded) :
|
||
0 ≤ P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re + 2 * P.𝓵₆.re + 2 * P.𝓵₇.re := by
|
||
obtain ⟨c, hc⟩ := h
|
||
refine (HiggsField.Potential.mk (- P.m₁₁2 - P.m₂₂2 + 2 * P.m₁₂2.re)
|
||
(P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re + 2 * P.𝓵₆.re + 2 * P.𝓵₇.re)).isBounded_𝓵_nonneg
|
||
⟨c, fun Φ x => ?_⟩
|
||
have hc1 := hc Φ Φ x
|
||
rw [left_eq_right] at hc1
|
||
exact hc1
|
||
|
||
lemma isBounded_of_left_eq_neg_right (h : P.IsBounded) :
|
||
0 ≤ P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re - 2 * P.𝓵₆.re - 2 * P.𝓵₇.re := by
|
||
obtain ⟨c, hc⟩ := h
|
||
refine (HiggsField.Potential.mk (- P.m₁₁2 - P.m₂₂2 - 2 * P.m₁₂2.re)
|
||
(P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re - 2 * P.𝓵₆.re - 2 * P.𝓵₇.re)).isBounded_𝓵_nonneg
|
||
⟨c, fun Φ x => ?_⟩
|
||
have hc1 := hc Φ (- Φ) x
|
||
rw [left_eq_neg_right] at hc1
|
||
exact hc1
|
||
|
||
lemma nonneg_sum_𝓵₁_to_𝓵₅_of_isBounded (h : P.IsBounded) :
|
||
0 ≤ P.𝓵₁/2 + P.𝓵₂/2 + P.𝓵₃ + P.𝓵₄ + P.𝓵₅.re := by
|
||
have h1 := isBounded_of_left_eq_neg_right h
|
||
have h2 := isBounded_of_left_eq_right h
|
||
linarith
|
||
|
||
end IsBounded
|
||
|
||
end Potential
|
||
|
||
end
|
||
end TwoHDM
|