theorem
proved
ext
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.RecogSpec.ObservablePayloads on GitHub at line 51.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
formal source
48 · intro h
49 exact ⟨h _ (Or.inl rfl), h _ (Or.inr (Or.inl rfl)), h _ (Or.inr (Or.inr rfl))⟩
50
51@[ext] theorem ext {a b : LeptonMassRatios}
52 (h1 : a.mu_over_e = b.mu_over_e)
53 (h2 : a.tau_over_e = b.tau_over_e)
54 (h3 : a.tau_over_mu = b.tau_over_mu) : a = b := by
55 cases a; cases b; simp_all
56
57theorem toList_injective {a b : LeptonMassRatios} (h : a.toList = b.toList) : a = b := by
58 simp only [toList] at h
59 have h1 : a.mu_over_e = b.mu_over_e := List.cons.inj h |>.1
60 have h23 := List.cons.inj h |>.2
61 have h2 : a.tau_over_e = b.tau_over_e := List.cons.inj h23 |>.1
62 have h3 : a.tau_over_mu = b.tau_over_mu := List.cons.inj (List.cons.inj h23 |>.2) |>.1
63 exact ext h1 h2 h3
64
65@[simp] theorem mk_toList (a b c : ℝ) :
66 (⟨a, b, c⟩ : LeptonMassRatios).toList = [a, b, c] := rfl
67
68end LeptonMassRatios
69
70namespace CkmMixingAngles
71
72/-- Canonical list view: `[V_us, V_cb, V_ub]`. -/
73def toList (m : CkmMixingAngles) : List ℝ :=
74 [m.vus, m.vcb, m.vub]
75
76@[simp] theorem toList_length (m : CkmMixingAngles) : m.toList.length = 3 := rfl
77
78/-- Every field satisfies a predicate. -/
79def Forall (P : ℝ → Prop) (m : CkmMixingAngles) : Prop :=
80 P m.vus ∧ P m.vcb ∧ P m.vub
81