Skip to content

Commit

Permalink
Elab properties
Browse files Browse the repository at this point in the history
  • Loading branch information
Edwin Brady committed Apr 12, 2012
1 parent 3eabe79 commit 4d1bd2d
Show file tree
Hide file tree
Showing 4 changed files with 1,100 additions and 1,085 deletions.
5 changes: 5 additions & 0 deletions impl-paper/conclusions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ \section{Discussion}
%Discuss performance (anecdotally, how big is the library and how long to check,
%and relative to previous version).

\subsection{Performance}

\todo[inline]{Note on performance of type checking, and compilation via Epic. Also
worth commenting on FFI.}

\subsection{Related Work}

Dependently typed programming languages have becoming more prominent in recent
Expand Down
18 changes: 12 additions & 6 deletions impl-paper/delab.tex
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,18 @@ \subsection{From \TT{} to \Idris{}}

\subsection{Elaboration Properties}

\todo[inline]{
What are the properties of elaboration?
Need to define unelaboration, and say that elaborating then unelaborating
an expression yields the original expression.
(Works for expressions but not declarations)
}
Elaboration satisfies two important properties. Informally stated, these are
i) that if elaboration is successful, the
resulting program is a well-typed \TT{} program; ii) elaboration preserves the
meaning of the original \Idris{} program. The first property is true by the
definition of elaboration --- elaboration fails if it attempts to construct an ill-typed
term at any point. Furthermore, the development calculus \TTdev{} ensures that
partial constructions are well-typed.

The second property, that elaboration preserves meaning, can be stated more formally
as follows:

If $\MO{Elab}\:\vd\:\mq\:\vt$ then $\MO{Unelab}\:\vt\:\mq\:\vd$

Properties:
\begin{itemize}
Expand Down
4 changes: 4 additions & 0 deletions impl-paper/impldtp.tex
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
%theory, using unification and a tactic engine.
\end{abstract}


%\category{D.3.2}{Programming Languages}{Language
% Classifications}[Applicative (functional) Languages]
%\category{D.3.4}{Programming Languages}{Processors}[Compilers]
Expand Down Expand Up @@ -136,6 +137,9 @@ \section*{Acknowledgements}

\appendix

\section{TODOs}
\listoftodos{}

%\section{Elaboration meta-operations}

%It's possible that it would be useful to have a quick reference of meta-operations
Expand Down
Loading

0 comments on commit 4d1bd2d

Please sign in to comment.