summaryrefslogtreecommitdiffstats
path: root/transp-inf110-02-typage.tex
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2023-12-05 10:16:46 +0100
committerDavid A. Madore <david+git@madore.org>2023-12-05 10:16:46 +0100
commitdac95486fd7dad3fc7b309c503789a492eec4bf4 (patch)
treec96fb965ec917ae708424a8072254e2d715ab9ac /transp-inf110-02-typage.tex
parentd0e8765710ec5b9f07e8aa45c7a8bbdacbfd6aee (diff)
downloadinf110-lfi-dac95486fd7dad3fc7b309c503789a492eec4bf4.tar.gz
inf110-lfi-dac95486fd7dad3fc7b309c503789a492eec4bf4.tar.bz2
inf110-lfi-dac95486fd7dad3fc7b309c503789a492eec4bf4.zip
Various minor changes (upon re-reading).
Diffstat (limited to 'transp-inf110-02-typage.tex')
-rw-r--r--transp-inf110-02-typage.tex45
1 files changed, 28 insertions, 17 deletions
diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex
index 32ff068..3899f54 100644
--- a/transp-inf110-02-typage.tex
+++ b/transp-inf110-02-typage.tex
@@ -1042,16 +1042,16 @@ La dérivation du jugement de typage $\Gamma \vdash M : \sigma$ d'un
évidemment à partir de $M$ (\alert{aucun choix} à faire !) :
\begin{itemize}
\item si $M = x$ est une variable, alors un $x:\sigma$ doit être dans
- le contexte $\Gamma$ (sinon : échouer), et la dérivation est par la
+ le contexte $\Gamma$ (sinon : échouer), et la dérivation finit par la
règle « variable » ;
\item si $M = PQ$ est une application, construire des dérivations de
jugements $\Gamma \vdash P : \rho$ et $\Gamma \vdash Q : \sigma$, on
doit avoir $\rho = (\sigma\to\tau)$ (sinon : échouer), et la
- dérivation est par la règle « application » ;
+ dérivation finit par la règle « application » ;
\item si $M = \lambda(v:\sigma).E$ est une abstraction, construire une
dérivation de jugement $\Gamma' \vdash E : \tau$ dans $\Gamma' :=
\Gamma \cup \{v:\sigma\}$ {\footnotesize (quitte à renommer $v$)},
- et la dérivation est par la règle « abstraction ».
+ et la dérivation finit par la règle « abstraction ».
\end{itemize}
\bigskip
@@ -1255,9 +1255,9 @@ On prouve alors successivement :
\item tout terme fortement calculable est fortement normalisable
(induction facile sur le type),
\item si $x_1:\sigma_1,\ldots,x_k:\sigma_k \vdash E:\tau$ et si
- $v_1,\ldots,v_k$ sont de types $\sigma_1,\ldots,\sigma_k$, fortement
+ $P_1,\ldots,P_k$ sont de types $\sigma_1,\ldots,\sigma_k$, fortement
calculables et n'impliquant pas $x_1,\ldots,x_k$, alors la
- substitution de $v_i$ pour $x_i$ dans $E$ est fortement calculable
+ substitution de $P_i$ pour $x_i$ dans $E$ est fortement calculable
(preuve par induction sur la dérivation du jugement, i.e., induction
sur $E$ : le cas délicat est l'abstraction).
\end{itemize}
@@ -1273,7 +1273,7 @@ On prouve alors successivement :
\itempoint Le \textbf{calcul propositionnel} est une forme de logique
qui ne parle que de « propositions » (énoncés logiques) : pas de
variables d'individus (p.ex. entiers naturels, ensembles…), \alert{pas
- de quantification}.
+ de quantification} (pas de $\forall,\exists$).
\medskip
@@ -1294,10 +1294,10 @@ abréviation de $P \Rightarrow \bot$ (soit : « $P$ est absurde »).
On distingue {\footnotesize (les règles précises seront décrites plus
loin)} :
\begin{itemize}
-\item la logique \textbf{classique} qui admet la règle du \alert{tiers
- exclu} (« tertium non datur ») sous une forme ou une autre ; logique
- usuelle des mathématiques ; on peut la modéliser par $2$ valeurs de
- vérité (« vrai » et « faux ») ;
+\item la logique \textbf{classique} ou \textbf{booléenne} qui admet la
+ règle du \alert{tiers exclu} (« tertium non datur ») sous une forme
+ ou une autre : logique usuelle des maths ; on peut la modéliser par
+ $2$ valeurs de vérité (« vrai » et « faux ») ;
\item la logique \textbf{intuitionniste}, plus \emph{faible}, qui
n'admet pas cette règle : il n'y a pas vraiment de « valeur de
vérité ».
@@ -1339,6 +1339,12 @@ On distingue {\footnotesize (les règles précises seront décrites plus
\vdash Q$ s'appelle un \textbf{séquent}, à comprendre comme « sous les
hypothèses $P_1,\ldots,P_r$, on a $Q$ ».
+\medskip
+
+{\footnotesize \itempoint Notation historique : « $\supset$ » pour
+ notre « $\Rightarrow$ », et « $\Rightarrow$ » pour notre
+ « $\vdash$ ».\par}
+
\end{frame}
%
\begin{frame}
@@ -1353,8 +1359,8 @@ et des règles d'\textbf{élimination} permettant de l'\alert{utiliser}.
En français, et un peu informellement :
\begin{itemize}
\item pour introduire $\Rightarrow$ : on démontre $Q$ \alert{sous
- l'hypothèse} $P$, ce qui donne $P\Rightarrow Q$ (hypothèse
- déchargée) ;
+ l'hypothèse} $P$, ce qui donne $P\Rightarrow Q$ (sans hypothèse :
+ « hypothèse déchargée ») ;
\item pour éliminer $\Rightarrow$ : si on a $P\Rightarrow Q$ et $P$,
on a $Q$ (\textit{modus ponens}) ;
\item pour introduire $\land$ : on démontre $Q_1$ et $Q_2$, ce qui
@@ -1514,7 +1520,7 @@ pour un gain de place) :
\medskip
{\footnotesize\textbf{N.B.} : une même hypothèse \emph{peut} être
- déchargée à plusieurs endroits ($u$ dans le 1\textsuperscript{er}
+ déchargée sur plusieurs endroits ($u$ dans le 1\textsuperscript{er}
exemple).\par}
\end{frame}
@@ -1668,7 +1674,7 @@ Bien distinguer :
\smallskip
\textcolor{teal}{« Supposons $A$ [vrai]. Alors (...), ce qui est
- absurde. Donc $A$ est faux. »}
+ absurde. Donc $A$ est faux [i.e., $\neg A$]. »}
\smallskip
@@ -1736,7 +1742,7 @@ Tableaux de vérité :
\smallskip
-\begin{tabular}{c||c||c}
+\begin{tabular}{c@{\hskip 30bp}c@{\hskip 30bp}c}
$
\begin{array}{c|cc}
\land&\bot&\top\\\hline
@@ -2119,6 +2125,11 @@ $\inferrule*[left={Inj$_2$}]{\Gamma\vdash t:\tau_2}{\Gamma\vdash \iota_2^{(\tau_
\begin{frame}
\frametitle{Remarques sur types produits et sommes}
+\itempoint $\iota_1,\iota_2$ sont des \emph{constructeurs} dans la
+terminologie OCaml.
+
+\medskip
+
\itempoint À côté de la $\beta$-réduction usuelle du $\lambda$-calcul,
$(\lambda (v:\sigma). e)t \rightsquigarrow e[v\backslash t]$, on
introduit des nouvelles règles de réduction pour la conjonction et la
@@ -2134,14 +2145,14 @@ disjonction :
\medskip
\itempoint Côté démonstrations : cette réduction court-circuite une
-règle \textsc{Intro} immédiatement suivie par une règle \textsc{Élim}
+règle \textsc{Intro} immédiatement suivie par sa règle \textsc{Élim}
(ce qu'on appelle un « détour »).
\medskip
\itempoint Le $\lambda$-calcul simplement typé reste fortement
normalisant avec ces extensions par types produits et sommes et les
-réductions ci-dessus.
+réductions ci-dessus {\footnotesize (et types $1$ et $0$ après)}.
\medskip