First part of TD

This commit is contained in:
Yorick Barbanneau 2023-05-03 00:57:37 +02:00
parent 522bdb0218
commit f295671946
3 changed files with 27 additions and 6 deletions

View file

@ -13,6 +13,7 @@
\qformat{\large \textbf{Exercice \thequestion~: \thequestiontitle\hfill}}
\renewcommand{\solutiontitle}{\noindent\textbf{Réponse:}\par\noindent}
\ifdef{\dyslexic}{
\usepackage{fontspec}
@ -20,7 +21,10 @@
\setmainfont{OpenDyslexic}
}{}
\usepackage{fontspec}
\setmainfont{Lato}
\setmonofont{Fira Code}
\begin{document}
\maketitle
@ -174,12 +178,24 @@ 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).
\begin{solutionorbox}
\begin{alignat*}{3}
\WP(\code{abs},\psi) &\equiv && \WP(5,\WP(6,\psi)) \\
& \equiv && \WP(5,\psi[\result \leftarrow n * aux]) \\
& \equiv && n \ge 0 \implies \psi[\result \leftarrow n * aux][aux \leftarrow 1] \\
& && \wedge \lnot (n \ge 0) \implies \psi[\result \leftarrow n * aux][aux \leftarrow -1] \\
& \equiv && n \ge 0 \implies \result \leftarrow n \\
& && \wedge \lnot (n \ge 0) \implies \result - n \\
& \equiv && n \ge 0 \implies \result \ge 0 \\
& && \wedge \lnot (n \ge 0) \implies \result \ge 0 \\
& \equiv && \top \\
\end{alignat*}
\end{solutionorbox}
\part Quelle préconditions faut-il pour ne pas avoir de comportement indéterminé ? Justifiez.
\begin{solutionorbox}
METTEZ VOTRE RÉPONSE ICI.
Comme pour \code{abs}, nous devons prendre en compte les limites du processeur, mais cette fois \code{n} devra être comprise entre 0 et \code{INT_MAX}.
\end{solutionorbox}
\part Compléter le fichier \texttt{abs.h} de manière à ce que Frama-C puisse démontrer la post-condition fournie, en ajoutant les assertions RTE. Il est bien évidemment possible (et encouragé) de répondre aux questions précédentes grâce à celle-ci.