Skip to content

Commit 2ca9f63

Browse files
committed
added weak_until-until duality, fixed associativity level of not_tl
1 parent 88bd91a commit 2ca9f63

2 files changed

Lines changed: 112 additions & 1 deletion

File tree

classical.v

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,65 @@ apply not_eventually_always_not in evP.
2929
apply weak_until_always_not_always in wu; trivial.
3030
Qed.
3131

32+
Lemma not_until_weak_until :
33+
forall (J P : infseq T -> Prop) (s : infseq T),
34+
~ until J P s -> weak_until (J /\_ ~_ P) (~_ J /\_ ~_ P) s.
35+
Proof.
36+
intros J P.
37+
cofix c.
38+
intros s.
39+
case (classic (P s)).
40+
intros Ps un.
41+
contradict un.
42+
apply U0.
43+
assumption.
44+
intros Ps.
45+
case (classic (J s)); destruct s as [x s].
46+
intros Js un.
47+
apply W_tl.
48+
unfold and_tl, not_tl.
49+
split; trivial.
50+
simpl.
51+
apply c.
52+
intros unn.
53+
contradict un.
54+
apply U_next; trivial.
55+
intros Js un.
56+
apply W0.
57+
split; trivial.
58+
Qed.
59+
60+
Lemma not_weak_until_until :
61+
forall (J P : infseq T -> Prop) (s : infseq T),
62+
~ weak_until J P s -> until (J /\_ ~_ P) (~_ J /\_ ~_ P) s.
63+
Proof.
64+
intros J P s wun.
65+
case (classic (until (J /\_ ~_ P) (~_ J /\_ ~_ P) s)); trivial.
66+
intros un.
67+
contradict wun.
68+
revert s un.
69+
cofix c.
70+
intros s.
71+
case (classic (P s)).
72+
intros Ps un.
73+
apply W0.
74+
assumption.
75+
intros Ps.
76+
case (classic (J s)); destruct s as [x s].
77+
intros Js un.
78+
apply W_tl; trivial.
79+
simpl.
80+
apply c.
81+
intros unn.
82+
contradict un.
83+
apply U_next; trivial.
84+
split; trivial.
85+
intros Js un.
86+
contradict un.
87+
apply U0.
88+
split; trivial.
89+
Qed.
90+
3291
Lemma not_eventually_not_always :
3392
forall (P : infseq T -> Prop) (s : infseq T),
3493
~ eventually (~_ P) s -> always P s.
@@ -172,6 +231,8 @@ Qed.
172231
End sec_classical.
173232

174233
Arguments weak_until_until_or_always [T J P s] _.
234+
Arguments not_until_weak_until [T J P s] _.
235+
Arguments not_weak_until_until [T J P s] _.
175236
Arguments not_eventually_not_always [T P s] _.
176237
Arguments not_always_eventually_not [T P s] _.
177238
Arguments not_until_release [T J P s] _.

infseq.v

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ Arguments False_tl {T} _.
120120
Notation "A ->_ B" := (impl_tl A B) (right associativity, at level 90).
121121
Notation "A /\_ B" := (and_tl A B) (right associativity, at level 80).
122122
Notation "A \/_ B" := (or_tl A B) (right associativity, at level 85).
123-
Notation "~_ A" := (not_tl A) (right associativity, at level 90).
123+
Notation "~_ A" := (not_tl A) (right associativity, at level 75).
124124

125125
Section sec_modal_op_lemmas.
126126

@@ -735,6 +735,54 @@ contradict Js.
735735
assumption.
736736
Qed.
737737

738+
Lemma weak_until_not_until :
739+
forall (J P : infseq T -> Prop) (s : infseq T),
740+
weak_until (J /\_ ~_ P) (~_ J /\_ ~_ P) s -> ~ until J P s.
741+
Proof.
742+
intros J P s wu un.
743+
induction un.
744+
destruct s as [x s].
745+
apply weak_until_Cons in wu.
746+
case wu; unfold not_tl, and_tl.
747+
intros [Js Ps].
748+
contradict Ps.
749+
assumption.
750+
intros [[Js Ps] wun].
751+
contradict Ps.
752+
assumption.
753+
apply weak_until_Cons in wu.
754+
case wu.
755+
unfold not_tl, and_tl.
756+
intros [Js Ps].
757+
contradict Js.
758+
assumption.
759+
intros [[Js Ps] wun].
760+
contradict IHun.
761+
assumption.
762+
Qed.
763+
764+
Lemma until_not_weak_until :
765+
forall (J P : infseq T -> Prop) (s : infseq T),
766+
until (J /\_ ~_ P) (~_ J /\_ ~_ P) s -> ~ weak_until J P s.
767+
Proof.
768+
intros J P s un wun.
769+
induction un as [s JPs | x s JPs IHun IH]; unfold not_tl, and_tl in JPs; destruct JPs as [Js Ps].
770+
destruct s as [x s].
771+
apply weak_until_Cons in wun.
772+
case wun; trivial.
773+
intros [JCs wu].
774+
contradict Js.
775+
assumption.
776+
apply weak_until_Cons in wun.
777+
case wun.
778+
intros PCs.
779+
contradict Ps.
780+
assumption.
781+
intros [JCs wu].
782+
contradict IH.
783+
assumption.
784+
Qed.
785+
738786
(* connector facts *)
739787

740788
Lemma and_tl_comm :
@@ -834,6 +882,8 @@ Arguments continuously_not_inf_often [T P s] _ _.
834882
Arguments inf_often_not_continuously [T P s] _ _.
835883
Arguments release_not_until [T J P s] _ _.
836884
Arguments until_not_release [T J P s] _ _.
885+
Arguments weak_until_not_until [T J P s] _ _.
886+
Arguments until_not_weak_until [T J P s] _ _.
837887

838888
Arguments and_tl_comm [T P Q s].
839889
Arguments and_tl_assoc [T P Q R s].

0 commit comments

Comments
 (0)