Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Jonas Kastberg
iris
Commits
84cd1f63
Commit
84cd1f63
authored
Oct 25, 2018
by
Robbert Krebbers
Browse files
Document new fupd+plainly laws.
parent
c9760db3
Changes
1
Hide whitespace changes
Inline
Side-by-side
theories/bi/updates.v
View file @
84cd1f63
...
...
@@ -84,12 +84,21 @@ only make sense for affine logics. From the axioms below, one could derive
[■ P ={E}=∗ P] (see the lemma [fupd_plainly_elim]), which in turn gives
[True ={E}=∗ emp]. *)
Class
BiFUpdPlainly
(
PROP
:
sbi
)
`
{!
BiFUpd
PROP
,
!
BiPlainly
PROP
}
:
=
{
(** When proving a fancy update of a plain proposition, you can also prove it
while being allowed to open all invariants. *)
fupd_plainly_mask_empty
E
(
P
:
PROP
)
:
(|={
E
,
∅
}=>
■
P
)
⊢
|={
E
}=>
P
;
(** A strong eliminator (a la modus ponens) for the wand-fancy-update with a
plain conclusion: We eliminate [R ={E}=∗ ■ P] by supplying an [R], but we get
to keep the [R]. *)
fupd_plainly_keep_l
E
(
P
R
:
PROP
)
:
(
R
={
E
}=
∗
■
P
)
∗
R
⊢
|={
E
}=>
P
∗
R
;
(** Later "almost" commutes with fancy updates over plain propositions. It
commutes "almost" because of the ◇ modality, which is needed in the definition
of fancy updates so one can remove laters of timeless propositions. *)
fupd_plainly_later
E
(
P
:
PROP
)
:
(
▷
|={
E
}=>
■
P
)
⊢
|={
E
}=>
▷
◇
P
;
(** Forall quantifiers commute with fancy updates over plain propositions. *)
fupd_plainly_forall_2
E
{
A
}
(
Φ
:
A
→
PROP
)
:
(
∀
x
,
|={
E
}=>
■
Φ
x
)
⊢
|={
E
}=>
∀
x
,
Φ
x
}.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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