Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
examples
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
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
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
Iris
examples
Commits
977b763b
Commit
977b763b
authored
Jul 31, 2017
by
Joshua Yanovski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bump Iris version to match LambdaRustCoq.
parent
d8a0d882
Changes
8
Hide whitespace changes
Inline
Sidebyside
Showing
8 changed files
with
19 additions
and
21 deletions
+19
21
opam.pins
opam.pins
+1
1
theories/atomic.v
theories/atomic.v
+0
1
theories/atomic_incr.v
theories/atomic_incr.v
+0
1
theories/flat.v
theories/flat.v
+7
7
theories/misc.v
theories/misc.v
+4
4
theories/peritem.v
theories/peritem.v
+1
1
theories/simple_sync.v
theories/simple_sync.v
+1
1
theories/treiber.v
theories/treiber.v
+5
5
No files found.
opam.pins
View file @
977b763b
coqiris https://gitlab.mpisws.org/FP/iriscoq
01d12014855abe6adaea20bbb35b1e9beadff14e
coqiris https://gitlab.mpisws.org/FP/iriscoq
398bae9d092b6568cf8d504ca98d8810979eea33
theories/atomic.v
View file @
977b763b
...
@@ 2,7 +2,6 @@
...
@@ 2,7 +2,6 @@
From
iris
.
base_logic
Require
Export
fancy_updates
.
From
iris
.
base_logic
Require
Export
fancy_updates
.
From
iris
.
program_logic
Require
Export
hoare
weakestpre
.
From
iris
.
program_logic
Require
Export
hoare
weakestpre
.
From
iris
.
prelude
Require
Export
coPset
.
Import
uPred
.
Import
uPred
.
Section
atomic
.
Section
atomic
.
...
...
theories/atomic_incr.v
View file @
977b763b
...
@@ 2,7 +2,6 @@ From iris.program_logic Require Export weakestpre.
...
@@ 2,7 +2,6 @@ From iris.program_logic Require Export weakestpre.
From
iris
.
heap_lang
Require
Export
lang
proofmode
notation
.
From
iris
.
heap_lang
Require
Export
lang
proofmode
notation
.
From
iris_atomic
Require
Import
atomic
.
From
iris_atomic
Require
Import
atomic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
prelude
Require
Import
coPset
.
From
iris
.
heap_lang
.
lib
Require
Import
par
.
From
iris
.
heap_lang
.
lib
Require
Import
par
.
Section
incr
.
Section
incr
.
...
...
theories/flat.v
View file @
977b763b
...
@@ 166,7 +166,7 @@ Section proof.
...
@@ 166,7 +166,7 @@ Section proof.
subst
.
rewrite
Qp_div_2
.
iMod
(
"Hclose"
with
"[HR Hor HΦ]"
).
subst
.
rewrite
Qp_div_2
.
iMod
(
"Hclose"
with
"[HR Hor HΦ]"
).
{
iNext
.
iDestruct
"Hp"
as
"[Hp1 Hp2]"
.
iRight
.
iRight
.
{
iNext
.
iDestruct
"Hp"
as
"[Hp1 Hp2]"
.
iRight
.
iRight
.
iRight
.
iExists
x5
,
v
.
iFrame
.
iExists
Q
.
iFrame
.
}
iRight
.
iExists
x5
,
v
.
iFrame
.
iExists
Q
.
iFrame
.
}
iApply
"HΦ"
.
iFrame
.
iApply
"HΦ"
.
iFrame
.
done
.
*
iDestruct
"Hp"
as
(?
?)
"[? Hs]"
.
iDestruct
"Hs"
as
(?)
"(_ & _ & _ & >Ho1' & _)"
.
*
iDestruct
"Hp"
as
(?
?)
"[? Hs]"
.
iDestruct
"Hs"
as
(?)
"(_ & _ & _ & >Ho1' & _)"
.
iApply
excl_falso
.
iFrame
.
iApply
excl_falso
.
iFrame
.

destruct
ts
as
[[[[
γ
x
γ
1
]
γ
3
]
γ
4
]
γ
q
].
iDestruct
"Hp"
as
(?
x
)
"(_ & _ & >Ho2' & _)"
.

