Skip to content

Commit 1a3aa22

Browse files
committed
New result: List.sorted_range
Proves that `range` is sorted for `(<)`
1 parent 01b946d commit 1a3aa22

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

theories/datatypes/List.ec

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3822,6 +3822,17 @@ rewrite -(perm_cat2l [x]) perm_eq_sym perm_catCl perm_catAC -catA /=.
38223822
by rewrite -eqss (@perm_eq_trans s) // perm_sort.
38233823
qed.
38243824
3825+
lemma sorted_range m n : sorted (<) (range m n).
3826+
proof.
3827+
case: (n <= m); first by move=> ?; rewrite range_geq.
3828+
move/ltzNge => lt_mn; rewrite range_ltn //=.
3829+
suff: forall m, 0 <= m => forall b n, b < n => path (<) b (range n (n + m)).
3830+
- by move=> /(_ (n - (m + 1)) _ m (m+1) _) /#.
3831+
move=> {m n lt_mn}; elim=> /= [|m ge0_m ih] b n ?.
3832+
- by rewrite range_geq.
3833+
by rewrite addrA range_ltn 1:/# /= addrAC; split=> //#.
3834+
qed.
3835+
38253836
(* -------------------------------------------------------------------- *)
38263837
(* retrieving a maximal element *)
38273838
(* -------------------------------------------------------------------- *)

0 commit comments

Comments
 (0)