Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
examples
Commits
977b763b
Commit
977b763b
authored
Jul 31, 2017
by
Joshua Yanovski
Browse files
Bump Iris version to match LambdaRustCoq.
parent
d8a0d882
Changes
8
Show whitespace changes
Inline
Sidebyside
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
.
...
@@ 37,7 +36,8 @@ Section heap_extra.
...
@@ 37,7 +36,8 @@ Section heap_extra.
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
$H
l
$Hlocked]"
).
iApply
(
release_spec
with
"[$H
l
$H
R
$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