2024-06-07 14:37:09 -04:00
|
|
|
|
/-
|
|
|
|
|
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
|
2024-07-12 16:39:44 -04:00
|
|
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
2024-06-07 14:37:09 -04:00
|
|
|
|
Authors: Joseph Tooby-Smith
|
|
|
|
|
-/
|
2024-07-10 11:34:34 -04:00
|
|
|
|
import HepLean.StandardModel.HiggsBoson.Potential
|
2024-06-07 14:40:28 -04:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
# The Two Higgs Doublet Model
|
|
|
|
|
|
|
|
|
|
The two Higgs doublet model is the standard model plus an additional Higgs doublet.
|
|
|
|
|
|
2024-06-08 01:50:39 +02:00
|
|
|
|
Currently this file contains the definition of the 2HDM potential.
|
2024-06-07 14:40:28 -04:00
|
|
|
|
|
|
|
|
|
-/
|
2024-06-07 14:37:09 -04:00
|
|
|
|
|
|
|
|
|
namespace TwoHDM
|
|
|
|
|
|
|
|
|
|
open StandardModel
|
|
|
|
|
open ComplexConjugate
|
2024-07-09 09:27:28 -04:00
|
|
|
|
open HiggsField
|
2024-06-07 14:37:09 -04:00
|
|
|
|
|
|
|
|
|
noncomputable section
|
|
|
|
|
|
2024-09-11 06:22:59 -04:00
|
|
|
|
/-- The parameters of the Two Higgs doublet model potential. -/
|
|
|
|
|
structure Potential where
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `m₁₁²` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
m₁₁2 : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `m₂₂²` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
m₂₂2 : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `m₁₂²` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
m₁₂2 : ℂ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₁` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₁ : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₂` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₂ : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₃` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₃ : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₄` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₄ : ℝ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₅` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₅ : ℂ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₆` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₆ : ℂ
|
2024-09-11 06:31:36 -04:00
|
|
|
|
/-- The parameter corresponding to `λ₇` in the 2HDM potential. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
𝓵₇ : ℂ
|
|
|
|
|
|
|
|
|
|
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 =
|
2024-09-12 11:02:09 -04:00
|
|
|
|
(HiggsField.Potential.mk (- P.m₁₁2) (P.𝓵₁/2)).toFun Φ1 := by
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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,
|
2024-09-12 11:02:09 -04:00
|
|
|
|
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]
|
2024-09-11 06:22:59 -04:00
|
|
|
|
ring_nf
|
|
|
|
|
simp only [true_or]
|
|
|
|
|
|
|
|
|
|
/-- If `Φ₁` is zero the potential reduces to the Higgs potential on `Φ₂`. -/
|
|
|
|
|
lemma left_zero : P.toFun 0 Φ2 =
|
2024-09-12 11:02:09 -04:00
|
|
|
|
(HiggsField.Potential.mk (- P.m₂₂2) (P.𝓵₂/2)).toFun Φ2 := by
|
2024-09-11 06:22:59 -04:00
|
|
|
|
rw [swap_fields, right_zero]
|
|
|
|
|
|
|
|
|
|
/-- Negating `Φ₁` is equivalent to negating `m₁₂2`, `𝓵₆` and `𝓵₇`. -/
|
|
|
|
|
lemma neg_left : P.toFun (- Φ1) Φ2
|
2024-09-11 06:31:36 -04:00
|
|
|
|
= (Potential.mk P.m₁₁2 P.m₂₂2 (- P.m₁₂2) P.𝓵₁ P.𝓵₂ P.𝓵₃ P.𝓵₄ P.𝓵₅ (- P.𝓵₆) (- P.𝓵₇)).toFun
|
2024-09-11 06:22:59 -04:00
|
|
|
|
Φ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 `𝓵₇`. -/
|
2024-09-11 06:31:36 -04:00
|
|
|
|
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
|
2024-09-11 06:22:59 -04:00
|
|
|
|
Φ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 =
|
2024-09-12 11:02:09 -04:00
|
|
|
|
(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
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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,
|
2024-09-12 11:02:09 -04:00
|
|
|
|
sub_add_add_cancel, zero_add, HiggsField.Potential.toFun, neg_add_rev, neg_sub]
|
2024-09-11 06:22:59 -04:00
|
|
|
|
ring_nf
|
|
|
|
|
erw [show ((Complex.ofReal ‖Φ1 x‖) ^ 4).re = ‖Φ1 x‖ ^ 4 by
|
|
|
|
|
erw [← Complex.ofReal_pow]; rfl]
|
|
|
|
|
ring
|
|
|
|
|
|
|
|
|
|
lemma left_eq_neg_right : P.toFun Φ1 (- Φ1) =
|
2024-09-12 11:02:09 -04:00
|
|
|
|
(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
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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.
|
2024-09-26 09:32:17 +00:00
|
|
|
|
See e.g. https://inspirehep.net/literature/201299 and
|
|
|
|
|
https://arxiv.org/pdf/hep-ph/0605184. -/
|
2024-09-11 06:22:59 -04:00
|
|
|
|
|
|
|
|
|
/-- 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) :
|
2024-09-12 11:08:41 -04:00
|
|
|
|
(HiggsField.Potential.mk (- P.m₁₁2) (P.𝓵₁/2)).IsBounded := by
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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) :
|
2024-09-12 11:02:09 -04:00
|
|
|
|
(HiggsField.Potential.mk (- P.m₂₂2) (P.𝓵₂/2)).IsBounded := by
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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
|
2024-09-12 11:02:09 -04:00
|
|
|
|
have h2 := HiggsField.Potential.isBounded_𝓵_nonneg _ h1
|
|
|
|
|
simp only at h2
|
2024-09-11 06:22:59 -04:00
|
|
|
|
linarith
|
|
|
|
|
|
|
|
|
|
lemma isBounded_𝓵₂_nonneg (h : P.IsBounded) :
|
|
|
|
|
0 ≤ P.𝓵₂ := by
|
|
|
|
|
have h1 := isBounded_left_zero h
|
2024-09-12 11:02:09 -04:00
|
|
|
|
have h2 := HiggsField.Potential.isBounded_𝓵_nonneg _ h1
|
|
|
|
|
simp only at h2
|
2024-09-11 06:22:59 -04:00
|
|
|
|
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
|
2024-09-12 11:02:09 -04:00
|
|
|
|
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
|
2024-09-11 06:22:59 -04:00
|
|
|
|
|
|
|
|
|
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
|
2024-09-12 11:02:09 -04:00
|
|
|
|
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
|
2024-09-11 06:22:59 -04:00
|
|
|
|
|
2024-09-11 15:15:36 -04:00
|
|
|
|
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
|
|
|
|
|
|
2024-09-11 06:22:59 -04:00
|
|
|
|
end IsBounded
|
|
|
|
|
|
|
|
|
|
end Potential
|
|
|
|
|
|
2024-06-07 14:37:09 -04:00
|
|
|
|
end
|
|
|
|
|
end TwoHDM
|