Ranges of naturals as lists #
This file shows basic results about List.iota, List.range, List.range'
and defines List.finRange.
finRange n is the list of elements of Fin n.
iota n = [n, n - 1, ..., 1] and range n = [0, ..., n - 1] are basic list constructions used for
tactics. range' a b = [a, ..., a + b - 1] is there to help prove properties about them.
Actual maths should use List.Ico instead.
theorem
List.getElem_range'_1
{n m : ℕ}
(i : ℕ)
(H : i < (range' n m).length)
:
(range' n m)[i] = n + i
theorem
List.isChain_range
(r : ℕ → ℕ → Prop)
(n : ℕ)
:
IsChain r (range n) ↔ ∀ m < n - 1, r m m.succ
theorem
List.isChain_range_succ
(r : ℕ → ℕ → Prop)
(n : ℕ)
:
IsChain r (range n.succ) ↔ ∀ m < n, r m m.succ
theorem
List.isChain_cons_range_succ
(r : ℕ → ℕ → Prop)
(n a : ℕ)
:
IsChain r (a :: range n.succ) ↔ r a 0 ∧ ∀ m < n, r m m.succ
The members of l.ranges are pairwise disjoint
The lengths of the members of l.ranges are those given by l