pith. machine review for the scientific record. sign in
def

Forall

definition
show as:
view math explainer →
module
IndisputableMonolith.RecogSpec.ObservablePayloads
domain
RecogSpec
line
40 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.RecogSpec.ObservablePayloads on GitHub at line 40.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  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
  65@[simp] theorem mk_toList (a b c : ℝ) :
  66    (⟨a, b, c⟩ : LeptonMassRatios).toList = [a, b, c] := rfl
  67
  68end LeptonMassRatios
  69
  70namespace CkmMixingAngles