].
lemma ordered_injective:
- ∀ A:Set. ∀ le:A → A → bool.
- ∀ l:list A.
- ordered A le l = true
- \to ordered A le (tail A l) = true.
+ ∀A:Set. ∀le:A → A → bool.
+ ∀l:list A. ordered A le l = true → ordered A le (tail A l) = true.
intros 3 (A le l).
elim l
[ simplify; reflexivity;
ordered A le l = true \to ordered A le (insert A le x l) = true.
intros 5 (A le H l x).
apply (insert_ind ? ? ? (λl,il. ordered ? le l = true → ordered ? le il = true));
- intros; simplify; intros;
+ clear l; intros; simplify; intros;
[2: rewrite > H1;
[ generalize in match (H ? ? H2); clear H2; intro;
generalize in match H4; clear H4;
elim l;
[ simplify;
reflexivity;
- | apply (insert_sorted A le le_tot (insertionsort A le l1) s);
+ | apply (insert_sorted ? ? le_tot (insertionsort ? le l1) s);
assumption;
]
qed.
\ No newline at end of file