Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
iris-coq
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
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
Dan Frumin
iris-coq
Commits
94ced2c9
Commit
94ced2c9
authored
6 years ago
by
Dan Frumin
Browse files
Options
Downloads
Patches
Plain Diff
Some more text about the modalities.
parent
36f10273
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
theories/proofmode/modalities.v
+28
-3
28 additions, 3 deletions
theories/proofmode/modalities.v
with
28 additions
and
3 deletions
theories/proofmode/modalities.v
+
28
−
3
View file @
94ced2c9
...
...
@@ -6,8 +6,21 @@ Import bi.
(
**
The
`iModIntro
`
tactic
is
not
tied
the
Iris
modalities
,
but
can
be
instantiated
with
a
variety
of
modalities
.
In
order
to
plug
in
a
modality
,
one
has
to
decide
for
both
the
intuitionistic
and
spatial
context
what
action
should
be
performed
upon
introducing
the
modality
:
For
the
purpose
of
MoSeL
,
a
modality
is
a
mapping
of
propositions
`M
:
PROP
→
PROP
`
(
where
`PROP
`
is
a
type
of
bi
-
assertions
)
that
is
monotone
and
distributes
over
finite
products
.
Specifically
,
the
following
rules
have
to
be
satisfied
.
P
⊢
Q
emp
⊢
M
emp
----------
M
P
⊢
M
Q
M
P
∗
M
Q
⊢
M
(
P
∗
Q
)
Together
those
conditions
allow
one
to
introduce
the
modality
in
the
goal
,
while
stripping
away
the
modalities
in
the
context
.
Additionally
,
upon
introducing
a
modality
one
can
perform
a
number
of
associated
actions
on
the
intuitionistic
and
spatial
contexts
.
Such
an
action
can
be
one
of
the
following
:
-
Introduction
is
only
allowed
when
the
context
is
empty
.
-
Introduction
is
only
allowed
when
all
hypotheses
satisfy
some
predicate
...
...
@@ -19,7 +32,19 @@ spatial context what action should be performed upon introducing the modality:
-
Introduction
will
clear
the
context
.
-
Introduction
will
keep
the
context
as
-
if
.
Formally
,
these
actions
correspond
to
the
following
inductive
type
:
*
)
Formally
,
these
actions
correspond
to
the
inductive
type
[
modality_action
].
For
each
of
those
actions
you
have
to
prove
that
the
transformation
is
valid
.
To
instantiate
the
modality
you
have
to
define
:
1
)
a
mixin
`modality_mixin
`
,
2
)
a
record
`modality
`
,
3
)
a
`FromModal
`
type
class
instance
from
`classes
.
v
`
.
For
examples
consult
`modality_id
`
at
the
end
of
this
file
,
or
the
instances
in
the
`modality_instances
.
v
`
file
.
Note
that
in
MoSeL
modality
can
map
the
propositions
between
two
different
BI
-
algebras
.
For
instance
,
the
<
affine
>
modality
maps
propositions
of
an
arbitrary
BI
-
algebra
into
the
sub
-
BI
-
algebra
of
affine
propositions
.
*
)
Inductive
modality_action
(
PROP1
:
bi
)
:
bi
→
Type
:=
|
MIEnvIsEmpty
{
PROP2
:
bi
}
:
modality_action
PROP1
PROP2
...
...
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