destruct
ts
as
[[[[
γ
x
γ
1
]
γ
3
]
γ
4
]
γ
q
].
iDestruct
"Hp"
as
(?
x
)
"(_ & _ & >Ho2' & _)"
.
...
@@ 207,7 +207,7 @@ Section proof.
...
@@ 207,7 +207,7 @@ Section proof.
{
iFrame
.
iFrame
"#"
.
}
{
iFrame
.
iFrame
"#"
.
}
iNext
.
iIntros
"HRf"
.
iNext
.
iIntros
"HRf"
.
wp_seq
.
wp_proj
.
iApply
(
IHxs
with
"[HΦ]"
)=>//.
wp_seq
.
wp_proj
.
iApply
(
IHxs
with
"[HΦ]"
)=>//.
iFrame
"#"
;
first
by
iFrame
.
eauto
.
iFrame
"#"
;
first
by
iFrame
.
Qed
.
Qed
.
Lemma
try_srv_spec
R
(
s
:
loc
)
(
lk
:
val
)
(
γ
r
γ
m
γ
lk
:
gname
)
Φ
:
Lemma
try_srv_spec
R
(
s
:
loc
)
(
lk
:
val
)
(
γ
r
γ
m
γ
lk
:
gname
)
Φ
:
...
@@ 282,7 +282,7 @@ Section proof.
...
@@ 282,7 +282,7 @@ Section proof.
iIntros
(
P
Q
x
)
"#Hf"
.
iIntros
(
P
Q
x
)
"#Hf"
.
iIntros
"!# Hp"
.
wp_let
.
wp_bind
(
install
_
_
_
).
iIntros
"!# Hp"
.
wp_let
.
wp_bind
(
install
_
_
_
).
iApply
(
install_spec
R
P
Q
f
x
γ
m
γ
r
s
with
"[]"
)=>//.
iApply
(
install_spec
R
P
Q
f
x
γ
m
γ
r
s
with
"[]"
)=>//.
{
iFrame
.
iFrame
"#"
.
eauto
.
}
{
iFrame
.
iFrame
"#"
.
}
iNext
.
iIntros
(
p
[[[[
γ
x
γ
1
]
γ
3
]
γ
4
]
γ
q
])
"[(Ho3 & Hx & HoQ) #?]"
.
iNext
.
iIntros
(
p
[[[[
γ
x
γ
1
]
γ
3
]
γ
4
]
γ
q
])
"[(Ho3 & Hx & HoQ) #?]"
.
wp_let
.
wp_bind
(
loop
_
_
_
).
wp_let
.
wp_bind
(
loop
_
_
_
).
iApply
(
loop_spec
with
"[Hx HoQ]"
)=>//.
iApply
(
loop_spec
with
"[Hx HoQ]"
)=>//.
...
@@ 290,13 +290,13 @@ Section proof.
...
@@ 290,13 +290,13 @@ Section proof.
iNext
.
iIntros
(?
?)
"Hs"
.
iNext
.
iIntros
(?
?)
"Hs"
.
iDestruct
"Hs"
as
(
Q'
)
"(Hx' & HoQ' & HQ')"
.
iDestruct
"Hs"
as
(
Q'
)
"(Hx' & HoQ' & HQ')"
.
destruct
(
decide
(
x
=
a
))
as
[>
Hneq
].
destruct
(
decide
(
x
=
a
))
as
[>
Hneq
].

iDestruct
(
saved_prop_agree
with
"[
HoQ
HoQ']"
)
as
"Heq"
;
first
by
iFrame
.

iDestruct
(
saved_prop_agree
with
"[
$HoQ] [
HoQ']"
)
as
"Heq"
;
first
by
iFrame
.
wp_let
.
iDestruct
(
uPred
.
cofe_funC_equivI
with
"Heq"
)
as
"Heq"
.
wp_let
.
iDestruct
(
uPred
.
cofe_funC_equivI
with
"Heq"
)
as
"Heq"
.
iSpecialize
(
"Heq"
$!
a0
).
by
iRewrite
"Heq"
in
"HQ'"
.
iSpecialize
(
"Heq"
$!
a0
).
by
iRewrite

"Heq"
in
"HQ'"
.

iExFalso
.
iCombine
"Hx"
"Hx'"
as
"Hx"
.

