@@ -13,26 +13,26 @@ CoInductive exteq : infseq T -> infseq T -> Prop :=
1313Lemma exteq_inversion :
1414 forall (x1:T) s1 x2 s2,
1515 exteq (Cons x1 s1) (Cons x2 s2) -> x1 = x2 /\ exteq s1 s2.
16- Proof .
16+ Proof using .
1717intros x1 s1 x2 s2 e.
1818change (hd (Cons x1 s1) = hd (Cons x2 s2) /\
1919 exteq (tl (Cons x1 s1)) (tl (Cons x2 s2))).
2020case e; clear e x1 s1 x2 s2. simpl. intros; split; trivial.
2121Qed .
2222
2323Lemma exteq_refl : forall s, exteq s s.
24- Proof .
24+ Proof using .
2525cofix cf. intros (x, s). constructor. apply cf.
2626Qed .
2727
2828Lemma exteq_sym : forall s1 s2, exteq s1 s2 -> exteq s2 s1.
29- Proof .
29+ Proof using .
3030cofix cf. destruct 1. constructor. apply cf. assumption.
3131Qed .
3232
3333Lemma exteq_trans :
3434 forall s1 s2 s3, exteq s1 s2 -> exteq s2 s3 -> exteq s1 s3.
35- Proof .
35+ Proof using .
3636cofix cf.
3737intros (x1, s1) (x2, s2) (x3, s3) e12 e23.
3838case (exteq_inversion _ _ _ _ e12); clear e12; intros e12 ex12.
@@ -61,20 +61,20 @@ Definition extensional (P: infseq T -> Prop) :=
6161
6262Lemma extensional_True_tl :
6363 extensional True_tl.
64- Proof .
64+ Proof using .
6565intros s1 s2 eq; auto.
6666Qed .
6767
6868Lemma extensional_False_tl :
6969 extensional False_tl.
70- Proof .
70+ Proof using .
7171intros s1 s2 eq; auto.
7272Qed .
7373
7474Lemma extensional_and_tl :
7575 forall (P Q: infseq T -> Prop),
7676 extensional P -> extensional Q -> extensional (P /\_ Q).
77- Proof .
77+ Proof using .
7878intros P Q eP eQ s1 s2 e. destruct e; simpl. unfold and_tl. intuition.
7979- apply eP with (Cons x s1); [constructor; assumption | assumption].
8080- apply eQ with (Cons x s1); [constructor; assumption | assumption].
8383Lemma extensional_or_tl :
8484 forall (P Q: infseq T -> Prop),
8585 extensional P -> extensional Q -> extensional (P \/_ Q).
86- Proof .
86+ Proof using .
8787intros P Q eP eQ s1 s2 e. destruct e; simpl. unfold or_tl. intuition.
8888- left; apply eP with (Cons x s1); [constructor; assumption | assumption].
8989- right; apply eQ with (Cons x s1); [constructor; assumption | assumption].
9292Lemma extensional_impl_tl :
9393 forall (P Q: infseq T -> Prop),
9494 extensional P -> extensional Q -> extensional (P ->_ Q).
95- Proof .
95+ Proof using .
9696intros P Q eP eQ s1 s2 e. destruct e; simpl. unfold impl_tl.
9797intros PQ1 P2.
9898apply eQ with (Cons x s1); [constructor; assumption | idtac].
104104Lemma extensional_not_tl :
105105 forall (P: infseq T -> Prop),
106106 extensional P -> extensional (~_ P).
107- Proof .
107+ Proof using .
108108intros P eP s1 s2 e; destruct e; simpl. unfold not_tl.
109109intros P1 nP2.
110110contradict P1.
@@ -116,28 +116,28 @@ Qed.
116116
117117Lemma extensional_now :
118118 forall (P: T -> Prop), extensional (now P).
119- Proof .
119+ Proof using .
120120intros P s1 s2 e. destruct e; simpl. trivial.
121121Qed .
122122
123123Lemma extensional_next :
124124 forall (P: infseq T -> Prop),
125125 extensional P -> extensional (next P).
126- Proof .
126+ Proof using .
127127intros P eP s1 s2 exP; destruct exP; simpl.
128128apply eP; assumption.
129129Qed .
130130
131131Lemma extensional_consecutive :
132132 forall (P: T -> T -> Prop), extensional (consecutive P).
133- Proof .
133+ Proof using .
134134intros P s1 s2 e. do 2 destruct e; simpl. trivial.
135135Qed .
136136
137137Lemma extensional_always :
138138 forall (P: infseq T -> Prop),
139139 extensional P -> extensional (always P).
140- Proof .
140+ Proof using .
141141intros P eP. cofix cf.
142142intros (x1, s1) (x2, s2) e al1. case (always_Cons al1); intros Px1s1 als1. constructor.
143143- eapply eP; eassumption.
147147Lemma extensional_weak_until :
148148 forall (P Q: infseq T -> Prop),
149149 extensional P -> extensional Q -> extensional (weak_until P Q).
150- Proof .
150+ Proof using .
151151intros P Q eP eQ. cofix cf.
152152intros (x1, s1) (x2, s2) e un1. case (weak_until_Cons un1).
153153- intro Q1. constructor 1. eapply eQ; eassumption.
159159Lemma extensional_until :
160160 forall (P Q: infseq T -> Prop),
161161 extensional P -> extensional Q -> extensional (until P Q).
162- Proof .
162+ Proof using .
163163intros P Q eP eQ s1 s2 e un1; genclear e; genclear s2.
164164induction un1.
165165- intros s2 e; apply U0; apply eQ with s; assumption.
173173Lemma extensional_release :
174174 forall (P Q: infseq T -> Prop),
175175 extensional P -> extensional Q -> extensional (release P Q).
176- Proof .
176+ Proof using .
177177intros P Q eP eQ. cofix cf.
178178intros (x1, s1) (x2, s2) e rl1. case (release_Cons rl1). intros Qx orR. case orR; intro orRx.
179179- apply R0.
187187Lemma extensional_eventually :
188188 forall (P: infseq T -> Prop),
189189 extensional P -> extensional (eventually P).
190- Proof .
190+ Proof using .
191191intros P eP s1 s2 e ev1. genclear e; genclear s2.
192192induction ev1 as [s1 ev1 | x1 s1 ev1 induc_hyp].
193193- intros s2 e. constructor 1. apply eP with s1; assumption.
@@ -198,14 +198,14 @@ Qed.
198198Lemma extensional_inf_often :
199199forall (P: infseq T -> Prop),
200200 extensional P -> extensional (inf_often P).
201- Proof .
201+ Proof using .
202202intros P eP; apply extensional_always; apply extensional_eventually; assumption.
203203Qed .
204204
205205Lemma extensional_continuously :
206206forall (P: infseq T -> Prop),
207207 extensional P -> extensional (continuously P).
208- Proof .
208+ Proof using .
209209intros P eP; apply extensional_eventually; apply extensional_always; assumption.
210210Qed .
211211
0 commit comments