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
George Pirlea
Iris
Commits
3b9a9685
Commit
3b9a9685
authored
May 06, 2016
by
Robbert Krebbers
Browse files
Declare FSASplit instance for FSA.
parent
cd5096b7
Changes
1
Hide whitespace changes
Inline
Side-by-side
proofmode/pviewshifts.v
View file @
3b9a9685
...
...
@@ -23,7 +23,7 @@ Proof.
Qed
.
Global
Instance
frame_pvs
E1
E2
R
P
mQ
:
Frame
R
P
mQ
→
Frame
R
(|={
E1
,
E2
}=>
P
)
(
Some
(|={
E1
,
E2
}=>
from_option
True
mQ
))%
I
.
Frame
R
(|={
E1
,
E2
}=>
P
)
(
Some
(|={
E1
,
E2
}=>
if
mQ
is
Some
Q
then
Q
else
True
))%
I
.
Proof
.
rewrite
/
Frame
=><-.
by
rewrite
pvs_frame_l
.
Qed
.
Global
Instance
to_wand_pvs
E1
E2
R
P
Q
:
ToWand
R
P
Q
→
ToWand
R
(|={
E1
,
E2
}=>
P
)
(|={
E1
,
E2
}=>
Q
).
...
...
@@ -32,12 +32,15 @@ Proof. rewrite /ToWand=>->. apply wand_intro_l. by rewrite pvs_wand_r. Qed.
Class
FSASplit
{
A
}
(
P
:
iProp
Λ
Σ
)
(
E
:
coPset
)
(
fsa
:
FSA
Λ
Σ
A
)
(
fsaV
:
Prop
)
(
Φ
:
A
→
iProp
Λ
Σ
)
:
=
{
fsa_split
:
fsa
E
Φ
⊢
P
;
fsa_split_fsa
:
>
FrameShiftAssertion
fsaV
fsa
;
fsa_split_
is_
fsa
:
>
FrameShiftAssertion
fsaV
fsa
;
}.
Global
Arguments
fsa_split
{
_
}
_
_
_
_
_
{
_
}.
Global
Instance
fsa_split_pvs
E
P
:
FSASplit
(|={
E
}=>
P
)%
I
E
pvs_fsa
True
(
λ
_
,
P
).
Proof
.
split
.
done
.
apply
_
.
Qed
.
Global
Instance
fsa_split_fsa
{
A
}
(
fsa
:
FSA
Λ
Σ
A
)
E
Φ
:
FrameShiftAssertion
fsaV
fsa
→
FSASplit
(
fsa
E
Φ
)
E
fsa
fsaV
Φ
.
Proof
.
done
.
Qed
.
Lemma
tac_pvs_intro
Δ
E
Q
:
Δ
⊢
Q
→
Δ
⊢
|={
E
}=>
Q
.
Proof
.
intros
->.
apply
pvs_intro
.
Qed
.
...
...
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