You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$\tcol{\Gamma} \vdash\tcol{{\cast{U}{T}{\cast{T}{U}{t}}} \precision{\tcol{T}}{\tcol{T}} \tcol{t}}$ – this is the retraction property.
186
+
$\tcol{\Gamma} \vdash\tcol{\cast{U}{T}{\cast{T}{U}{t}}} \precision{\tcol{T}}{\tcol{T}} \tcol{t}$ – this is the retraction property.
187
187
\end{theorem}
188
188
189
189
@@ -224,7 +224,7 @@ \subsection{The issue with propositional equality}
224
224
but are no longer equivalent in \kl{CCIC}.
225
225
Consider the two functions $\tcol{\id_{\Nat}}$ and $\tcol{\addz}$ defined respectively as
226
226
$\tcol{\id_{\Nat}} \coloneqq\tcol{\l x : \Nat.\ n}$ and
227
-
$\tcol{\addz} \coloneqq\tcol{\l x : \Nat.\ x + 0}$.
227
+
$\tcol{\addz} \coloneqq\tcol{\l x : \Nat.\ x + \z}$.
228
228
In \kl{CIC}, these functions are not convertible, but they are pointwise equal,
229
229
and observationally equivalent.
230
230
However, they would not be observationally equivalent in \kl{GCIC} under our assumptions.
@@ -305,7 +305,7 @@ \subsection{Solutions for vectors}
305
305
-> Vectf A m -> Vectf A n.
306
306
\end{coqcode}
307
307
Here, \coqe{eq_nat} is the type of \emph{decidable} equality proofs between natural numbers,
308
-
expressing the constraints on $n$ – \eg$\eqty{n}{0}$ – but avoiding the use of the unavailable propositional equalities –, which can be defined like this:
308
+
expressing the constraints on $n$ – \eg$\eqty{n}{\z}$ – but avoiding the use of the unavailable propositional equalities –, which can be defined like this:
309
309
\begin{coqcode}
310
310
Fixpoint eq_nat (m n : ℕ) : Type :=
311
311
match m, n with
@@ -356,14 +356,14 @@ \subsection{Solutions for vectors}
Copy file name to clipboardExpand all lines: Manuscript/bidir-intro.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@
46
46
bidirectional structure for itself. Moreover, in the case of
47
47
\textcite{Coquand1996} and \textcite{Norell2007}, they concentrate on bidirectional typing
48
48
as a way to remedy for the lack of annotations on their \kl{Curry-style} λ-abstractions.
49
-
This is sensible when looking for lightness of the input syntax, but poses an inherent completeness problem: a term such as $(\l x . x)~0$ is not typeable in those systems.%
49
+
This is sensible when looking for lightness of the input syntax, but poses an inherent completeness problem: a term such as $(\l x . x)~\z$ is not typeable in those systems.%
50
50
\sidenote{They are actually only able to give types to normal forms.}
51
51
In the context of \kl{Church-style} abstraction, the closest there is to a description of
52
52
bidirectional typing for \kl{CIC} is probably the one given by the
A term $\Gamma\vdash t \ty A$\kl{observationally refines} a term
843
-
$\Gamma\vdash u \ty A$, noted $t \obsRef u$, if for all boolean-valued observation context
843
+
$\Gamma\vdash u \ty A$, noted $\intro* t \obsRef u$, if for all boolean-valued observation context
844
844
$\mathcal{C} \ty (\Gamma\vdash A) \Rightarrow (\vdash\Bool)$ closing over all
845
845
free variables, if $\mathcal{C}[u] \red\err[\Bool]$ or diverges,
846
846
then either $\mathcal{C}[t] \red\err[\Bool]$ or $\mathcal{C}[t]$ diverges.
@@ -1254,9 +1254,9 @@ \subsection{Typing, Conversion and Bidirectional Elaboration}
1254
1254
In order to satisfy \kl{conservativity} with respect to \kl{CIC}, ascriptions in \kl{GCIC}
1255
1255
are required to satisfy \kl(grad){consistency}. For instance, $\asc{\asc{\true}{\?}}{\Nat}$ is well-typed by \kl(grad){consistency} – used twice –, but $\asc{\true}{\Nat}$ is ill-typed.
1256
1256
Such ascriptions in \kl{CastCIC} are realized by casts.
1257
-
For instance $\asc{\asc{0}{\?}}{\Bool}$ in \kl{GCIC} elaborates
1257
+
For instance $\asc{\asc{\z}{\?}}{\Bool}$ in \kl{GCIC} elaborates
1258
1258
– up to desugaring and reduction – to
1259
-
$\castrev{\castrev{0}{\Nat}{\?[\uni]}}{\?[\uni]}{\Bool}$ in \kl{CastCIC}.
1259
+
$\castrev{\castrev{\z}{\Nat}{\?[\uni]}}{\?[\uni]}{\Bool}$ in \kl{CastCIC}.
1260
1260
A major difference between ascriptions in \kl{GCIC} and casts in \kl{CastCIC} is
1261
1261
that casts are not required to satisfy \kl(grad){consistency}: a cast between any
1262
1262
two types is well-typed, although of course it might produce an
0 commit comments