Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Janno
iris-coq
Commits
58740229
Commit
58740229
authored
Oct 23, 2017
by
Robbert Krebbers
Browse files
Plainness and persistence of implications and wands.
parent
60df6185
Changes
2
Hide whitespace changes
Inline
Side-by-side
theories/base_logic/derived.v
View file @
58740229
...
...
@@ -1004,14 +1004,15 @@ Qed.
(* Plain *)
Global
Instance
pure_plain
φ
:
Plain
(
⌜φ⌝
:
uPred
M
)%
I
.
Proof
.
by
rewrite
/
Plain
plainly_pure
.
Qed
.
Global
Instance
pure_
impl_plain
φ
Q
:
Plain
Q
→
Plain
(
⌜φ⌝
→
Q
)
%
I
.
Global
Instance
impl_plain
P
Q
:
Plain
P
→
Plain
Q
→
Plain
(
P
→
Q
).
Proof
.
rewrite
/
Plain
pure_impl_forall
plainly_forall
.
auto
using
forall_mono
.
rewrite
/
Plain
=>
HP
HQ
.
by
rewrite
{
2
}
HP
-
plainly_impl_plainly
-
HQ
plainly_elim
.
Qed
.
Global
Instance
pure_
wand_plain
φ
Q
:
Plain
Q
→
Plain
(
⌜φ⌝
-
∗
Q
)%
I
.
Global
Instance
wand_plain
P
Q
:
Plain
P
→
Plain
Q
→
Plain
(
P
-
∗
Q
)%
I
.
Proof
.
intros
HQ
.
rewrite
/
Plain
-
persistently_pure
-!
impl_wand_persistently
.
rewrite
persistently_pure
pure_impl_forall
plainly_forall
.
auto
using
forall_mono
.
rewrite
/
Plain
=>
HP
HQ
.
by
rewrite
{
2
}
HP
-{
1
}(
plainly_elim
P
)
!
wand_impl_plainly
-
plainly_impl_plainly
-
HQ
.
Qed
.
Global
Instance
plainly_plain
P
:
Plain
(
■
P
).
Proof
.
by
intros
;
apply
plainly_intro'
.
Qed
.
...
...
@@ -1051,16 +1052,17 @@ Proof. destruct mx; apply _. Qed.
(* Persistence *)
Global
Instance
pure_persistent
φ
:
Persistent
(
⌜φ⌝
:
uPred
M
)%
I
.
Proof
.
by
rewrite
/
Persistent
persistently_pure
.
Qed
.
Global
Instance
pure_
impl_persistent
φ
Q
:
Persistent
Q
→
Persistent
(
⌜φ⌝
→
Q
)
%
I
.
Global
Instance
impl_persistent
P
Q
:
Plain
P
→
Persistent
Q
→
Persistent
(
P
→
Q
).
Proof
.
rewrite
/
Persistent
pure_impl_forall
persistently_forall
.
auto
using
forall_mono
.
rewrite
/
Plain
/
Persistent
=>
HP
HQ
.
rewrite
{
2
}
HP
-
persistently_impl_plainly
.
by
rewrite
-
HQ
plainly_elim
.
Qed
.
Global
Instance
pure_
wand_persistent
φ
Q
:
Persistent
Q
→
Persistent
(
⌜φ⌝
-
∗
Q
)%
I
.
Global
Instance
wand_persistent
P
Q
:
Plain
P
→
Persistent
Q
→
Persistent
(
P
-
∗
Q
)%
I
.
Proof
.
rewrite
/
P
ersistent
-
impl_wand
pure_impl_forall
persistently_forall
.
auto
using
forall_mono
.
rewrite
/
P
lain
/
Persistent
=>
HP
HQ
.
by
rewrite
{
2
}
HP
-{
1
}(
plainly_elim
P
)
!
wand_impl_plainly
-
persistently_impl_plainly
-
HQ
.
Qed
.
Global
Instance
plainly_persistent
P
:
Persistent
(
■
P
).
Proof
.
by
rewrite
/
Persistent
persistently_plainly
.
Qed
.
...
...
theories/base_logic/primitive.v
View file @
58740229
...
...
@@ -480,6 +480,20 @@ Proof.
by
rewrite
cmra_core_l
cmra_core_idemp
.
Qed
.
Lemma
persistently_impl_plainly
P
Q
:
(
■
P
→
□
Q
)
⊢
□
(
■
P
→
Q
).
Proof
.
unseal
;
split
=>
/=
n
x
?
HPQ
n'
x'
????.
eapply
uPred_mono
with
(
core
x
),
cmra_included_includedN
;
auto
.
apply
(
HPQ
n'
x
)
;
eauto
using
cmra_validN_le
.
Qed
.
Lemma
plainly_impl_plainly
P
Q
:
(
■
P
→
■
Q
)
⊢
■
(
■
P
→
Q
).
Proof
.
unseal
;
split
=>
/=
n
x
?
HPQ
n'
x'
????.
eapply
uPred_mono
with
ε
,
cmra_included_includedN
;
auto
.
apply
(
HPQ
n'
x
)
;
eauto
using
cmra_validN_le
.
Qed
.
(* Later *)
Lemma
later_mono
P
Q
:
(
P
⊢
Q
)
→
▷
P
⊢
▷
Q
.
Proof
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment