def
definition
memI
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Recognition.Certification on GitHub at line 16.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
13 hi : ℝ
14 lo_le_hi : lo ≤ hi
15
16@[simp] def memI (I : Interval) (x : ℝ) : Prop := I.lo ≤ x ∧ x ≤ I.hi
17
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 }