System F, ML-Polymorphie begonnen
This commit is contained in:
parent
d8341f0c81
commit
2f8cdc41dc
BIN
merkzettel.pdf
BIN
merkzettel.pdf
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
\documentclass[11pt,a4paper]{scrartcl}
|
\documentclass[11pt,a4paper]{scrartcl}
|
||||||
\usepackage[a4paper,left=1.5cm,right=3.0cm,top=2.5cm,bottom=2.5cm]{geometry}
|
\usepackage[a4paper,left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}
|
||||||
\usepackage[ngerman]{babel}
|
\usepackage[ngerman]{babel}
|
||||||
\usepackage{amssymb}
|
\usepackage{amssymb}
|
||||||
\usepackage{amsthm}
|
\usepackage{amsthm}
|
||||||
@ -110,7 +110,9 @@
|
|||||||
\item Subjektreduktion: Wenn $\Gamma\vdash t:\alpha$ und $t \rightarrow_\beta^* s$, dann auch $\Gamma \vdash s:\alpha$, aber nicht umgekehrt! \satz{3.38}{45}
|
\item Subjektreduktion: Wenn $\Gamma\vdash t:\alpha$ und $t \rightarrow_\beta^* s$, dann auch $\Gamma \vdash s:\alpha$, aber nicht umgekehrt! \satz{3.38}{45}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\section*{Induktive Datentypen}
|
\section*{Induktive Datentypen}
|
||||||
|
\subsection*{Mengenkonstruktionen}
|
||||||
\subsection*{Mehrsortigkeit}
|
\subsection*{Mehrsortigkeit}
|
||||||
|
|
||||||
\subsection*{Strukturelle Induktion}
|
\subsection*{Strukturelle Induktion}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item über einsortige Datentypen \siehe{S. 63}
|
\item über einsortige Datentypen \siehe{S. 63}
|
||||||
@ -135,8 +137,61 @@
|
|||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsection*{Kodatentypen mit Alternativen}
|
\subsection*{Kodatentypen mit Alternativen}
|
||||||
\section*{System F}
|
\section*{System F}
|
||||||
\section*{Polymorphie}
|
\subsection*{Curry}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Typen:\defin{5.1}{84}
|
||||||
|
\begin{align*}
|
||||||
|
\alpha, \beta \coloneqq a\ \vert\ \alpha \rightarrow \beta\ \vert\ \forall a.\alpha && (a\in V)
|
||||||
|
\end{align*}
|
||||||
|
\item Typisierung: \textbf{TODO: $\lambda \rightarrow$}, \textbf{TODO} \defin{5.1}{84}
|
||||||
|
\begin{align*}
|
||||||
|
Inhalt...
|
||||||
|
\end{align*}
|
||||||
|
\end{itemize}
|
||||||
|
\subsection*{Church-Kodierung}\siehe{S. 84}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Natürliche Zahlen
|
||||||
|
\begin{align*}
|
||||||
|
\textbf{Todo}
|
||||||
|
\end{align*}
|
||||||
|
\item Paare
|
||||||
|
\begin{align*}
|
||||||
|
Inhalt...
|
||||||
|
\end{align*}
|
||||||
|
\item Summen
|
||||||
|
\begin{align*}
|
||||||
|
Inhalt...
|
||||||
|
\end{align*}
|
||||||
|
\item Listen
|
||||||
|
\begin{align*}
|
||||||
|
Inhalt...
|
||||||
|
\end{align*}
|
||||||
|
\end{itemize}
|
||||||
\subsection*{ML-Polymorphie}
|
\subsection*{ML-Polymorphie}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Einschränkung von System F durch $\forall$ nur auf oberster Ebene sowie Mehrfachinstanziierung polymorpher Funktionen nur in $let$-Konstrukt \siehe{S. 88}
|
||||||
|
\item Typen
|
||||||
|
\begin{equation*}
|
||||||
|
\alpha, \beta \coloneqq a\ \vert\ \alpha \rightarrow \beta
|
||||||
|
\end{equation*}
|
||||||
|
\item Typschemata
|
||||||
|
\begin{align*}
|
||||||
|
S \coloneqq \forall a_1, \ldots, a_k.\alpha &&(k\geq 0)
|
||||||
|
\end{align*}
|
||||||
|
\item Terme
|
||||||
|
\begin{equation*}
|
||||||
|
t,s \coloneqq x\ \vert\ t\ s\ \vert\ \lambda x.t\ \vert\ let\ x = t\ in\ s
|
||||||
|
\end{equation*}
|
||||||
|
\item Kontexte
|
||||||
|
\begin{align*}
|
||||||
|
\Gamma &= ( x_1:S_1,\ldots, x_n :S_n )\\
|
||||||
|
Cl(\Gamma, \alpha) &= \forall a_1,\ldots,a_k.\alpha &&\text{für $FV(\alpha)\backslash FV(\Gamma) = \lbrace a_1,\ldots,a_k \rbrace$}
|
||||||
|
\end{align*}
|
||||||
|
\item Typisierungsregeln \textbf{TODO}
|
||||||
|
\item Inversionslemma \textbf{TODO}
|
||||||
|
\item erweiterter Algorithmus W \textbf{TODO}
|
||||||
|
\end{itemize}
|
||||||
|
\section*{Reguläre Ausdrücke}
|
||||||
\section*{Unifikationsalgorithmus (Martelli/Montanari)}
|
\section*{Unifikationsalgorithmus (Martelli/Montanari)}
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
&S \cup \lbrace x \pteq x\rbrace &&\rightarrow S &&\text{(delete)}\\
|
&S \cup \lbrace x \pteq x\rbrace &&\rightarrow S &&\text{(delete)}\\
|
||||||
|
Loading…
Reference in New Issue
Block a user