structure
definition
Interval
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Numerics.Interval.Basic on GitHub at line 16.
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 -
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 -
phi_pow_140_interval
formal source
13namespace IndisputableMonolith.Numerics
14
15/-- A closed interval with rational endpoints. -/
16structure Interval where
17 lo : ℚ
18 hi : ℚ
19 valid : lo ≤ hi
20 deriving DecidableEq
21
22namespace Interval
23
24/-- Containment: a real number x is in interval I if lo ≤ x ≤ hi -/
25def contains (I : Interval) (x : ℝ) : Prop :=
26 (I.lo : ℝ) ≤ x ∧ x ≤ (I.hi : ℝ)
27
28/-- Point interval containing a single rational -/
29def point (q : ℚ) : Interval where
30 lo := q
31 hi := q
32 valid := le_refl q
33
34theorem contains_point (q : ℚ) : (point q).contains (q : ℝ) :=
35 ⟨le_refl _, le_refl _⟩
36
37/-- Interval from explicit bounds -/
38def mk' (lo hi : ℚ) (h : lo ≤ hi := by decide) : Interval where
39 lo := lo
40 hi := hi
41 valid := h
42
43/-! ## Interval Arithmetic Operations -/
44
45/-- Addition of intervals: [a,b] + [c,d] = [a+c, b+d] -/
46def add (I J : Interval) : Interval where