@@ -211,16 +211,14 @@ Lemma all_find (s : seq T) : find predT s = 0. Proof. by elim: s. Qed.
211211Section lrindex_def.
212212Variable (x0 : T) (s : seq T).
213213Hypothesis s_sorted : sorted <=%O s.
214- (* Let leT_trans := @le_trans _ T. *)
214+ Let leT_trans := @le_trans _ T.
215215
216216Notation lindex t := (find (>= t) s).
217217Notation rindex t := (find (> t) s).
218218
219- Print HintDb core.
220-
221219Lemma eq_count_undup : s = flatten [seq nseq (count_mem x s) x | x <- undup s].
222220Proof .
223- rewrite (eq_sorted _ le_anti _ _ ((@perm_count_undup _ _)))//.
221+ rewrite (eq_sorted le_trans le_anti _ _ ((@perm_count_undup _ _)))//.
224222have := subseq_sorted le_trans (undup_subseq s) s_sorted.
225223elim: (undup) => //= x l ihl; rewrite path_sortedE// => /andP[/allP le_xl l_s].
226224elim: (count_mem _ _)=> [|/= k ihk]; rewrite ?path_min_sorted ?ihl//.
@@ -247,7 +245,7 @@ Lemma lindex_le t j : (j < size s)%N -> (lindex t <= j)%N = (t <= nth x0 s j)%O.
247245Proof .
248246move=> j_lt; set i := find _ _.
249247case: (leqP i) => [ij|/(before_find x0)//]; have i_lt := leq_ltn_trans ij j_lt.
250- by rewrite (@le_trans _ _ (nth x0 s i)) ?sorted_le_nth ?nth_find ?has_find.
248+ rewrite (@le_trans _ _ (nth x0 s i)) ?sorted_le_nth ?nth_find ?has_find// .
251249Qed .
252250
253251Lemma lindex_gt t j : (j < size s)%N -> (j < lindex t)%N = (nth x0 s j < t)%O.
@@ -620,12 +618,12 @@ End sorted_mono.
620618
621619Lemma lindex_eq i : {in [pred t | [i] < t%:x <= [i.+1]], forall t, lindex s t = i}.
622620Proof . by move=> t; apply: eq_from_lindex; rewrite gt_sprev le_anext. Qed .
623- Print HintDb core.
624- Lemma lindex_eq' u : {in [pred t | sprev u < t%:x <= u%:x],
621+
622+ Lemma lindex_eql u : {in [pred t | sprev u < t%:x <= u%:x],
625623 forall t, lindex s t = lindex s u}.
626624Proof .
627- move=> t; rewrite inE => /andP[ut tu]; apply: eq_lindex .
628- by rewrite le_anext.
625+ move=> t; rewrite inE => /andP[ut tu].
626+ by rewrite (@lindex_eq (lindex s u))// inE ut (le_trans tu)// le_anext.
629627Qed .
630628
631629Lemma rindex_eq i : {in [pred t | [i] <= t%:x < [i.+1]], forall t, rindex s t = i}.
@@ -634,24 +632,24 @@ Proof. by move=> t; apply: eq_from_rindex; rewrite ge_aprev lt_snext. Qed.
634632Lemma ext_inF i : {in [pred t | [i] < t%:x < [i.+1]], forall t, t \in s = false}.
635633Proof .
636634move=> t; rewrite inE => /andP[t_gt t_lt]; have := t_lt.
637-
638- rewrite -(@lindexE i t); last by rewrite inE t_gt ltW.
639- by apply: contraTF => /mem_rnext->; rewrite ltxx.
640- Qed .
635+ (* rewrite -(@lindexE i t); last by rewrite inE t_gt ltW. *)
636+ (* by apply: contraTF => /mem_rnext->; rewrite ltxx. *)
637+ Admitted .
641638
642639Lemma lrindex_notin i :
643640 {in [pred t | [i] < t%:x < [i.+1]], forall t, t \notin s}.
644- Proof . by move=> x /lindex_inF->. Qed .
641+ Proof . (* by move=> x /lindex_inF->. Qed . *) Admitted .
645642
646- Lemma lindex_next t tnext : rnext t = tnext%:x -> lindex s tnext = lindex s t.
647- Proof . by move=> sneq; apply: lindexE; rewrite inE -sneq lexx andbT. Qed .
643+ Lemma lindex_next t tnext : anext t = tnext%:x -> lindex s tnext = lindex s t.
644+ (* Proof. by move=> sneq; apply: lindexE; rewrite inE -sneq lexx andbT. Qed. *)
645+ Admitted .
648646
649647End ext_seq.
650- End lindex .
648+ End rindex .
651649
652650Bind Scope ext_scope with ext.
653651Notation edflt1 t := (edflt t t).
654652Notation "s `[ i ]" := (nth +oo%x (ext_seq s) i) : ext_scope.
655- Notation rprev s t := s`[lindex s t] .
656- Notation rnext s t := s`[(lindex s t).+1] .
657- Hint Resolve lrindex_size lrindexP gt_rprev ge_rprev le_rnext lt_rprev_rnext.
653+ Notation lindex s t := (find (>= t) s) .
654+ Notation rindex s t := (find (> t) s) .
655+ (* Hint Resolve lrindex_size lrindexP gt_rprev ge_rprev le_rnext lt_rprev_rnext. *)
0 commit comments