Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iris-coq
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Janno
iris-coq
Commits
48c7dfca
Commit
48c7dfca
authored
Nov 28, 2017
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add model for new terms
parent
06bb6d4d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
5 deletions
+14
-5
docs/base-logic.tex
docs/base-logic.tex
+2
-2
docs/model.tex
docs/model.tex
+12
-3
No files found.
docs/base-logic.tex
View file @
48c7dfca
...
...
@@ -41,7 +41,7 @@ Below, $\melt$ ranges over $\monoid$ and $i$ ranges over $\set{1,2}$.
\term
,
\prop
,
\pred
\bnfdef
{}&
\var
\mid
\sigfn
(
\term
_
1,
\dots
,
\term
_
n)
\mid
\textlog
{
abort
}
(
\term
)
\mid
\textlog
{
abort
}
\;
\term
\mid
()
\mid
(
\term
,
\term
)
\mid
\pi
_
i
\;
\term
\mid
...
...
@@ -119,7 +119,7 @@ In writing $\vctx, x:\type$, we presuppose that $x$ is not already declared in $
%%% empty, unit, products, sums
\and
\infer
{
\vctx
\proves
\wtt\term
{
0
}}
{
\vctx
\proves
\wtt
{
\textlog
{
abort
}
(
\term
)
}
\type
}
{
\vctx
\proves
\wtt
{
\textlog
{
abort
}
\;
\term
}
\type
}
\and
\axiom
{
\vctx
\proves
\wtt
{
()
}{
1
}}
\and
...
...
docs/model.tex
View file @
48c7dfca
...
...
@@ -9,11 +9,13 @@ The semantic domains are interpreted as follows:
\[
\begin
{
array
}
[
t
]
{
@
{}
l@
{
\
}
c@
{
\
}
l@
{}}
\Sem
{
\Prop
}
&
\eqdef
&
\UPred
(
\monoid
)
\\
\Sem
{
\textlog
{
M
}}
&
\eqdef
&
\monoid
\Sem
{
\textlog
{
M
}}
&
\eqdef
&
\monoid
\\
\Sem
{
0
}
&
\eqdef
&
\Delta
\emptyset
\\
\Sem
{
1
}
&
\eqdef
&
\Delta
\{
()
\}
\end
{
array
}
\qquad\qquad
\begin
{
array
}
[
t
]
{
@
{}
l@
{
\
}
c@
{
\
}
l@
{}}
\Sem
{
1
}
&
\eqdef
&
\Delta
\{
()
\
}
\\
\Sem
{
\type
+
\type
'
}
&
\eqdef
&
\Sem
{
\type
}
+
\Sem
{
\type
}
\\
\Sem
{
\type
\times
\type
'
}
&
\eqdef
&
\Sem
{
\type
}
\times
\Sem
{
\type
}
\\
\Sem
{
\type
\to
\type
'
}
&
\eqdef
&
\Sem
{
\type
}
\nfn
\Sem
{
\type
}
\\
\end
{
array
}
...
...
@@ -80,9 +82,15 @@ For every definition, we have to show all the side-conditions: The maps have to
\Sem
{
\vctx
\proves
\MU
\var
:
\type
.
\term
:
\type
}_
\gamma
&
\eqdef
\mathit
{
fix
}
(
\Lam
\termB
:
\Sem
{
\type
}
.
\Sem
{
\vctx
, x :
\type
\proves
\term
:
\type
}_{
\mapinsert
\var
\termB
\gamma
}
)
\\
~
\\
\Sem
{
\vctx
\proves
\textlog
{
abort
}
\;\term
:
\type
}_
\gamma
&
\eqdef
\mathit
{
abort
}_{
\Sem\type
}
(
\Sem
{
\vctx
\proves
\term
:0
}_
\gamma
)
\\
\Sem
{
\vctx
\proves
() : 1
}_
\gamma
&
\eqdef
()
\\
\Sem
{
\vctx
\proves
(
\term
_
1,
\term
_
2) :
\type
_
1
\times
\type
_
2
}_
\gamma
&
\eqdef
(
\Sem
{
\vctx
\proves
\term
_
1 :
\type
_
1
}_
\gamma
,
\Sem
{
\vctx
\proves
\term
_
2 :
\type
_
2
}_
\gamma
)
\\
\Sem
{
\vctx
\proves
\pi
_
i(
\term
) :
\type
_
i
}_
\gamma
&
\eqdef
\pi
_
i(
\Sem
{
\vctx
\proves
\term
:
\type
_
1
\times
\type
_
2
}_
\gamma
)
\\
\Sem
{
\vctx
\proves
\pi
_
i
\;
\term
:
\type
_
i
}_
\gamma
&
\eqdef
\pi
_
i(
\Sem
{
\vctx
\proves
\term
:
\type
_
1
\times
\type
_
2
}_
\gamma
)
\\
\Sem
{
\vctx
\proves
\textlog
{
inj
}_
i
\;\term
:
\type
_
1 +
\type
_
2
}_
\gamma
&
\eqdef
\mathit
{
inj
}_
i(
\Sem
{
\vctx
\proves
\term
:
\type
_
i
}_
\gamma
)
\\
\Sem
{
\vctx
\proves
\textlog
{
match
}
\;
\term
\;\textlog
{
with
}
\;
\Ret\textlog
{
inj
}_
1
\;
\var
_
1.
\term
_
1
\mid
\Ret\textlog
{
inj
}_
2
\;
\var
_
2.
\term
_
2
\;\textlog
{
end
}
:
\type
}_
\gamma
&
\eqdef
\Sem
{
\vctx
,
\var
_
i:
\type
_
i
\proves
\term
_
i :
\type
}_{
\mapinsert
{
\var
_
i
}
\termB
\gamma
}
\\
&
\qquad
\text
{
where
$
\Sem
{
\vctx
\proves
\term
:
\type
_
1
+
\type
_
2
}_
\gamma
=
\mathit
{
inj
}_
i
(
\termB
)
$}
\\
~
\\
\Sem
{
\melt
:
\textlog
{
M
}
}_
\gamma
&
\eqdef
\melt
\\
\Sem
{
\vctx
\proves
\mcore\term
:
\textlog
{
M
}}_
\gamma
&
\eqdef
\mcore
{
\Sem
{
\vctx
\proves
\term
:
\textlog
{
M
}}_
\gamma
}
\\
...
...
@@ -94,6 +102,7 @@ For every definition, we have to show all the side-conditions: The maps have to
An environment
$
\vctx
$
is interpreted as the set of
finite partial functions
$
\rho
$
, with
$
\dom
(
\rho
)
=
\dom
(
\vctx
)
$
and
$
\rho
(
x
)
\in\Sem
{
\vctx
(
x
)
}$
.
Above,
$
\mathit
{
fix
}$
is the fixed-point on COFEs, and
$
\mathit
{
abort
}_
T
$
is the unique function
$
\emptyset
\to
T
$
.
\paragraph
{
Logical entailment.
}
We can now define
\emph
{
semantic
}
logical entailment.
...
...
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