pieuvre/RapportPresentation/ex-presentation.tex
2024-05-16 11:33:48 +02:00

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}