summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2023-12-19 10:18:59 +0100
committerDavid A. Madore <david+git@madore.org>2023-12-19 10:18:59 +0100
commit209d70fc8229cbb320c39489111c5ece8801d5e6 (patch)
treedd26e839445d0ed1dde4e317703adfea39924f88
parent3a30427b2c8696e8a2e19a34bb9dde4f8e2ea865 (diff)
downloadinf110-lfi-209d70fc8229cbb320c39489111c5ece8801d5e6.tar.gz
inf110-lfi-209d70fc8229cbb320c39489111c5ece8801d5e6.tar.bz2
inf110-lfi-209d70fc8229cbb320c39489111c5ece8801d5e6.zip
Add a slide on impredicativity.
-rw-r--r--transp-inf110-03-super.tex52
1 files changed, 52 insertions, 0 deletions
diff --git a/transp-inf110-03-super.tex b/transp-inf110-03-super.tex
index 76edb90..1201c29 100644
--- a/transp-inf110-03-super.tex
+++ b/transp-inf110-03-super.tex
@@ -225,6 +225,58 @@ $x_0$ correspondant dans autre chose qu'une preuve. {\footnotesize
\end{frame}
%
+\begin{frame}
+\frametitle{Imprédicativité}
+
+\itempoint On appelle \textbf{imprédicativité} la possibilité de
+définir une proposition ou un type en quantifiant sur toutes les
+propositions ou types \alert{y compris celui qu'on définit} : c'est
+une forme de circularité.
+
+\medskip
+
+\itempoint P.ex., $\forall (Z:*).\, (Z \Rightarrow A)$ représente le
+type des fonctions capables de renvoyer un type $A$ à partir d'un type
+$Z$ quelconque, y compris celui qu'on définit.
+
+\smallskip
+
+Cette imprédicativité est utile pour définir des constructions sur les
+types.
+
+\medskip
+
+{\footnotesize
+
+Exemples (informellement, et en notant « $*$ » le « type des types »
+imprédicatif) :
+\begin{itemize}
+\item $A \; \cong \; \forall (Z:*).\, (Z \Rightarrow A)$ : donné une
+ valeur $x$ de type $A$ on peut en fabriquer une de type
+ $Z\Rightarrow A$ comme $\lambda(z:Z).\, x$ pour tout type $Z$, mais
+ réciproquement, donné une valeur de type $\forall (Z:*).\, (Z
+ \Rightarrow A)$ on peut l'appliquer à $Z = \top$ pour obtenir une
+ valeur de type $A$.
+\item $A \; \cong \; \forall (Z:*).\, ((A \Rightarrow Z) \Rightarrow
+ Z)$ : dans un sens on fabrique $\lambda(k:A \Rightarrow Z).\, kx$
+ comme pour le CPS, dans l'autre sens, appliquer à $Z = A$ et
+ l'identité.
+\item $\bot \; \cong \; \forall (Z:*).\, Z$
+\quad\itempoint $A\land B \; \cong \; \forall (Z:*).\, ((A \Rightarrow B
+ \Rightarrow Z) \Rightarrow Z)$
+\item $A\lor B \; \cong \; \forall (Z:*).\, ((A \Rightarrow Z)
+ \Rightarrow (B\Rightarrow Z) \Rightarrow Z)$
+\end{itemize}
+
+\par}
+
+\medskip
+
+\itempoint Cela \alert{peut} donner des incohérences logiques
+(paradoxe de Girard).
+
+\end{frame}
+%
\section{Logique du premier ordre}
\begin{frame}
\frametitle{Logique du premier ordre : principe}