finished ue09
This commit is contained in:
parent
dd2bb7d142
commit
e5cc70baee
2 changed files with 20 additions and 8 deletions
BIN
slides/ThProgUE9.pdf
Normal file
BIN
slides/ThProgUE9.pdf
Normal file
Binary file not shown.
|
@ -206,8 +206,14 @@ Leon Vatthauer}
|
|||
% Introduction
|
||||
\section{Aufgabe 1 - Beweise mittels struktureller Induktion}
|
||||
\begin{frame}[t, fragile]{Aufgabe 1}{Beweise mittels struktureller Induktion}
|
||||
Wir betrachten die folgenden Funktionen auf Listen:
|
||||
|
||||
Wir betrachten erneut den Datentyp der Listen sowie die folgenden Funktionen:
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={data, where, List, Nat}]
|
||||
data List a where
|
||||
Nil : () $\rightarrow$ List a
|
||||
Cons : a $\rightarrow$ List a $\rightarrow$ List a
|
||||
\end{lstlisting}
|
||||
\end{minipage}
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={List, Nat}]
|
||||
length : List a $\rightarrow$ Nat
|
||||
|
@ -222,7 +228,7 @@ reverse Nil = Nil
|
|||
reverse (Cons x xs) = snoc (reverse xs) x
|
||||
\end{lstlisting}
|
||||
\end{minipage}
|
||||
\begin{minipage}{.5\textwidth}
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={List, Nat}]
|
||||
snoc : List a $\rightarrow$ List a
|
||||
snoc Nil y = Cons y Nil
|
||||
|
@ -238,8 +244,14 @@ snoc (Cons x xs) y = Cons x (snoc xs y)
|
|||
\end{frame}
|
||||
|
||||
\begin{frame}[t, fragile]{Aufgabe 1}{Beweise mittels struktureller Induktion}
|
||||
Wir betrachten die folgenden Funktionen auf Listen:
|
||||
|
||||
Wir betrachten erneut den Datentyp der Listen sowie die folgenden Funktionen:
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={data, where, List, Nat}]
|
||||
data List a where
|
||||
Nil : () $\rightarrow$ List a
|
||||
Cons : a $\rightarrow$ List a $\rightarrow$ List a
|
||||
\end{lstlisting}
|
||||
\end{minipage}
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={List, Nat}]
|
||||
length : List a $\rightarrow$ Nat
|
||||
|
@ -254,7 +266,7 @@ reverse Nil = Nil
|
|||
reverse (Cons x xs) = snoc (reverse xs) x
|
||||
\end{lstlisting}
|
||||
\end{minipage}
|
||||
\begin{minipage}{.5\textwidth}
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\begin{lstlisting}[keywords={List, Nat}]
|
||||
snoc : List a $\rightarrow$ List a
|
||||
snoc Nil y = Cons y Nil
|
||||
|
@ -308,13 +320,13 @@ size (Inner x l r) = 1 + size l + size r
|
|||
\end{minipage}
|
||||
\vfill
|
||||
Definieren Sie induktiv eine Funktion \lstinline[keywords={List, Tree}]{inorder : Tree a $\rightarrow$ List a}, die die Elemente eines Baumes
|
||||
gemäß ener In-Order-Traversierung von links nach rechts ausgibt. Zeigen Sie dann per struktureller Induktion über Bäume, dass
|
||||
gemäß einer In-Order-Traversierung von links nach rechts ausgibt. Zeigen Sie dann per struktureller Induktion über Bäume, dass
|
||||
$$\forall\texttt{t. length (inorder t) = size t}$$
|
||||
\end{frame}
|
||||
\begin{frame}[t, fragile]{Aufgabe 3.2}{Induktion über Bäume}
|
||||
Wir betrachten im folgenden einen parametrischen induktiven Datentyp für Bäume, deren Blätter Elemente vom Typ $a$ enthalten, und deren innere Knoten jeweils
|
||||
bis zu drei Kinder haben, selbst aber keine Werte enthalten:
|
||||
\begin{lstlisting}[keywords={VarTree}]
|
||||
\begin{lstlisting}[keywords={VarTree, data, where}]
|
||||
data VarTree a where
|
||||
VLeaf : a $\rightarrow$ VarTree a
|
||||
Node1 : VarTree a $\rightarrow$ VarTree a
|
Loading…
Reference in a new issue