structure
definition
Interval
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Recognition.Certification on GitHub at line 11.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
comma_small -
bcs_ratio_approx -
Uncertainty -
octave_is_two -
superparticular_gt_one -
TailFluxVanishImpliesCoerciveHypothesisAt -
ProjectedPDEPairingHypothesisAt -
add -
add_contains_add -
add_hi -
add_lo -
contains -
contains_point -
hi_le_implies_contains_le -
hi_lt_implies_contains_lt -
Interval -
lo_ge_implies_contains_ge -
lo_gt_implies_contains_gt -
mk' -
mulPos -
mulPos_contains_mul -
neg -
neg_contains_neg -
neg_hi -
neg_lo -
npow -
npow_contains_pow -
point -
smulPos -
smulPos_contains_smul -
sub -
sub_contains_sub -
sub_hi -
sub_lo -
e_in_eInterval -
eInterval -
expIntervalSimple -
expIntervalSimple_contains_exp -
phi_lo_pos -
phi_pow_102_interval
formal source
8open Classical
9
10/-- Closed interval with endpoints `lo ≤ hi`. -/
11structure Interval where
12 lo : ℝ
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