fin du rapport
This commit is contained in:
parent
17f989e97f
commit
cd7749fe34
@ -27,3 +27,26 @@
|
||||
biburl = {https://dblp.org/rec/journals/corr/abs-0804-3434.bib},
|
||||
bibsource = {dblp computer science bibliography, https://dblp.org}
|
||||
}
|
||||
|
||||
@article{PJL700,
|
||||
author = {Landin, P. J.},
|
||||
title = {The next 700 programming languages},
|
||||
year = {1966},
|
||||
issue_date = {March 1966},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {9},
|
||||
number = {3},
|
||||
issn = {0001-0782},
|
||||
url = {https://doi.org/10.1145/365230.365257},
|
||||
doi = {10.1145/365230.365257},
|
||||
journal = {Commun. ACM}}
|
||||
|
||||
@book{SMIM,
|
||||
TITLE = {{PROGRAM = PROOF}},
|
||||
AUTHOR = {Mimram, Samuel},
|
||||
URL = {https://inria.hal.science/hal-04244364},
|
||||
YEAR = {2020},
|
||||
HAL_ID = {hal-04244364},
|
||||
HAL_VERSION = {v1},
|
||||
}
|
||||
|
Binary file not shown.
@ -102,6 +102,8 @@ Le code est structuré de la manière suivante~:
|
||||
des \lstinline{types} et \lstinline{typing.ml}
|
||||
qui implémente l'algorithme de typage bidirectionnel
|
||||
défini dans la partie~\ref{s:stlc}.
|
||||
\item \lstinline{hlam.ml} qui décrit les~$\lambda$-termes creux,
|
||||
utilisés dans les preuves.
|
||||
\item \lstinline{proof.ml} qui définit la structure d'une preuve
|
||||
et implémente les tactiques.
|
||||
|
||||
@ -146,49 +148,11 @@ On remarque que l'on impose d'annoter le type de l'argument
|
||||
d'une $\lambda$-abstraction, des constructeurs de termes somme
|
||||
et produit.
|
||||
On peut alors vérifier le type de tous les termes de manière
|
||||
déterministe avec les règles de typage suivantes:
|
||||
déterministe avec les règles rappelées dans
|
||||
le livre de S. Mimram~\cite{SMIM} et \textit{très} brièvement dans le livre de
|
||||
Landin~\cite{PJL700}.
|
||||
|
||||
|
||||
\[
|
||||
\dfrac
|
||||
{\lstinline{x : A} \in \Gamma}
|
||||
{\Gamma \vdash \lstinline{x : A}}
|
||||
\]
|
||||
|
||||
\[
|
||||
\dfrac
|
||||
{\Gamma, \lstinline{x : A} \vdash \lstinline{M : B}}
|
||||
{\Gamma \vdash \lstinline{fun (x : A) => M : A -> B}}
|
||||
\]
|
||||
|
||||
\[
|
||||
\dfrac{\Gamma \vdash \lstinline{M : A -> B}
|
||||
\quad \Gamma \vdash \lstinline{N : A}}
|
||||
{\Gamma \vdash \lstinline{M N} : \lstinline{B}}
|
||||
\]
|
||||
|
||||
\[
|
||||
\dfrac
|
||||
{\Gamma \vdash \lstinline{M : false}}
|
||||
{\Gamma \vdash \lstinline{exf (M : A) : A}}
|
||||
\]
|
||||
|
||||
\[
|
||||
\dfrac
|
||||
{\Gamma \vdash \lstinline{M : A}
|
||||
\quad \Gamma \vdash \lstinline{N : B}}
|
||||
{\Gamma \vdash \lstinline{(M, N) : A /\\ B}}
|
||||
\]
|
||||
|
||||
\[
|
||||
\dfrac
|
||||
{\Gamma \vdash \lstinline{M : A}}
|
||||
{\Gamma \vdash \lstinline{l(M : A \\/ B) : A \\/ B}}
|
||||
\quad \quad
|
||||
\dfrac
|
||||
{\Gamma \vdash \lstinline{M : B}}
|
||||
{\Gamma \vdash \lstinline{r(M : A \\/ B) : A \\/ B}}
|
||||
\]
|
||||
|
||||
\section{Preuves}
|
||||
\label{s:proof}
|
||||
@ -264,8 +228,6 @@ l'~$\alpha$-conversion, le \verb|typecheck|, etc.).
|
||||
Ainsi, on propose de sauvegarder les termes de preuves puis de
|
||||
les envoyer à Coq pour valider la preuve.
|
||||
|
||||
\bibliographystyle{plain}
|
||||
\bibliography{ex-biblio}
|
||||
|
||||
\section{Répartition du travail}
|
||||
\begin{itemize}
|
||||
@ -285,4 +247,8 @@ les envoyer à Coq pour valider la preuve.
|
||||
\item Undo (Augustin)
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\bibliographystyle{plain}
|
||||
\bibliography{ex-biblio}
|
||||
|
||||
\end{document}
|
||||
|
Loading…
Reference in New Issue
Block a user