pieuvre/RapportPresentation/ex-presentation.tex

181 lines
3.9 KiB
TeX
Raw Permalink Normal View History

2024-05-13 18:29:50 +02:00
\documentclass{beamer}
2024-05-16 11:30:40 +02:00
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{syntax}
2024-05-13 18:29:50 +02:00
\usepackage[utf8]{inputenc}
2024-05-16 12:47:52 +02:00
\usepackage{xcolor}
2024-05-16 11:30:40 +02:00
\newcommand{\Hquad}{\hspace{0.2em}}
2024-05-16 12:47:52 +02:00
\newcommand{\red}[1]{\textbf{\color{red}#1}}
2024-05-16 11:30:40 +02:00
\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}
2024-05-13 18:29:50 +02:00
\institute{}
\date{}
% ceci est un commentaire
% pour compiler : tapez pdflatex ex-presentation
% regardez ensuite le fichier ex-presentation.pdf
2024-05-16 11:30:40 +02:00
% 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é
2024-05-13 18:29:50 +02:00
\begin{document}
\maketitle
2024-05-16 11:30:40 +02:00
\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}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
Prouvable
$$A \rightarrow B \rightarrow (A \wedge B)$$
Pas prouvable
2024-05-16 11:33:48 +02:00
$$\neg \neg A \rightarrow A$$
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\end{frame}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\begin{frame}{Comment ça marche}
Par la correspondance de Curry-Howard
\vspace{0.2in}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
Preuve $\Leftrightarrow$ programme du $\lambda$-calcul simplement typé
\end{frame}
2024-05-13 18:29:50 +02:00
2024-05-16 12:47:52 +02:00
\begin{frame}{$lambda$-calcul}
les types sont donnés par
\lstinline{<A, B> ::= X}
\lstinline{| A -> B}
\lstinline{| A /\\ B}
\lstinline{| A \\/ B}
\lstinline{| false}
On peut avoir les $\lambda$-termes suivants:
\lstinline{fun (x:A) => x}
\lstinline{fun (x:A) => exf(x:B)}
2024-05-16 11:30:40 +02:00
\end{frame}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
%! liste des tactiques
\begin{frame}{Tactiques}
Commandes:
\lstinline{Goal}
\lstinline{Undo}
\lstinline{Qed}
\lstinline{Check}
2024-05-16 11:30:40 +02:00
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$
2024-05-13 18:29:50 +02:00
\end{frame}
2024-05-16 11:30:40 +02:00
\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
2024-05-16 12:47:52 +02:00
\only<1>{$$\red{?}$$}
\only<2>{$$fun \Hquad (x_0:(A \rightarrow (B \rightarrow C))) \Rightarrow fun \Hquad (x_1:A) \Rightarrow fun \Hquad (x_2:B) \Rightarrow \red{?}$$}
\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 \red{?} \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 \red{?})$$}
2024-05-16 11:30:40 +02:00
\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}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\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.}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\onslide<3->\lstinline{apply H0.}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\onslide<4->\lstinline{exact H1.}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\onslide<5->\lstinline{exact H2.}
2024-05-13 18:29:50 +02:00
2024-05-16 11:30:40 +02:00
\onslide<6->\lstinline{Qed.}
\end{frame}
2024-05-16 12:47:52 +02:00
\begin{frame}{Fiabilité}
\begin{itemize}
\item Comment être sûrs de nos preuves ?
2024-05-16 12:47:52 +02:00
\pause
\item Envoyer nos termes de preuves à \textbf{\color{blue}{Coq}}.
\end{itemize}
2024-05-13 18:29:50 +02:00
\end{frame}
\end{document}