iExFalso
.
iCombine
"Hx"
"Hx'"
as
"Hx"
.
iDestruct
(
own_valid
with
"Hx"
)
as
%[
_
H1
].
iDestruct
(
own_valid
with
"Hx"
)
as
%[
_
H1
].
rewrite
pair_op
//=
in
H1
=>//.
apply
to_agree_comp_valid
in
H1
.
rewrite
//=
in
H1
.
fold_leibniz
.
done
.
by
apply
agree_op_inv'
in
H1
.
Qed
.
Qed
.
End
proof
.
End
proof
.
theories/misc.v
View file @
977b763b
...
@@ 3,7 +3,6 @@
...
@@ 3,7 +3,6 @@
From
iris
.
program_logic
Require
Export
weakestpre
.
From
iris
.
program_logic
Require
Export
weakestpre
.
From
iris
.
heap_lang
Require
Export
lang
proofmode
notation
.
From
iris
.
heap_lang
Require
Export
lang
proofmode
notation
.
From
iris
.
algebra
Require
Import
auth
frac
gmap
agree
.
From
iris
.
algebra
Require
Import
auth
frac
gmap
agree
.
From
iris
.
prelude
Require
Import
countable
.
From
iris
.
base_logic
Require
Import
big_op
auth
fractional
.
From
iris
.
base_logic
Require
Import
big_op
auth
fractional
.
Import
uPred
.
Import
uPred
.
...
@@ 36,8 +35,9 @@ Section heap_extra.
...
@@ 36,8 +35,9 @@ Section heap_extra.
~((
q1
+
q2
)%
Qp
≤
1
%
Qp
)%
Qc
→
~((
q1
+
q2
)%
Qp
≤
1
%
Qp
)%
Qc
→
p
↦
{
q1
}
a
∗
p
↦
{
q2
}
b
⊢
False
.
p
↦
{
q1
}
a
∗
p
↦
{
q2
}
b
⊢
False
.
Proof
.
Proof
.
iIntros
(?)
"Hp"
.
iIntros
(?)
"Hp"
.
iDestruct
(@
mapsto_valid_2
with
"Hp"
)
as
%
H'
.
done
.
iDestruct
"Hp"
as
"[Hl Hr]"
.
iDestruct
(@
mapsto_valid_2
with
"Hl Hr"
)
as
%
H'
.
done
.
Qed
.
Qed
.
End
heap_extra
.
End
heap_extra
.
...
@@ 81,6 +81,6 @@ Section pair.
...
@@ 81,6 +81,6 @@ Section pair.
iIntros
"[Ho Ho']"
.
iIntros
"[Ho Ho']"
.
iDestruct
(
m_frag_agree
with
"[Ho Ho']"
)
as
%
Heq
;
first
iFrame
.
iDestruct
(
m_frag_agree
with
"[Ho Ho']"
)
as
%
Heq
;
first
iFrame
.
subst
.
iCombine
"Ho"
"Ho'"
as
"Ho"
.
subst
.
iCombine
"Ho"
"Ho'"
as
"Ho"
.
rewrite
pair_op
frac_op'
agree_idemp
.
by
iFrame
.
by
iFrame
.
Qed
.
Qed
.
End
pair
.
End
pair
.
theories/peritem.v
View file @
977b763b
...
@@ 54,7 +54,7 @@ Section proofs.
...
@@ 54,7 +54,7 @@ Section proofs.
{
iFrame
.
iExists
[],
l
.
{
iFrame
.
iExists
[],
l
.
iFrame
.
simpl
.
eauto
.
}
iFrame
.
simpl
.
eauto
.
}
iMod
(
inv_alloc
N
_
(
∃
xs
:
list
val
,
is_bag_R
N
R
xs
s
)%
I
with
"[HΦ]"
)
as
"#?"
;
first
eauto
.
iMod
(
inv_alloc
N
_
(
∃
xs
:
list
val
,
is_bag_R
N
R
xs
s
)%
I
with
"[HΦ]"
)
as
"#?"
;
first
eauto
.
iApply
"HΦ"
.
iFrame
"#"
.
iApply
"HΦ"
.
iFrame
"#"
.
done
.
Qed
.
Qed
.
Lemma
push_spec
(
s
:
loc
)
(
x
:
val
)
:
Lemma
push_spec
(
s
:
loc
)
(
x
:
val
)
:
...
...
theories/simple_sync.v
View file @
977b763b
...
@@ 33,7 +33,7 @@ Section syncer.
...
@@ 33,7 +33,7 @@ Section syncer.
iSpecialize
(
"Hf"
with
"[R HP]"
)
;
first
by
iFrame
.
iSpecialize
(
"Hf"
with
"[R HP]"
)
;
first
by
iFrame
.
iApply
wp_wand_r
.
iSplitL
"Hf"
;
first
done
.
iApply
wp_wand_r
.
iSplitL
"Hf"
;
first
done
.
iIntros
(
v'
)
"[HR HQv]"
.
wp_let
.
wp_bind
(
release
_
).
iIntros
(
v'
)
"[HR HQv]"
.
wp_let
.
wp_bind
(
release
_
).
iApply
(
release_spec
with
"[$H
R $Hl
$Hlocked]"
).
iApply
(
release_spec
with
"[$H
l $HR
$Hlocked]"
).
iNext
.
iIntros
"_"
.
by
wp_seq
.
iNext
.
iIntros
"_"
.
by
wp_seq
.
Qed
.
Qed
.
End
syncer
.
End
syncer
.
theories/treiber.v
View file @
977b763b
...
@@ 64,17 +64,17 @@ Section proof.
...
@@ 64,17 +64,17 @@ Section proof.
simpl
.
iDestruct
"Hys"
as
(
hd'
?)
"(Hhd & Hys')"
.
simpl
.
iDestruct
"Hys"
as
(
hd'
?)
"(Hhd & Hys')"
.
iExFalso
.
iDestruct
"Hxs"
as
(?)
"Hhd'"
.
iExFalso
.
iDestruct
"Hxs"
as
(?)
"Hhd'"
.
(* FIXME: If I dont use the @ here and below through this file, it loops. *)
(* FIXME: If I dont use the @ here and below through this file, it loops. *)
by
iDestruct
(@
mapsto_agree
with
"[$Hhd
$Hhd']"
)
as
%?.
by
iDestruct
(@
mapsto_agree
with
"[$Hhd
] [
$Hhd']"
)
as
%?.

