lemma
proved
abs_sub_le_width_of_memI
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Recognition.Certification on GitHub at line 21.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
18@[simp] def width (I : Interval) : ℝ := I.hi - I.lo
19
20/-- If `x,y` lie in the same interval `I`, then `|x − y| ≤ width(I)`. -/
21lemma abs_sub_le_width_of_memI {I : Interval} {x y : ℝ}
22 (hx : memI I x) (hy : memI I y) : |x - y| ≤ width I := by
23 have : I.lo ≤ x ∧ x ≤ I.hi := hx
24 have : I.lo ≤ y ∧ y ≤ I.hi := hy
25 have : x - y ≤ I.hi - I.lo := by linarith
26 have : y - x ≤ I.hi - I.lo := by linarith
27 have : -(I.hi - I.lo) ≤ x - y ∧ x - y ≤ I.hi - I.lo := by
28 constructor
29 · linarith
30 · linarith
31 simpa [width, abs_le] using this
32
33/-! ## Certificate schema -/
34
35/-- Anchor certificate: per-species residue intervals plus charge-wise gap intervals. -/
36structure AnchorCert (Species : Type) where
37 M0 : Interval
38 Ires : Species → Interval
39 center : Int → ℝ
40 eps : Int → ℝ
41 eps_nonneg : ∀ z, 0 ≤ eps z
42
43@[simp] def Igap {Species : Type} (C : AnchorCert Species) (z : Int) : Interval :=
44{ lo := C.center z - C.eps z
45, hi := C.center z + C.eps z
46, lo_le_hi := by have := C.eps_nonneg z; linarith }
47
48/-- Validity of a certificate w.r.t. a charge map `Z` and display function `Fgap`. -/
49structure Valid {Species : Type} (Z : Species → Int) (Fgap : Int → ℝ) (C : AnchorCert Species) : Prop where
50 M0_pos : 0 < C.M0.lo
51 Fgap_in : ∀ i : Species, memI (Igap C (Z i)) (Fgap (Z i))