1
1
\documentclass {article }
2
+ \usepackage [colorlinks ]{hyperref }
3
+ \usepackage {natbib }
2
4
3
- % for dumb dingbats
4
5
\usepackage {fontawesome }
5
6
\usepackage {dingbat }
6
7
13
14
\usepackage {mathpartir }
14
15
\usepackage [dvipsnames ]{xcolor }
15
16
\usepackage {fullpage }
17
+ \usepackage {manfnt }
16
18
17
19
\usepackage {mathtools }
18
20
134
136
\section {Defunctionalized NbE }
135
137
136
138
We develop evaluation and quotation judgments for Cartesian Cubical
137
- Type Theory inspired by normalization-by- evaluation (NbE), in its
139
+ Type Theory inspired by normalization by evaluation (NbE), in its
138
140
\emph {defunctionalized } variant. Often NbE is presented using domain
139
141
models and binding is represented using meta-level functions, and
140
142
evaluation and quotation are intertwined. My perspective is that the
@@ -144,6 +146,9 @@ \section{Defunctionalized NbE}
144
146
semantic domain. In this style of NbE, the evaluation function is
145
147
called from the quotation function, but not vice versa.
146
148
149
+ The state of the art in the science of normalization by evaluation is found in
150
+ Andreas Abel's habilitation thesis~\citep {abel:2013 }; other relevant sources are included in the bibliography of these notes.
151
+
147
152
\paragraph {Why NbE? }
148
153
149
154
The old practice of regarding computation as a kind of rewriting
@@ -156,6 +161,11 @@ \section{Defunctionalized NbE}
156
161
terms of negative type must explain not only reduction, but also
157
162
expansion.
158
163
164
+ \textbf {I want to clarify that my main goal is not to acquire a normalization
165
+ function. } I am trying to decide definitional equivalence, and the simplest way
166
+ to do this algorithmically follows the structure of NbE very closely
167
+ (regardless of whether it is instantiated to yield a normalization function).
168
+
159
169
160
170
\section {Thinnings }
161
171
@@ -232,7 +242,7 @@ \section{Terms}
232
242
233
243
\begin {remark }
234
244
This is a matter of some subtlety in the context of
235
- \emph {normalization-by- evaluation } in which the evaluation and
245
+ \emph {normalization by evaluation } in which the evaluation and
236
246
quotation phases of computation are distinguished: while we do not
237
247
evaluate underneath a variable binder, during the quotation phase we
238
248
\emph {do } instantiate such a variable binder with a semantic
@@ -729,6 +739,37 @@ \section{Semantic Domain}
729
739
thinnings $ \IsThin {f}{m}{n}$ ; the
730
740
reindexing action is renaming.
731
741
742
+ \begin {remark }[Reification and reflection]
743
+
744
+ In modern NbE, eta expansion is divided into two phases called
745
+ `` reification'' and `` reflection'' , which occur entirely at the level of the
746
+ semantic domain. Reflection $ \uparrow $ embeds the neutral values into the
747
+ canonical values, and reification $ \downarrow $ embeds the canonical values
748
+ into the normal values.
749
+ %
750
+ In this presentation so far, we have not yet phrased things in terms of
751
+ reification and `` normal values'' ; I will change this shortly.
752
+
753
+ \end {remark }
754
+
755
+
756
+ \begin {remark }[Extension with singleton and extension types]
757
+
758
+ Reflection of neutral values into canonical values is present in the semantic
759
+ domain as a `` free'' constructor, rather than as an operation. This is
760
+ because reflection is calculated lazily.
761
+
762
+ To extend with constructs like singleton-type (and extension types), it is
763
+ necessary to impose an equational law on reflection: basically, reflecting a
764
+ neutral of singleton type should project out a canonical value from the
765
+ singleton type.
766
+
767
+ There are a couple of ways to enact this equation. One is to change
768
+ reflection into a `` smart operation'' ; another way, however, would be to add
769
+ cases to each of the rules that match suspended reflections, and perform the
770
+ expansion in-line. It's not yet clear to me which style is best.
771
+
772
+ \end {remark }
732
773
733
774
734
775
\section {Evaluation }
@@ -1566,4 +1607,10 @@ \subsection{Quotation and Definitional Equivalence}
1566
1607
}
1567
1608
\end {mathparpagebreakable }
1568
1609
1610
+
1611
+ \nocite {abel -coquand -pagano:2009 , abel -vezzosi -winterhalter:2017 , abcfhl:2017 , cchm:2017 , altenkirch -mcbride:2006 , altenkirch -mcbride -swierstra:2007 , stone -harper:2006 }
1612
+
1613
+ \bibliographystyle {plainnat}
1614
+ \bibliography {references/refs}
1615
+
1569
1616
\end {document }
0 commit comments