induction
ys
as
[
y
ys'
IHys'
].

induction
ys
as
[
y
ys'
IHys'
].
+
iIntros
(
hd
)
"(Hxs & Hys)"
.
+
iIntros
(
hd
)
"(Hxs & Hys)"
.
simpl
.
simpl
.
iExFalso
.
iDestruct
"Hxs"
as
(?
?)
"(Hhd & _)"
.
iExFalso
.
iDestruct
"Hxs"
as
(?
?)
"(Hhd & _)"
.
iDestruct
"Hys"
as
(?)
"Hhd'"
.
iDestruct
"Hys"
as
(?)
"Hhd'"
.
by
iDestruct
(@
mapsto_agree
with
"[$Hhd
$Hhd']"
)
as
%?.
by
iDestruct
(@
mapsto_agree
with
"[$Hhd
] [
$Hhd']"
)
as
%?.
+
iIntros
(
hd
)
"(Hxs & Hys)"
.
+
iIntros
(
hd
)
"(Hxs & Hys)"
.
simpl
.
iDestruct
"Hxs"
as
(?
?)
"(Hhd & Hxs')"
.
simpl
.
iDestruct
"Hxs"
as
(?
?)
"(Hhd & Hxs')"
.
iDestruct
"Hys"
as
(?
?)
"(Hhd' & Hys')"
.
iDestruct
"Hys"
as
(?
?)
"(Hhd' & Hys')"
.
iDestruct
(@
mapsto_agree
with
"[$Hhd
$Hhd']"
)
as
%[=
Heq
].
iDestruct
(@
mapsto_agree
with
"[$Hhd
] [
$Hhd']"
)
as
%[=
Heq
].
subst
.
iDestruct
(
IHxs'
with
"[Hxs' Hys']"
)
as
"%"
;
first
by
iFrame
.
subst
.
iDestruct
(
IHxs'
with
"[Hxs' Hys']"
)
as
"%"
;
first
by
iFrame
.
by
subst
.
by
subst
.
Qed
.
Qed
.
...
@@ 173,9 +173,9 @@ Section proof.
...
@@ 173,9 +173,9 @@ Section proof.
{
iRight
.
iExists
y'
,
(
q
/
2
/
2
)%
Qp
,
hd'
,
xs'
.
{
iRight
.
iExists
y'
,
(
q
/
2
/
2
)%
Qp
,
hd'
,
xs'
.
destruct
xs
as
[
x'
xs''
].
destruct
xs
as
[
x'
xs''
].

simpl
.
iDestruct
"Hhd''"
as
(?)
"H"
.

simpl
.
iDestruct
"Hhd''"
as
(?)
"H"
.
iExFalso
.
by
iDestruct
(@
mapsto_agree
with
"[$Hhd1
$H]"
)
as
%?.
iExFalso
.
by
iDestruct
(@
mapsto_agree
with
"[$Hhd1
] [
$H]"
)
as
%?.

simpl
.
iDestruct
"Hhd''"
as
(
hd'''
?)
"(Hhd'' & Hxs'')"
.

simpl
.
iDestruct
"Hhd''"
as
(
hd'''
?)
"(Hhd'' & Hxs'')"
.
iDestruct
(@
mapsto_agree
with
"[$Hhd1
$Hhd'']"
)
as
%[=].
iDestruct
(@
mapsto_agree
with
"[$Hhd1
] [
$Hhd'']"
)
as
%[=].
subst
.
subst
.
iDestruct
(
uniq_is_list
with
"[Hxs1 Hxs'']"
)
as
"%"
;
first
by
iFrame
.
subst
.
iDestruct
(
uniq_is_list
with
"[Hxs1 Hxs'']"
)
as
"%"
;
first
by
iFrame
.
subst
.
repeat
(
iSplitR
"Hxs1 Hs"
;
first
done
).
repeat
(
iSplitR
"Hxs1 Hs"
;
first
done
).
...
...
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