157 lines
3.4 KiB
TeX
157 lines
3.4 KiB
TeX
\documentclass{beamer}
|
|
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{listings}
|
|
\usepackage{syntax}
|
|
\usepackage[utf8]{inputenc}
|
|
\newcommand{\Hquad}{\hspace{0.2em}}
|
|
|
|
\lstset{
|
|
language=caml,
|
|
columns=[c]fixed,
|
|
basicstyle=\small\ttfamily,
|
|
keywordstyle=\bfseries,
|
|
upquote=true,
|
|
commentstyle=,
|
|
breaklines=true,
|
|
showstringspaces=false
|
|
}
|
|
|
|
\title{Présentation Projet Fonctionnel}
|
|
\author{Marwan AZIZI et Augustin LUCAS}
|
|
\institute{}
|
|
\date{}
|
|
|
|
% ceci est un commentaire
|
|
% pour compiler : tapez pdflatex ex-presentation
|
|
% regardez ensuite le fichier ex-presentation.pdf
|
|
|
|
% 1. grammaire du lcalcul simmplement typé
|
|
|
|
|
|
% on a fait pieuvre, assistant de preuve pour la logique intuitionniste documentclass
|
|
%
|
|
|
|
% fonctionne grâce à Curry-Howard -> insister sur l'utilisation des refs
|
|
% montrer l'exmple du apply généralisé
|
|
% fiabilité
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\begin{frame}{Introduction}
|
|
% On a fait pieuvre, assistant de preuve pour la logique intuitionniste
|
|
Pieuvre, un assistant de preuve pour la logique intuitionniste
|
|
\pause
|
|
\vspace{0.2in}
|
|
|
|
Prouvable
|
|
$$A \rightarrow B \rightarrow (A \wedge B)$$
|
|
Pas prouvable
|
|
$$\neg \neg A \rightarrow A$$
|
|
|
|
\end{frame}
|
|
|
|
\begin{frame}{Comment ça marche}
|
|
Par la correspondance de Curry-Howard
|
|
\vspace{0.2in}
|
|
|
|
Preuve $\Leftrightarrow$ programme du $\lambda$-calcul simplement typé
|
|
\end{frame}
|
|
|
|
\begin{frame}{lambda-calcul}
|
|
la grammaire
|
|
\end{frame}
|
|
|
|
%! liste des tactiques
|
|
\begin{frame}{Tactiques}
|
|
Commandes:
|
|
|
|
\lstinline{Goal}
|
|
|
|
\lstinline{Undo}
|
|
|
|
\lstinline{Qed}
|
|
|
|
Tactiques:
|
|
|
|
\lstinline{exact}
|
|
|
|
\lstinline{assumption}
|
|
|
|
\lstinline{destruct}
|
|
|
|
\lstinline{intros}
|
|
|
|
\lstinline{intro}
|
|
|
|
\lstinline{cut}
|
|
|
|
\lstinline{apply}
|
|
|
|
\lstinline{left}
|
|
|
|
\lstinline{right}
|
|
|
|
\lstinline{split}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Exemple}
|
|
Prouvons $(A \rightarrow B \rightarrow C) \rightarrow A \rightarrow B \rightarrow C$
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
% présenter les buts, les trous
|
|
\frametitle{Prouvons $(A \rightarrow B \rightarrow C) \rightarrow A \rightarrow B \rightarrow C$}
|
|
|
|
Preuve: %rajouter les types
|
|
\only<1>{$$?$$}
|
|
\only<2>{$$fun \Hquad (x_0:(A \rightarrow (B \rightarrow C))) \Rightarrow fun \Hquad (x_1:A) \Rightarrow fun \Hquad (x_2:B) \Rightarrow ?$$}
|
|
\only<3>{$$fun \Hquad (x_0:(A \rightarrow (B \rightarrow C))) \Rightarrow fun \Hquad (x_1:A) \Rightarrow fun \Hquad (x_2:B) \Rightarrow (x_0 \Hquad ? \Hquad ?)$$}
|
|
\only<4>{$$fun \Hquad (x_0:(A \rightarrow (B \rightarrow C))) \Rightarrow fun \Hquad (x_1:A) \Rightarrow fun \Hquad (x_2:B) \Rightarrow (x_0 \Hquad x_1 \Hquad ?)$$}
|
|
\only<5-6>{$$fun \Hquad (x_0:(A \rightarrow (B \rightarrow C))) \Rightarrow fun \Hquad (x_1:A) \Rightarrow fun \Hquad (x_2:B) \Rightarrow (x_0 \Hquad x_1 \Hquad x_2)$$}
|
|
|
|
Interface:
|
|
|
|
\onslide<2-5>\lstinline{H2 : B}
|
|
|
|
\onslide<2-5>\lstinline{H1 : A}
|
|
|
|
\onslide<2-5>\lstinline{H0 : A -> B -> C}
|
|
|
|
\onslide<1>\lstinline{(A -> B -> C) -> A -> B -> C}
|
|
|
|
\onslide<2>\lstinline{C}
|
|
|
|
\onslide<4>\lstinline{B}
|
|
|
|
\onslide<3>\lstinline{A}
|
|
|
|
\onslide<5>\lstinline{No more goals.}
|
|
|
|
\onslide<1->\lstinline{===========================}
|
|
|
|
\onslide<1->\lstinline{Goal (A -> B -> C) -> A -> B -> C.}
|
|
|
|
\onslide<2->\lstinline{intros.}
|
|
|
|
\onslide<3->\lstinline{apply H0.}
|
|
|
|
\onslide<4->\lstinline{exact H1.}
|
|
|
|
\onslide<5->\lstinline{exact H2.}
|
|
|
|
\onslide<6->\lstinline{Qed.}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{Fiabilité}
|
|
\end{frame}
|
|
|
|
\end{document}
|
|
|
|
|
|
|