Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iris-coq
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Janno
iris-coq
Commits
c056a95c
Commit
c056a95c
authored
Dec 05, 2017
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more types, less inference
parent
ca3c807e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
3 deletions
+4
-3
theories/program_logic/weakestpre.v
theories/program_logic/weakestpre.v
+4
-3
No files found.
theories/program_logic/weakestpre.v
View file @
c056a95c
...
...
@@ -12,6 +12,7 @@ Class irisG' (Λstate : Type) (Σ : gFunctors) := IrisG {
Notation
irisG
Λ
Σ
:
=
(
irisG'
(
state
Λ
)
Σ
).
Inductive
stuckness
:
=
not_stuck
|
maybe_stuck
.
Definition
stuckness_le
(
s1
s2
:
stuckness
)
:
bool
:
=
match
s1
,
s2
with
|
maybe_stuck
,
not_stuck
=>
false
...
...
@@ -22,6 +23,9 @@ Proof.
split
;
first
by
case
.
move
=>
s1
s2
s3
.
by
case
:
s1
;
case
:
s2
;
case
:
s3
.
Qed
.
Definition
stuckness_to_atomicity
(
s
:
stuckness
)
:
atomicity
:
=
if
s
is
maybe_stuck
then
strongly_atomic
else
weakly_atomic
.
Definition
wp_pre
`
{
irisG
Λ
Σ
}
(
s
:
stuckness
)
(
wp
:
coPset
-
c
>
expr
Λ
-
c
>
(
val
Λ
-
c
>
iProp
Σ
)
-
c
>
iProp
Σ
)
:
coPset
-
c
>
expr
Λ
-
c
>
(
val
Λ
-
c
>
iProp
Σ
)
-
c
>
iProp
Σ
:
=
λ
E
e1
Φ
,
...
...
@@ -244,9 +248,6 @@ Qed.
Lemma
wp_fupd
s
E
e
Φ
:
WP
e
@
s
;
E
{{
v
,
|={
E
}=>
Φ
v
}}
⊢
WP
e
@
s
;
E
{{
Φ
}}.
Proof
.
iIntros
"H"
.
iApply
(
wp_strong_mono
s
E
)
;
try
iFrame
;
auto
.
Qed
.
Definition
stuckness_to_atomicity
s
:
=
if
s
is
maybe_stuck
then
strongly_atomic
else
weakly_atomic
.
Lemma
wp_atomic
s
E1
E2
e
Φ
`
{!
Atomic
(
stuckness_to_atomicity
s
)
e
}
:
(|={
E1
,
E2
}=>
WP
e
@
s
;
E2
{{
v
,
|={
E2
,
E1
}=>
Φ
v
}})
⊢
WP
e
@
s
;
E1
{{
Φ
}}.
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