fin du rapport

This commit is contained in:
Marwan 2024-05-16 12:49:29 +02:00
parent 17f989e97f
commit cd7749fe34
3 changed files with 32 additions and 43 deletions

View File

@ -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.

View File

@ -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}