2024-04-17 14:25:17 -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-04-17 14:25:17 -04:00
|
|
|
|
Authors: Joseph Tooby-Smith
|
|
|
|
|
-/
|
|
|
|
|
import HepLean.AnomalyCancellation.SM.Basic
|
|
|
|
|
/-!
|
|
|
|
|
# Family maps for the Standard Model ACCs
|
|
|
|
|
|
2024-05-20 00:19:30 +02:00
|
|
|
|
We define the a series of maps between the charges for different numbers of families.
|
2024-04-17 14:25:17 -04:00
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
universe v u
|
|
|
|
|
|
|
|
|
|
namespace SM
|
|
|
|
|
open SMCharges
|
|
|
|
|
open SMACCs
|
|
|
|
|
open BigOperators
|
|
|
|
|
|
|
|
|
|
/-- Given a map of for a generic species, the corresponding map for charges. -/
|
|
|
|
|
@[simps!]
|
2024-06-26 11:54:02 -04:00
|
|
|
|
def chargesMapOfSpeciesMap {n m : ℕ} (f : (SMSpecies n).Charges →ₗ[ℚ] (SMSpecies m).Charges) :
|
|
|
|
|
(SMCharges n).Charges →ₗ[ℚ] (SMCharges m).Charges where
|
2024-04-17 14:25:17 -04:00
|
|
|
|
toFun S := toSpeciesEquiv.symm (fun i => (LinearMap.comp f (toSpecies i)) S)
|
|
|
|
|
map_add' S T := by
|
|
|
|
|
rw [charges_eq_toSpecies_eq]
|
|
|
|
|
intro i
|
|
|
|
|
rw [map_add]
|
|
|
|
|
rw [toSMSpecies_toSpecies_inv, toSMSpecies_toSpecies_inv, toSMSpecies_toSpecies_inv]
|
|
|
|
|
rw [map_add]
|
|
|
|
|
map_smul' a S := by
|
|
|
|
|
rw [charges_eq_toSpecies_eq]
|
|
|
|
|
intro i
|
|
|
|
|
rw [map_smul]
|
|
|
|
|
rw [toSMSpecies_toSpecies_inv, toSMSpecies_toSpecies_inv]
|
|
|
|
|
rw [map_smul]
|
|
|
|
|
rfl
|
|
|
|
|
|
2024-07-12 11:23:02 -04:00
|
|
|
|
/-- The projection of the `m`-family charges onto the first `n`-family charges for species. -/
|
2024-04-17 14:25:17 -04:00
|
|
|
|
@[simps!]
|
|
|
|
|
def speciesFamilyProj {m n : ℕ} (h : n ≤ m) :
|
2024-06-26 11:54:02 -04:00
|
|
|
|
(SMSpecies m).Charges →ₗ[ℚ] (SMSpecies n).Charges where
|
2024-04-17 14:25:17 -04:00
|
|
|
|
toFun S := S ∘ Fin.castLE h
|
2024-08-30 10:11:55 -04:00
|
|
|
|
map_add' _ _ := rfl
|
|
|
|
|
map_smul' _ _ := rfl
|
2024-04-17 14:25:17 -04:00
|
|
|
|
|
2024-07-12 11:23:02 -04:00
|
|
|
|
/-- The projection of the `m`-family charges onto the first `n`-family charges. -/
|
2024-06-26 11:54:02 -04:00
|
|
|
|
def familyProjection {m n : ℕ} (h : n ≤ m) : (SMCharges m).Charges →ₗ[ℚ] (SMCharges n).Charges :=
|
2024-04-17 14:25:17 -04:00
|
|
|
|
chargesMapOfSpeciesMap (speciesFamilyProj h)
|
|
|
|
|
|
|
|
|
|
/-- For species, the embedding of the `m`-family charges onto the `n`-family charges, with all
|
2024-07-12 11:23:02 -04:00
|
|
|
|
other charges zero. -/
|
2024-04-17 14:25:17 -04:00
|
|
|
|
@[simps!]
|
|
|
|
|
def speciesEmbed (m n : ℕ) :
|
2024-06-26 11:54:02 -04:00
|
|
|
|
(SMSpecies m).Charges →ₗ[ℚ] (SMSpecies n).Charges where
|
2024-04-17 14:25:17 -04:00
|
|
|
|
toFun S := fun i =>
|
|
|
|
|
if hi : i.val < m then
|
|
|
|
|
S ⟨i, hi⟩
|
|
|
|
|
else
|
|
|
|
|
0
|
|
|
|
|
map_add' S T := by
|
|
|
|
|
funext i
|
2024-04-17 14:49:59 -04:00
|
|
|
|
simp only [SMSpecies_numberCharges, ACCSystemCharges.chargesAddCommMonoid_add]
|
2024-04-17 14:25:17 -04:00
|
|
|
|
by_cases hi : i.val < m
|
2024-08-21 06:40:58 -04:00
|
|
|
|
· erw [dif_pos hi, dif_pos hi, dif_pos hi]
|
|
|
|
|
· erw [dif_neg hi, dif_neg hi, dif_neg hi]
|
2024-11-02 08:03:04 +00:00
|
|
|
|
with_unfolding_all rfl
|
2024-04-17 14:25:17 -04:00
|
|
|
|
map_smul' a S := by
|
|
|
|
|
funext i
|
2024-09-09 06:01:25 -04:00
|
|
|
|
simp only [SMSpecies_numberCharges, HSMul.hSMul, ACCSystemCharges.chargesModule_smul,
|
|
|
|
|
eq_ratCast, Rat.cast_eq_id, id_eq]
|
2024-04-17 14:25:17 -04:00
|
|
|
|
by_cases hi : i.val < m
|
2024-08-21 06:40:58 -04:00
|
|
|
|
· erw [dif_pos hi, dif_pos hi]
|
|
|
|
|
· erw [dif_neg hi, dif_neg hi]
|
2024-08-30 10:11:55 -04:00
|
|
|
|
exact Eq.symm (Rat.mul_zero a)
|
2024-04-17 14:25:17 -04:00
|
|
|
|
|
|
|
|
|
/-- The embedding of the `m`-family charges onto the `n`-family charges, with all
|
2024-07-12 11:23:02 -04:00
|
|
|
|
other charges zero. -/
|
2024-06-26 11:54:02 -04:00
|
|
|
|
def familyEmbedding (m n : ℕ) : (SMCharges m).Charges →ₗ[ℚ] (SMCharges n).Charges :=
|
2024-04-17 14:25:17 -04:00
|
|
|
|
chargesMapOfSpeciesMap (speciesEmbed m n)
|
|
|
|
|
|
2024-05-20 00:19:30 +02:00
|
|
|
|
/-- For species, the embedding of the `1`-family charges into the `n`-family charges in
|
2025-02-07 15:43:59 +00:00
|
|
|
|
a universal manner. -/
|
2024-04-17 14:25:17 -04:00
|
|
|
|
@[simps!]
|
|
|
|
|
def speciesFamilyUniversial (n : ℕ) :
|
2024-06-26 11:54:02 -04:00
|
|
|
|
(SMSpecies 1).Charges →ₗ[ℚ] (SMSpecies n).Charges where
|
2024-08-30 10:11:55 -04:00
|
|
|
|
toFun S _ := S ⟨0, Nat.zero_lt_succ 0⟩
|
|
|
|
|
map_add' _ _ := rfl
|
|
|
|
|
map_smul' _ _ := rfl
|
2024-04-17 14:25:17 -04:00
|
|
|
|
|
2024-05-20 00:19:30 +02:00
|
|
|
|
/-- The embedding of the `1`-family charges into the `n`-family charges in
|
2025-02-07 15:43:59 +00:00
|
|
|
|
a universal manner. -/
|
2024-07-12 16:22:06 -04:00
|
|
|
|
def familyUniversal (n : ℕ) : (SMCharges 1).Charges →ₗ[ℚ] (SMCharges n).Charges :=
|
2024-04-17 14:25:17 -04:00
|
|
|
|
chargesMapOfSpeciesMap (speciesFamilyUniversial n)
|
|
|
|
|
|
|
|
|
|
end SM
|