Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Actris
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
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
tlsomers
Actris
Commits
a81a1fac
Commit
a81a1fac
authored
4 years ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Bump Iris (iPreProp).
parent
1b8cc687
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
opam
+1
-1
1 addition, 1 deletion
opam
theories/channel/proto.v
+8
-18
8 additions, 18 deletions
theories/channel/proto.v
with
9 additions
and
19 deletions
opam
+
1
−
1
View file @
a81a1fac
...
...
@@ -9,5 +9,5 @@ build: [make "-j%{jobs}%"]
install: [make "install"]
remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/actris" ]
depends: [
"coq-iris" { (= "dev.2020-
09-30.0.fe735a96
") | (= "dev") }
"coq-iris" { (= "dev.2020-
10-05.0.770551fb
") | (= "dev") }
]
This diff is collapsed.
Click to expand it.
theories/channel/proto.v
+
8
−
18
View file @
a81a1fac
...
...
@@ -57,7 +57,7 @@ Export action.
(** * Setup of Iris's cameras *)
Class
protoG
Σ
V
:=
protoG_authG
:>
inG
Σ
(
excl_authR
(
laterO
(
proto
(
leibnizO
V
)
(
iPr
ePr
opO
Σ
)
(
iPr
ePr
opO
Σ
))))
.
inG
Σ
(
excl_authR
(
laterO
(
proto
(
leibnizO
V
)
(
iPropO
Σ
)
(
iPropO
Σ
))))
.
Definition
protoΣ
V
:=
#
[
GFunctor
(
authRF
(
optionURF
(
exclRF
(
laterOF
(
protoOF
(
leibnizO
V
)
idOF
idOF
)))))
...
...
@@ -322,14 +322,12 @@ Qed.
Definition
side_elim
{
A
}
(
s
:
side
)
(
l
r
:
A
)
:
A
:=
match
s
with
Left
=>
l
|
Right
=>
r
end
.
Definition
iProto_unfold
{
Σ
V
}
(
p
:
iProto
Σ
V
)
:
proto
V
(
iPrePropO
Σ
)
(
iPrePropO
Σ
)
:=
proto_map
iProp_fold
iProp_unfold
p
.
Definition
iProto_own_frag
`{
!
protoG
Σ
V
}
(
γ
:
proto_name
)
(
s
:
side
)
(
p
:
iProto
Σ
V
)
:
iProp
Σ
:=
own
(
side_elim
s
proto_l_name
proto_r_name
γ
)
(
◯
E
(
Next
(
iProto_unfold
p
)
))
.
own
(
side_elim
s
proto_l_name
proto_r_name
γ
)
(
◯
E
(
Next
p
))
.
Definition
iProto_own_auth
`{
!
protoG
Σ
V
}
(
γ
:
proto_name
)
(
s
:
side
)
(
p
:
iProto
Σ
V
)
:
iProp
Σ
:=
own
(
side_elim
s
proto_l_name
proto_r_name
γ
)
(
●
E
(
Next
(
iProto_unfold
p
)
))
.
own
(
side_elim
s
proto_l_name
proto_r_name
γ
)
(
●
E
(
Next
p
))
.
Definition
iProto_ctx
`{
protoG
Σ
V
}
(
γ
:
proto_name
)
(
vsl
vsr
:
list
V
)
:
iProp
Σ
:=
...
...
@@ -969,8 +967,6 @@ Section proto.
Proper
((
≡
)
==>
(
≡
)
==>
(
≡
))
(
iProto_interp
(
Σ
:=
Σ
)
(
V
:=
V
)
vsl
vsr
)
.
Proof
.
apply
(
ne_proper_2
_)
.
Qed
.
Global
Instance
iProto_unfold_ne
:
NonExpansive
(
iProto_unfold
(
Σ
:=
Σ
)
(
V
:=
V
))
.
Proof
.
solve_proper
.
Qed
.
Global
Instance
iProto_own_frag_ne
γ
s
:
NonExpansive
(
iProto_own_frag
γ
s
)
.
Proof
.
solve_proper
.
Qed
.
...
...
@@ -979,12 +975,7 @@ Section proto.
Proof
.
iIntros
"H● H◯"
.
iDestruct
(
own_valid_2
with
"H● H◯"
)
as
"H✓"
.
iDestruct
(
excl_auth_agreeI
with
"H✓"
)
as
"H✓"
.
iDestruct
(
later_equivI_1
with
"H✓"
)
as
"H✓"
;
iNext
.
rewrite
/
iProto_unfold
.
assert
(
∀
p
,
proto_map
iProp_unfold
iProp_fold
(
proto_map
iProp_fold
iProp_unfold
p
)
≡
p
)
as
help
.
{
intros
p''
.
rewrite
-
proto_map_compose
-
{
2
}(
proto_map_id
p''
)
.
apply
proto_map_ext
=>
//
m
/=
;
by
rewrite
iProp_fold_unfold
.
}
rewrite
-
{
2
}(
help
p
)
.
iRewrite
"H✓"
.
by
rewrite
help
.
iApply
(
later_equivI_1
with
"H✓"
)
.
Qed
.
Lemma
iProto_own_auth_update
γ
s
p
p'
p''
:
...
...
@@ -992,7 +983,7 @@ Section proto.
iProto_own_auth
γ
s
p''
∗
iProto_own_frag
γ
s
p''
.
Proof
.
iIntros
"H● H◯"
.
iDestruct
(
own_update_2
with
"H● H◯"
)
as
"H"
.
{
eapply
(
excl_auth_update
_
_
(
Next
(
iProto_unfold
p''
))
)
.
}
{
eapply
(
excl_auth_update
_
_
(
Next
p''
))
.
}
by
rewrite
own_op
.
Qed
.
...
...
@@ -1159,11 +1150,10 @@ Section proto.
iProto_ctx
γ
[]
[]
∗
iProto_own
γ
Left
p
∗
iProto_own
γ
Right
(
iProto_dual
p
)
.
Proof
.
iMod
(
own_alloc
(
●
E
(
Next
(
iProto_unfold
p
))
⋅
◯
E
(
Next
(
iProto_unfold
p
))))
as
(
lγ
)
"[H●l H◯l]"
.
iMod
(
own_alloc
(
●
E
(
Next
p
)
⋅
◯
E
(
Next
p
)))
as
(
lγ
)
"[H●l H◯l]"
.
{
by
apply
excl_auth_valid
.
}
iMod
(
own_alloc
(
●
E
(
Next
(
iProto_unfold
(
iProto_dual
p
))
)
⋅
◯
E
(
Next
(
iProto_unfold
(
iProto_dual
p
))))
)
as
(
rγ
)
"[H●r H◯r]"
.
iMod
(
own_alloc
(
●
E
(
Next
(
iProto_dual
p
))
⋅
◯
E
(
Next
(
iProto_dual
p
))))
as
(
rγ
)
"[H●r H◯r]"
.
{
by
apply
excl_auth_valid
.
}
pose
(
ProtName
lγ
rγ
)
as
γ
.
iModIntro
.
iExists
γ
.
iSplitL
"H●l H●r"
.
{
iExists
p
,
(
iProto_dual
p
)
.
iFrame
.
iApply
iProto_interp_nil
.
}
...
...
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