Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
lambda-rust
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Service Desk
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Iris
lambda-rust
Commits
74248723
Commit
74248723
authored
6 years ago
by
Hai Dang
Browse files
Options
Downloads
Patches
Plain Diff
bump gpfsl
parent
830f7de9
Branches
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#15030
passed
6 years ago
Stage: build
Changes
3
Pipelines
6
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
opam
+1
-1
1 addition, 1 deletion
opam
theories/lifetime/model/creation.v
+1
-1
1 addition, 1 deletion
theories/lifetime/model/creation.v
theories/lifetime/model/faking.v
+10
-10
10 additions, 10 deletions
theories/lifetime/model/faking.v
with
12 additions
and
12 deletions
opam
+
1
−
1
View file @
74248723
...
@@ -10,5 +10,5 @@ build: [make "-j%{jobs}%"]
...
@@ -10,5 +10,5 @@ build: [make "-j%{jobs}%"]
install: [make "install"]
install: [make "install"]
remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/lrust'" ]
remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/lrust'" ]
depends: [
depends: [
"coq-gpfsl" { (= "dev.2019-02-1
5
.1.
400540d
7") | (= "dev") }
"coq-gpfsl" { (= "dev.2019-02-
2
1.1.
cabd1b8
7") | (= "dev") }
]
]
This diff is collapsed.
Click to expand it.
theories/lifetime/model/creation.v
+
1
−
1
View file @
74248723
...
@@ -108,7 +108,7 @@ Lemma exists_Vs A (K : gset lft) :
...
@@ -108,7 +108,7 @@ Lemma exists_Vs A (K : gset lft) :
([
∗
set
]
κ
∈
K
,
lft_inv_alive
κ
(
Vs
κ
)
∗
⌜
lft_alive_in
A
κ
⌝
∨
([
∗
set
]
κ
∈
K
,
lft_inv_alive
κ
(
Vs
κ
)
∗
⌜
lft_alive_in
A
κ
⌝
∨
lft_inv_dead
κ
(
Vs
κ
)
∗
⌜
lft_dead_in
A
κ
⌝
)
.
lft_inv_dead
κ
(
Vs
κ
)
∗
⌜
lft_dead_in
A
κ
⌝
)
.
Proof
.
Proof
.
induction
(
collection
_wf
K
)
as
[
K
_
IH
]
.
iIntros
"HK"
.
induction
(
set
_wf
K
)
as
[
K
_
IH
]
.
iIntros
"HK"
.
destruct
(
decide
(
K
=
∅
))
as
[
->
|]
.
destruct
(
decide
(
K
=
∅
))
as
[
->
|]
.
{
iExists
(
λ
_,
inhabitant
)
.
repeat
(
iSplit
;
[
by
auto
|])
.
by
rewrite
!
big_sepS_empty
.
}
{
iExists
(
λ
_,
inhabitant
)
.
repeat
(
iSplit
;
[
by
auto
|])
.
by
rewrite
!
big_sepS_empty
.
}
destruct
(
minimal_exists_L
(
⊂
)
K
)
as
(
κ
&
HκK
&
Hκmin
);
first
done
.
destruct
(
minimal_exists_L
(
⊂
)
K
)
as
(
κ
&
HκK
&
Hκmin
);
first
done
.
...
...
This diff is collapsed.
Click to expand it.
theories/lifetime/model/faking.v
+
10
−
10
View file @
74248723
...
@@ -46,13 +46,13 @@ Proof.
...
@@ -46,13 +46,13 @@ Proof.
iSplitR
;
[
iApply
box_alloc
|]
.
rewrite
/
own_bor
.
iExists
γs
.
by
iFrame
.
}
iSplitR
;
[
iApply
box_alloc
|]
.
rewrite
/
own_bor
.
iExists
γs
.
by
iFrame
.
}
iSplitR
"Hinh"
;
last
by
iApply
"Hinh"
.
iSplitR
"Hinh"
;
last
by
iApply
"Hinh"
.
rewrite
lft_vs_unfold
.
iExists
bot
,
0
.
iSplit
=>
//.
iFrame
"Hcnt Hcnt'"
.
auto
.
}
rewrite
lft_vs_unfold
.
iExists
bot
,
0
.
iSplit
=>
//.
iFrame
"Hcnt Hcnt'"
.
auto
.
}
set
(
A'
:=
union_with
(
λ
x
_,
Some
x
)
A
(
to_gmap
(
false
,
bot
)
(
dom
_
κ
)))
.
set
(
A'
:=
union_with
(
λ
x
_,
Some
x
)
A
(
gset_
to_gmap
(
false
,
bot
)
(
dom
_
κ
)))
.
iMod
(
own_update
_
_
(
●
to_alftUR
A'
⋅
_)
with
"HA"
)
as
"[HA _]"
.
iMod
(
own_update
_
_
(
●
to_alftUR
A'
⋅
_)
with
"HA"
)
as
"[HA _]"
.
{
apply
auth_update_alloc
.
{
apply
auth_update_alloc
.
assert
(
to_alftUR
A'
assert
(
to_alftUR
A'
≡
to_gmap
(
Cinr
(
to_agree
$
to_latT
bot
))
(
dom
_
κ
∖
dom
_
A
)
⋅
to_alftUR
A
)
as
->
.
≡
gset_
to_gmap
(
Cinr
(
to_agree
$
to_latT
bot
))
(
dom
_
κ
∖
dom
_
A
)
⋅
to_alftUR
A
)
as
->
.
{
intros
Λ
.
rewrite
lookup_op
lookup_to_gmap
!
lookup_fmap
lookup_union_with
{
intros
Λ
.
rewrite
lookup_op
lookup_
gset_
to_gmap
!
lookup_fmap
lookup_union_with
lookup_to_gmap
.
lookup_
gset_
to_gmap
.
destruct
(
A
!!
Λ
)
eqn
:
EQ
.
destruct
(
A
!!
Λ
)
eqn
:
EQ
.
-
apply
(
elem_of_dom_2
(
D
:=
gset
atomic_lft
))
in
EQ
.
-
apply
(
elem_of_dom_2
(
D
:=
gset
atomic_lft
))
in
EQ
.
rewrite
[
X
in
_
≡
X
⋅
_]
option_guard_False
;
last
set_solver
.
by
destruct
mguard
.
rewrite
[
X
in
_
≡
X
⋅
_]
option_guard_False
;
last
set_solver
.
by
destruct
mguard
.
...
@@ -61,7 +61,7 @@ Proof.
...
@@ -61,7 +61,7 @@ Proof.
+
rewrite
!
option_guard_True
;
set_solver
.
+
rewrite
!
option_guard_True
;
set_solver
.
+
rewrite
!
option_guard_False
;
set_solver
.
}
+
rewrite
!
option_guard_False
;
set_solver
.
}
eapply
op_local_update_discrete
=>
HA
Λ
.
specialize
(
HA
Λ
)
.
eapply
op_local_update_discrete
=>
HA
Λ
.
specialize
(
HA
Λ
)
.
rewrite
lookup_op
lookup_to_gmap
!
lookup_fmap
.
rewrite
lookup_op
lookup_
gset_
to_gmap
!
lookup_fmap
.
destruct
(
A
!!
Λ
)
eqn
:
EQ
.
destruct
(
A
!!
Λ
)
eqn
:
EQ
.
-
apply
(
elem_of_dom_2
(
D
:=
gset
atomic_lft
))
in
EQ
.
-
apply
(
elem_of_dom_2
(
D
:=
gset
atomic_lft
))
in
EQ
.
rewrite
option_guard_False
;
[
by
destruct
p
as
[[]?]|
set_solver
]
.
rewrite
option_guard_False
;
[
by
destruct
p
as
[[]?]|
set_solver
]
.
...
@@ -74,25 +74,25 @@ Proof.
...
@@ -74,25 +74,25 @@ Proof.
rewrite
/
own_ilft_auth
/
to_ilftUR
fmap_insert
dom_insert_L
.
iFrame
"HI"
.
rewrite
/
own_ilft_auth
/
to_ilftUR
fmap_insert
dom_insert_L
.
iFrame
"HI"
.
iNext
.
iApply
@
big_sepS_insert
;
first
by
apply
not_elem_of_dom
.
iSplitR
"Hinv"
.
iNext
.
iApply
@
big_sepS_insert
;
first
by
apply
not_elem_of_dom
.
iSplitR
"Hinv"
.
-
destruct
(
lft_alive_or_dead_in
A'
κ
)
as
[(
Λ
&
?
&
HAΛ
)|
Haliveordead
]
.
-
destruct
(
lft_alive_or_dead_in
A'
κ
)
as
[(
Λ
&
?
&
HAΛ
)|
Haliveordead
]
.
+
rewrite
lookup_union_with
lookup_to_gmap
option_guard_True
in
HAΛ
;
+
rewrite
lookup_union_with
lookup_
gset_
to_gmap
option_guard_True
in
HAΛ
;
[
by
destruct
(
A
!!
Λ
)|
by
apply
gmultiset_elem_of_dom
]
.
[
by
destruct
(
A
!!
Λ
)|
by
apply
gmultiset_elem_of_dom
]
.
+
unfold
lft_inv
.
iExists
bot
.
iSplit
;
last
first
.
+
unfold
lft_inv
.
iExists
bot
.
iSplit
;
last
first
.
{
destruct
Haliveordead
.
{
destruct
Haliveordead
.
*
iLeft
.
by
iDestruct
"Hdeadandalive"
as
"[_ $]"
.
*
iLeft
.
by
iDestruct
"Hdeadandalive"
as
"[_ $]"
.
*
iRight
.
by
iDestruct
"Hdeadandalive"
as
"[$ _]"
.
}
*
iRight
.
by
iDestruct
"Hdeadandalive"
as
"[$ _]"
.
}
iPureIntro
=>
Λ
?
.
rewrite
lookup_union_with
lookup_to_gmap
option_guard_True
;
iPureIntro
=>
Λ
?
.
rewrite
lookup_union_with
lookup_
gset_
to_gmap
option_guard_True
;
[|
by
apply
gmultiset_elem_of_dom
]
.
destruct
(
A
!!
Λ
);
apply
lat_bottom_sqsubseteq
.
[|
by
apply
gmultiset_elem_of_dom
]
.
destruct
(
A
!!
Λ
);
apply
lat_bottom_sqsubseteq
.
-
iApply
(
@
big_sepS_impl
with
"[$Hinv]"
)
.
iIntros
"!# * _ H"
.
unfold
lft_inv
.
-
iApply
(
@
big_sepS_impl
with
"[$Hinv]"
)
.
iIntros
"!# * _ H"
.
unfold
lft_inv
.
iDestruct
"H"
as
(
Vκ
)
"[HV Hinv]"
.
iExists
Vκ
.
iSplit
.
iDestruct
"H"
as
(
Vκ
)
"[HV Hinv]"
.
iExists
Vκ
.
iSplit
.
+
iDestruct
"HV"
as
%
HV
.
iPureIntro
.
intros
Λ
HΛ
.
specialize
(
HV
Λ
HΛ
)
.
+
iDestruct
"HV"
as
%
HV
.
iPureIntro
.
intros
Λ
HΛ
.
specialize
(
HV
Λ
HΛ
)
.
rewrite
lookup_union_with
.
by
destruct
(
A
!!
Λ
),
(
to_gmap
_
_
!!
Λ
)
.
rewrite
lookup_union_with
.
by
destruct
(
A
!!
Λ
),
(
gset_
to_gmap
_
_
!!
Λ
)
.
+
iDestruct
"Hinv"
as
"[[Hinv Hin]|[Hinv Hin]]"
.
+
iDestruct
"Hinv"
as
"[[Hinv Hin]|[Hinv Hin]]"
.
*
iLeft
.
iFrame
.
iDestruct
"Hin"
as
%
Hin
.
iPureIntro
.
*
iLeft
.
iFrame
.
iDestruct
"Hin"
as
%
Hin
.
iPureIntro
.
intros
Λ
HΛ
.
specialize
(
Hin
Λ
HΛ
)
.
rewrite
lookup_union_with
.
intros
Λ
HΛ
.
specialize
(
Hin
Λ
HΛ
)
.
rewrite
lookup_union_with
.
by
destruct
(
A
!!
Λ
),
(
to_gmap
_
_
!!
Λ
)
.
by
destruct
(
A
!!
Λ
),
(
gset_
to_gmap
_
_
!!
Λ
)
.
*
iRight
.
iFrame
.
iDestruct
"Hin"
as
%
(
Λ
&
HΛ
&
HA
)
.
iPureIntro
.
*
iRight
.
iFrame
.
iDestruct
"Hin"
as
%
(
Λ
&
HΛ
&
HA
)
.
iPureIntro
.
exists
Λ
.
split
;
first
done
.
rewrite
lookup_union_with
.
exists
Λ
.
split
;
first
done
.
rewrite
lookup_union_with
.
by
destruct
(
A
!!
Λ
),
(
to_gmap
_
_
!!
Λ
)
.
by
destruct
(
A
!!
Λ
),
(
gset_
to_gmap
_
_
!!
Λ
)
.
Qed
.
Qed
.
Lemma
raw_bor_fake
E
κ
P
:
Lemma
raw_bor_fake
E
κ
P
:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment