theorem
Std.Range.numElems_stop_le_start
(r : Std.Range)
:
r.stop ≤ r.start → Std.Range.numElems r = 0
theorem
Std.Range.numElems_step_1
(start : Nat)
(stop : Nat)
:
Std.Range.numElems { start := start, stop := stop, step := 1 } = stop - start
theorem
Std.Range.mem_range'_elems
{x : Nat}
(r : Std.Range)
(h : x ∈ List.range' r.start (Std.Range.numElems r) r.step)
:
x ∈ r
theorem
Std.Range.forIn_eq_forIn_range'
{m : Type u_1 → Type u_2}
{β : Type u_1}
[Monad m]
(r : Std.Range)
(init : β)
(f : Nat → β → m (ForInStep β))
:
forIn r init f = forIn (List.range' r.start (Std.Range.numElems r) r.step) init f