def
definition
toList
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.RecogSpec.ObservablePayloads on GitHub at line 34.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
LedgerComputation -
Turing_incomplete -
cubicHinges -
regge_sum_cubicHinges -
singletonHinge_product -
primeEulerEvent_mem_sensorEulerLedger -
reciprocal_primeEulerEvent_mem_sensorEulerLedger -
sensorEulerLedger -
sensorEulerLedger_balanced -
sensorEulerLedger_cost_formula -
sensorEulerLedger_identification -
sensorEulerLedger_net_flow_zero -
DirectedEulerLedgerSystem -
filter_map_weight_sum -
list_map_sum_eq_finset_sum -
stateToLedger -
forall_iff_list -
forall_iff_list -
mk_toList -
mk_toList -
toList_injective -
toList_injective -
toList_length -
toList_length -
jmonotone_report_json -
lnal_manifest_json -
previewNatArray
formal source
31namespace LeptonMassRatios
32
33/-- Canonical list view: `[μ/e, τ/e, τ/μ]`. -/
34def toList (m : LeptonMassRatios) : List ℝ :=
35 [m.mu_over_e, m.tau_over_e, m.tau_over_mu]
36
37@[simp] theorem toList_length (m : LeptonMassRatios) : m.toList.length = 3 := rfl
38
39/-- Every field satisfies a predicate. -/
40def Forall (P : ℝ → Prop) (m : LeptonMassRatios) : Prop :=
41 P m.mu_over_e ∧ P m.tau_over_e ∧ P m.tau_over_mu
42
43theorem forall_iff_list (P : ℝ → Prop) (m : LeptonMassRatios) :
44 m.Forall P ↔ ∀ r ∈ m.toList, P r := by
45 simp only [Forall, toList, List.mem_cons, List.mem_nil_iff, or_false]
46 constructor
47 · rintro ⟨h1, h2, h3⟩ r (rfl | rfl | rfl) <;> assumption
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