\documentclass{bschlangaul-aufgabe}
\bLadePakete{wpkalkuel,syntax}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Vorlesungsaufgabe WP-Kalkül},
  Thematik = {Vorlesungsaufgabe WP-Kalkül},
  Referenz = SOSY.Testen.Formale-Verifikation.Vorlesungsaufgabe-WP-Kalkuel,
  RelativerPfad = Module/40_SOSY/05_Testen/10_Formale-Verifikation/Aufgabe_Vorlesungsaufgabe-WP-Kalkuel.tex,
  ZitatSchluessel = sosy:fs:5,
  ZitatBeschreibung = {Seite 21-26},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {wp-Kalkül},
}

\let\wp=\bWpKalkuel
\let\equivalent=\bWpEquivalent
\let\erklaerung=\bWpErklaerung

% 40 SOSY/50 Formale Verifikation und Testen/Formale_Verifikation.m4v
% 15min30s

Bestimmen Sie zur Nachbedingung $Q$ die Vorbedingung $P$!
\footcite[Seite 21-26]{sosy:fs:5}
\index{wp-Kalkül}

\begin{description}
\item[Nachbedingung:] $Q \equiv x + y = 17$

\item[Programmcode:] \strut

\begin{minted}{java}
// P: ?
x += 5;
y *= 2;
z = z % 4;
y--;
// Q: x + y = 17
\end{minted}
\end{description}

\begin{bAntwort}
ist gleichbedeuted mit

\begin{minted}{java}
x = x + 5;
y = y * 2;
z = z % 4;
y = y - 1;
\end{minted}

\wp{x += 5; y *= 2; z = z \% 4; y--;}{x + y = 17}

%%
%
%%

\erklaerung{$y - 1$ einsetzten}

\equivalent{\wp{x += 5; y *= 2; z = z \% 4;}{x + y - 1 = 17}}

%%
%
%%

\erklaerung{die 1 mit $+$ nach rechts bringen}

\equivalent{\wp{x += 5; y *= 2; z = z \% 4;}{x + y = 18}}

%%
%
%%

\erklaerung{Im nächsten Schritt müssten wir ein $z$ verändern. Wir haben
aber in userer Bedingung kein $z$, deshalb kann es wegfallen.}

\equivalent{\wp{x += 5; y *= 2;}{x + y = 18}}

%%
%
%%

\erklaerung{$y \cdot 2$ einsetzen}

\equivalent{\wp{x += 5;}{x + y \cdot 2 = 18}}

%%
%
%%

\erklaerung{Auf x wird 5 hinzuaddiert.}

\equivalent{\wp{}{x + 5 + y \cdot 2 = 18}}

%%
%
%%

\erklaerung{Wir haben keinen Programmcode mehr. Wir können wp weglassen.}

\equivalent{x + 5 + y \cdot 2 = 18}

%%
%
%%

\erklaerung{Die 5 nach rechts bringen}

\equivalent{x + y \cdot 2 = 13}

%%
%
%%

\erklaerung{Alle Eingaben die Vorbedingung $P \equiv x + y \cdot 2 = 13$ erfüllen,
erfüllen die Nachbedingung Q $x + y = 17$.}
\end{bAntwort}

\end{document}
