Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Iris
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
Package registry
Model registry
Operate
Terraform modules
Monitor
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
Pierre Roux
Iris
Commits
75b1474c
Commit
75b1474c
authored
4 years ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Improve linebreaks and coqdoc in comment.
parent
95e41024
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
iris/algebra/lib/gset_bij.v
+4
-4
4 additions, 4 deletions
iris/algebra/lib/gset_bij.v
iris/base_logic/lib/gset_bij.v
+12
-10
12 additions, 10 deletions
iris/base_logic/lib/gset_bij.v
with
16 additions
and
14 deletions
iris/algebra/lib/gset_bij.v
+
4
−
4
View file @
75b1474c
...
@@ -2,15 +2,15 @@
...
@@ -2,15 +2,15 @@
This RA is a view where the authoritative element is a partial bijection between
This RA is a view where the authoritative element is a partial bijection between
types [A] and [B] and the fragments are subrels of the bijection. The data for
types [A] and [B] and the fragments are subrels of the bijection. The data for
the bijection is represented as a set of pairs [A
*
B], and the view relation
the bijection is represented as a set of pairs [A
*
B], and the view relation
enforces when an authoritative element is valid it is a bijection (that is, it
enforces when an authoritative element is valid it is a bijection (that is, it
is deterministic as a function from [A → option B] and [B → option A]).
is deterministic as a function from [A → option B] and [B → option A]).
The fragments compose by set union, which means that fragments are their own
The fragments compose by set union, which means that fragments are their own
core, ownership of a fragment is persistent, and the authoritative element can
core, ownership of a fragment is persistent, and the authoritative element can
only grow (in that it can only map more pairs (a,b)). *)
only grow (in that it can only map more pairs
[
(a,b)
]
). *)
(*
*
view needs to be exported for the canonical instances *)
(*
[algebra.
view
]
needs to be exported for the canonical instances *)
From
iris
.
algebra
Require
Export
view
gset
.
From
iris
.
algebra
Require
Export
view
gset
.
From
iris
.
algebra
Require
Import
updates
.
From
iris
.
algebra
Require
Import
updates
.
From
iris
.
prelude
Require
Import
options
.
From
iris
.
prelude
Require
Import
options
.
...
@@ -19,7 +19,7 @@ Section gset_bijective.
...
@@ -19,7 +19,7 @@ Section gset_bijective.
Context
`{
Countable
A
,
Countable
B
}
.
Context
`{
Countable
A
,
Countable
B
}
.
Implicit
Types
(
a
:
A
)
(
b
:
B
)
.
Implicit
Types
(
a
:
A
)
(
b
:
B
)
.
(** [gset_bijective] states that for a graph [L] of (a, b) pairs, [L] maps
(** [gset_bijective] states that for a graph [L] of
[
(a, b)
]
pairs, [L] maps
from [A] to [B] and back deterministically. The key property characterizing
from [A] to [B] and back deterministically. The key property characterizing
[gset_bijective] is [gset_bijective_eq_iff]. *)
[gset_bijective] is [gset_bijective_eq_iff]. *)
Definition
gset_bijective
(
L
:
gset
(
A
*
B
))
:=
Definition
gset_bijective
(
L
:
gset
(
A
*
B
))
:=
...
...
This diff is collapsed.
Click to expand it.
iris/base_logic/lib/gset_bij.v
+
12
−
10
View file @
75b1474c
(** Propositions for reasoning about monotone partial bijections.
(** Propositions for reasoning about monotone partial bijections.
This library provides two propositions [gset_bij_own_auth γ L] and [gset_bij_own_elem γ a b], where [L]
This library provides two propositions [gset_bij_own_auth γ L] and
is a bijection between types [A] and [B] represented by a set of associations
[gset_bij_own_elem γ a b], where [L] is a bijection between types [A] and [B]
[gset (A*B)]. The idea is that [gset_bij_own_auth γ L] is an authoritative bijection [L]
represented by a set of associations [gset (A * B)]. The idea is that
while [gset_bij_own_elem γ a b] is a persistent resource saying [L] associates a and b.
[gset_bij_own_auth γ L] is an authoritative bijection [L], while
[gset_bij_own_elem γ a b] is a persistent resource saying [L] associates [a]
and [b].
The main use case is in a logical relation-based proof where [L] maintains the
The main use case is in a logical relation-based proof where [L] maintains the
association between locations [A] in one execution and [B] in another (perhaps
association between locations [A] in one execution and [B] in another (perhaps
of different types, if the logical relation relates two different semantics).
of different types, if the logical relation relates two different semantics).
The association [L] is always bijective, so that if [a] is mapped to [b], there
The association [L] is always bijective, so that if [a] is mapped to [b], there
should be no other mappings for either [a] or [b]; the [gset_bij_own_extend]
update
should be no other mappings for either [a] or [b]; the [gset_bij_own_extend]
theorem enforces that new mappings respect this property, and
[gset_bij_own_elem_agree]
update
theorem enforces that new mappings respect this property, and
allows the user to exploit bijectivity. The bijection
grows monotonically, so
[gset_bij_own_elem_agree]
allows the user to exploit bijectivity. The bijection
that the set of associations only grows; this is
captured by the persistence of
grows monotonically, so
that the set of associations only grows; this is
[gset_bij_own_elem].
captured by the persistence of
[gset_bij_own_elem].
This library is a logical, ownership-based wrapper around gset_bij. *)
This library is a logical, ownership-based wrapper around
[
gset_bij
]
. *)
From
iris
.
algebra
.
lib
Require
Import
gset_bij
.
From
iris
.
algebra
.
lib
Require
Import
gset_bij
.
From
iris
.
bi
.
lib
Require
Import
fractional
.
From
iris
.
bi
.
lib
Require
Import
fractional
.
...
...
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