Add 1b and 1c responses

This commit is contained in:
Yorick Barbanneau 2023-04-30 22:56:04 +02:00
parent 56e86b4b20
commit dde1c4a854

View file

@ -7,7 +7,7 @@
\usepackage{macro} \usepackage{macro}
\author{METTEZ VOS NOMS ICI} \author{Gwendal Aupee, Yorick Barbanneau}
\date{2022-2023} \date{2022-2023}
\title{{\bf Conception Formelle} \\ TD-TP : Un peu de théorie et de pratique.} \title{{\bf Conception Formelle} \\ TD-TP : Un peu de théorie et de pratique.}
@ -133,14 +133,28 @@ int abs(int n)
\part Calculez $\WP(\code{abs},\psi)$ pour $\psi$ la post-condition fournie, et déduisez-en un triplet de \bsc{Hoare} valide. \part Calculez $\WP(\code{abs},\psi)$ pour $\psi$ la post-condition fournie, et déduisez-en un triplet de \bsc{Hoare} valide.
\begin{solutionorbox} \begin{solutionorbox}
METTEZ VOTRE RÉPONSE ICI. \begin{alignat*}{3}
\WP(\code{abs},\psi) &\equiv && \WP(5-7,\WP(8,\psi)) \\
& \equiv && \WP(5-7,\psi[\result \leftarrow res]) \\
& \equiv && n < 0 \implies \WP(7,\psi[\result \leftarrow res][res \leftarrow - n]) \\
& && \wedge \lnot(n > 0) \implies \WP(5,\psi[\result \leftarrow res][res \leftarrow n]) \\
& \equiv && n < 0 \implies (res \le 0)[ res \leftarrow - n] \\
& && \wedge \lnot( n < 0) \implies (res \le 0)[ res \leftarrow n] \\
& \equiv && ( n < 0 \implies - n \le 0 ) \wedge ( \lnot ( n < 0) \implies n \le 0) \\
& \equiv && T \wedge n < 0 \vee n \le 0
\end{alignat*}
Nous pouvons alors en déduire le triplet de Hoare suivant:
$\{\forall n \in \Z\} \text{ abs } \{\result \leftarrow abs(n)\}$
\end{solutionorbox} \end{solutionorbox}
\part Évidemment, on a ici une correction partielle, dans le sens où on na pas tenu compte des comportements indéterminés. \part Évidemment, on a ici une correction partielle, dans le sens où on na pas tenu compte des comportements indéterminés.
Quelle information manque-til pour assurer quil ny aura pas derreur à lexécution ? Quelle information manque-til pour assurer quil ny aura pas derreur à lexécution ?
\begin{solutionorbox} \begin{solutionorbox}
METTEZ VOTRE RÉPONSE ICI. Notre calcul de \textit{weakest precondition} ci-dessus ne prend pas en compte les limites de notre processeur sur la taille des variables. Ici nous devons nous assurer que \code{n} soit comprise entre \code{INT_MAX et INT_MIN}.
\end{solutionorbox} \end{solutionorbox}
@ -160,7 +174,6 @@ int abs2(int n)
Justifiez que la formule obtenue est toujours vraie (on ne demande pas une preuve formelle mais une explication de la raison). Justifiez que la formule obtenue est toujours vraie (on ne demande pas une preuve formelle mais une explication de la raison).
\begin{solutionorbox} \begin{solutionorbox}
METTEZ VOTRE RÉPONSE ICI.
\end{solutionorbox} \end{solutionorbox}
\part Quelle préconditions faut-il pour ne pas avoir de comportement indéterminé ? Justifiez. \part Quelle préconditions faut-il pour ne pas avoir de comportement indéterminé ? Justifiez.