Imports
/-
Copyright (c) 2026 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.Particles.BeyondTheStandardModel.TwoHDM.BasicThe Module structure on the two Higgs doublet model
@[expose] public sectionThe structure of a module
instance : Add TwoHiggsDoublet where
add H1 H2 := { Φ1 := H1.Φ1 + H2.Φ1, Φ2 := H1.Φ2 + H2.Φ2 }@[simp]
lemma add_fst (H1 H2 : TwoHiggsDoublet) : (H1 + H2).Φ1 = H1.Φ1 + H2.Φ1 := rfl@[simp]
lemma add_snd (H1 H2 : TwoHiggsDoublet) : (H1 + H2).Φ2 = H1.Φ2 + H2.Φ2 := rflinstance : Zero TwoHiggsDoublet where
zero := { Φ1 := 0, Φ2 := 0 }@[simp]
lemma zero_fst : (0 : TwoHiggsDoublet).Φ1 = 0 := rfl@[simp]
lemma zero_snd : (0 : TwoHiggsDoublet).Φ2 = 0 := rflinstance : SMul ℂ TwoHiggsDoublet where
smul c H := { Φ1 := c • H.Φ1, Φ2 := c • H.Φ2 }@[simp]
lemma smul_fst (c : ℂ) (H : TwoHiggsDoublet) : (c • H).Φ1 = c • H.Φ1 := rfl@[simp]
lemma smul_snd (c : ℂ) (H : TwoHiggsDoublet) : (c • H).Φ2 = c • H.Φ2 := rflinstance : Neg TwoHiggsDoublet where
neg H := { Φ1 := -H.Φ1, Φ2 := -H.Φ2 }@[simp]
lemma neg_fst (H : TwoHiggsDoublet) : (-H).Φ1 = -H.Φ1 := rfl@[simp]
lemma neg_snd (H : TwoHiggsDoublet) : (-H).Φ2 = -H.Φ2 := rflinstance : AddCommGroup TwoHiggsDoublet where
add_assoc H1 H2 H3 := H1:TwoHiggsDoubletH2:TwoHiggsDoubletH3:TwoHiggsDoublet⊢ H1 + H2 + H3 = H1 + (H2 + H3)
H1:TwoHiggsDoubletH2:TwoHiggsDoubletH3:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2 + H3).Φ1.ofLp i✝ = (H1 + (H2 + H3)).Φ1.ofLp i✝H1:TwoHiggsDoubletH2:TwoHiggsDoubletH3:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2 + H3).Φ2.ofLp i✝ = (H1 + (H2 + H3)).Φ2.ofLp i✝ H1:TwoHiggsDoubletH2:TwoHiggsDoubletH3:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2 + H3).Φ1.ofLp i✝ = (H1 + (H2 + H3)).Φ1.ofLp i✝H1:TwoHiggsDoubletH2:TwoHiggsDoubletH3:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2 + H3).Φ2.ofLp i✝ = (H1 + (H2 + H3)).Φ2.ofLp i✝ All goals completed! 🐙
zero_add H := H:TwoHiggsDoublet⊢ 0 + H = H
H:TwoHiggsDoubleti✝:Fin 2⊢ (0 + H).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (0 + H).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ H:TwoHiggsDoubleti✝:Fin 2⊢ (0 + H).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (0 + H).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ All goals completed! 🐙
add_zero H := H:TwoHiggsDoublet⊢ H + 0 = H
H:TwoHiggsDoubleti✝:Fin 2⊢ (H + 0).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (H + 0).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ H:TwoHiggsDoubleti✝:Fin 2⊢ (H + 0).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (H + 0).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ All goals completed! 🐙
nsmul := nsmulRec
add_comm H1 H2 := H1:TwoHiggsDoubletH2:TwoHiggsDoublet⊢ H1 + H2 = H2 + H1
H1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2).Φ1.ofLp i✝ = (H2 + H1).Φ1.ofLp i✝H1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2).Φ2.ofLp i✝ = (H2 + H1).Φ2.ofLp i✝ H1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2).Φ1.ofLp i✝ = (H2 + H1).Φ1.ofLp i✝H1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (H1 + H2).Φ2.ofLp i✝ = (H2 + H1).Φ2.ofLp i✝ All goals completed! 🐙
zsmul := zsmulRec
neg_add_cancel H := H:TwoHiggsDoublet⊢ -H + H = 0
H:TwoHiggsDoubleti✝:Fin 2⊢ (-H + H).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (-H + H).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ H:TwoHiggsDoubleti✝:Fin 2⊢ (-H + H).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (-H + H).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ All goals completed! 🐙instance : Module ℂ TwoHiggsDoublet where
smul_add c H1 H2 := c:ℂH1:TwoHiggsDoubletH2:TwoHiggsDoublet⊢ c • (H1 + H2) = c • H1 + c • H2
c:ℂH1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (c • (H1 + H2)).Φ1.ofLp i✝ = (c • H1 + c • H2).Φ1.ofLp i✝c:ℂH1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (c • (H1 + H2)).Φ2.ofLp i✝ = (c • H1 + c • H2).Φ2.ofLp i✝ c:ℂH1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (c • (H1 + H2)).Φ1.ofLp i✝ = (c • H1 + c • H2).Φ1.ofLp i✝c:ℂH1:TwoHiggsDoubletH2:TwoHiggsDoubleti✝:Fin 2⊢ (c • (H1 + H2)).Φ2.ofLp i✝ = (c • H1 + c • H2).Φ2.ofLp i✝ All goals completed! 🐙
add_smul c1 c2 H := c1:ℂc2:ℂH:TwoHiggsDoublet⊢ (c1 + c2) • H = c1 • H + c2 • H
c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 + c2) • H).Φ1.ofLp i✝ = (c1 • H + c2 • H).Φ1.ofLp i✝c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 + c2) • H).Φ2.ofLp i✝ = (c1 • H + c2 • H).Φ2.ofLp i✝ c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 + c2) • H).Φ1.ofLp i✝ = (c1 • H + c2 • H).Φ1.ofLp i✝c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 + c2) • H).Φ2.ofLp i✝ = (c1 • H + c2 • H).Φ2.ofLp i✝ All goals completed! 🐙
one_smul H := H:TwoHiggsDoublet⊢ 1 • H = H
H:TwoHiggsDoubleti✝:Fin 2⊢ (1 • H).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (1 • H).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ H:TwoHiggsDoubleti✝:Fin 2⊢ (1 • H).Φ1.ofLp i✝ = H.Φ1.ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (1 • H).Φ2.ofLp i✝ = H.Φ2.ofLp i✝ All goals completed! 🐙
mul_smul c1 c2 H := c1:ℂc2:ℂH:TwoHiggsDoublet⊢ (c1 * c2) • H = c1 • c2 • H
c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 * c2) • H).Φ1.ofLp i✝ = (c1 • c2 • H).Φ1.ofLp i✝c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 * c2) • H).Φ2.ofLp i✝ = (c1 • c2 • H).Φ2.ofLp i✝ c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 * c2) • H).Φ1.ofLp i✝ = (c1 • c2 • H).Φ1.ofLp i✝c1:ℂc2:ℂH:TwoHiggsDoubleti✝:Fin 2⊢ ((c1 * c2) • H).Φ2.ofLp i✝ = (c1 • c2 • H).Φ2.ofLp i✝ All goals completed! 🐙
smul_zero c := c:ℂ⊢ c • 0 = 0
c:ℂi✝:Fin 2⊢ (c • 0).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝c:ℂi✝:Fin 2⊢ (c • 0).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ c:ℂi✝:Fin 2⊢ (c • 0).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝c:ℂi✝:Fin 2⊢ (c • 0).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ All goals completed! 🐙
zero_smul H := H:TwoHiggsDoublet⊢ 0 • H = 0
H:TwoHiggsDoubleti✝:Fin 2⊢ (0 • H).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (0 • H).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ H:TwoHiggsDoubleti✝:Fin 2⊢ (0 • H).Φ1.ofLp i✝ = (Φ1 0).ofLp i✝H:TwoHiggsDoubleti✝:Fin 2⊢ (0 • H).Φ2.ofLp i✝ = (Φ2 0).ofLp i✝ All goals completed! 🐙