├── .gitignore ├── README.md ├── Uebungen ├── latteachCD.cls ├── macros.tex ├── theolog.sty ├── uebung-01.tex ├── uebung-02.tex ├── uebung-03.tex ├── uebung-04.tex ├── uebung-05.tex ├── uebung-06-03-musterloesung.tex ├── uebung-06.tex ├── uebung-07-04-musterloesung.tex ├── uebung-07.tex ├── uebung-08.tex ├── uebung-09.tex ├── uebung-10-04-musterloesung.tex ├── uebung-10.tex └── uebung-11.tex ├── Vorlesungen ├── TU_Logo_SW.pdf ├── beamercolorthemetud.sty ├── beamerfontthemetud.sty ├── beamerinnerthemetud.sty ├── beamerouterthemetud.sty ├── beamerthemetud.sty ├── build.sh ├── images │ ├── Aristotle.jpg │ ├── Cantor-1870.jpg │ ├── Cantor-190x.jpg │ ├── Cole.jpg │ ├── Goedel.jpg │ ├── Herbrand.jpg │ ├── Hilbert.jpg │ ├── Koenigsberg,_Map_by_Euler.png │ ├── Koenigsberg,_Map_by_Merian-Erben_1652.jpg │ ├── Le_Temps_1931-07-29_Herbrand-BnF.jpg │ ├── Le_Temps_1931-07-30_Herbrand-BnF.jpg │ ├── Leibniz.jpg │ ├── Natascha_Artin_Brunswick.jpg │ ├── Paris-1900-Weltausstellung.jpg │ ├── Post.jpg │ ├── Rado.jpg │ ├── Russell.jpg │ ├── Skolem.jpg │ ├── Turing-5.jpg │ ├── Turing.jpg │ ├── halting-d.png │ ├── halting-oracle.png │ ├── halting-paradox.png │ ├── halting-tm.png │ ├── mate-262.png │ ├── mate-3.png │ ├── proof-tree.pdf │ ├── proof-tree.pdf_tex │ └── proof-tree.svg ├── lecture-01.tex ├── lecture-02.tex ├── lecture-03.tex ├── lecture-04.tex ├── lecture-05.tex ├── lecture-06.tex ├── lecture-07.tex ├── lecture-08.tex ├── lecture-09.tex ├── lecture-10.tex ├── lecture-11.tex ├── lecture-12.tex ├── lecture-13.tex ├── lecture-14.tex ├── lecture-15.tex ├── lecture-16.tex ├── lecture-17.tex ├── lecture-18.tex ├── lecture-19.tex ├── lecture-20.tex ├── lecture-21.tex ├── lecture-22.tex ├── lecture-23.tex ├── lecture-24.tex ├── macros-lecture.tex ├── tudcolors.sty └── tudfonts.sty └── macros.tex /.gitignore: -------------------------------------------------------------------------------- 1 | #*# 2 | *~ 3 | *.aux 4 | *.log 5 | *.synctex.gz 6 | *.pdf 7 | *.fls 8 | *.nav 9 | *.out 10 | *.snm 11 | *.toc 12 | *.fdb_latexmk 13 | Uebungen/auto/ 14 | Vorlesungen/auto/ 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Vorlesungsfolien Theoretische Informatik und Logik 2 | ================================================== 3 | 4 | [![Project Stats](https://www.openhub.net/p/TheoLog/widgets/project_thin_badge.gif)](https://www.openhub.net/p/TheoLog) 5 | 6 | *(This repository contains LaTeX sources of a 7 | [German language university course in theoretical computer science](https://iccl.inf.tu-dresden.de/web/Theoretische_Informatik_und_Logik_(SS2024)/en).)* 8 | 9 | Dieses Repository enthält die LaTeX-Quellen der Folien zur Vorlesung [Theoretische Informatik und Logik](https://iccl.inf.tu-dresden.de/web/Theoretische_Informatik_und_Logik_(SS2024)) 10 | der [Fakultät Informatik der Technischen Universität Dresden](https://tu-dresden.de/ing/informatik), wie sie im 11 | Sommersemester 2017 präsentiert wurden. 12 | 13 | Die Vorlesung vermittelt eine vertiefende Einleitung in die theoretische 14 | Informatik, beginnend mit den Grundlagen der Berechenbarkeits- und 15 | Komplexitätstheorie, Prädikatenlogik und deren Bezug zu Komplexität und 16 | Datenbanken, bis hin zu weiterführenden Themen wie Gödels 17 | Unvollständigkeitstheoreme und die Beziehung von Logik und formalen Sprachen. 18 | Wir stoßen vor zu den Grenzen der Informatik und Mathematik, treffen auf fleißige Biber 19 | und verrückte Logiker, vergleichen SQL mit Tic Tac Toe und stellen die großen Fragen 20 | unseres Fachgebiets. 21 | 22 | Die Vorlesung ist weitgehend selbsterklärend, aber Grundlagen aus der Veranstaltung 23 | [Formale Systeme](https://iccl.inf.tu-dresden.de/web/Formale_Systeme_(WS2023)) können 24 | hilfreich sein. 25 | 26 | PDFs erstellen 27 | -------------- 28 | 29 | Die Quellen können mit ```pdflatex``` in PDFs umgewandelt werden. 30 | 31 | Die fertigen PDFs aus dem Sommer 2024 sind online zu finden unter https://iccl.inf.tu-dresden.de/web/TheoLog2024. 32 | 33 | Vorlesungsvideos 34 | ---------------- 35 | 36 | Videovorlesung aus dem Sommersemester 2021 sind auf der [Vorlesungswebseite 2021](https://iccl.inf.tu-dresden.de/web/TheoLog2021) 37 | zu finden. Diese Videos sind auch für 2024 verwendbar. 38 | 39 | Lizenz und Nutzung in der Lehre 40 | ------------------------------- 41 | 42 | Soweit nicht anders angegeben stehen alle Texte unter der Lizenz 43 | [Creative Commons CC By 3.0 Deutschland](https://creativecommons.org/licenses/by/3.0/de/) genutzt, weitergegeben 44 | und modifiziert werden. Als Namensnennung muss dabei folgende Angabe eingefügt werden: 45 | 46 | (C) Markus Krötzsch, https://iccl.inf.tu-dresden.de/web/TheoLog2024, CC BY 3.0 DE 47 | 48 | Bildrechte können davon abweichen und sind gesondert in den LaTeX-Dateien angegeben. 49 | Die Foliensätze enthalten keinerlei Texte, die aus Werken entnommen sind, für welche die VG Wort Verwertungsrechte vertritt. 50 | 51 | Die Nutzung der Materialien in eigenen Lehrveranstaltungen ist willkommen, sofern der obige Lizenztext 52 | in allen abgeleiteten Foliensätzen angegeben wird. Rückmeldungen sind ebenfalls willkommen (z.B. als Issue zu diesem 53 | Repository); wir verlinken hier gern auf die Homepages der entsprechenden Kurse. Interessierte Lehrende können 54 | ihre abgewandelten Quellen auch mit in diesem Respository veröffentlichen -- kontaktieren Sie Prof. Krötzsch. 55 | 56 | Autoren 57 | ------- 58 | 59 | Die Folien wurden erstellt von [Markus Krötzsch](https://iccl.inf.tu-dresden.de/web/Markus_Krötzsch). 60 | Eine vollständige Liste der Beitragenden ist unter https://github.com/mkroetzsch/TheoLog/graphs/contributors 61 | zu finden. 62 | 63 | Hinweise und Vorschläge 64 | ----------------------- 65 | 66 | Verbesserungsvorschläge und Fehler können als [Issues](https://github.com/mkroetzsch/TheoLog/issues) gemeldet 67 | werden. Pull-Requests sind willkommen. 68 | 69 | -------------------------------------------------------------------------------- /Uebungen/latteachCD.cls: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \ProvidesClass{latteachCD}[2017/04/05 Dummy Exercise Sheet Style] 3 | 4 | \LoadClass[11pt,a4paper]{article} 5 | 6 | \RequirePackage{parskip} 7 | \RequirePackage{ifthen} 8 | \RequirePackage[T1]{fontenc} 9 | \RequirePackage[utf8]{inputenc} 10 | \RequirePackage{csquotes} 11 | \RequirePackage{lmodern} 12 | \RequirePackage{microtype} 13 | \RequirePackage{mathtools} 14 | \RequirePackage{amsfonts} 15 | \RequirePackage{amssymb} 16 | \RequirePackage{wasysym} 17 | \RequirePackage{stmaryrd} 18 | \RequirePackage{enumitem} 19 | \RequirePackage{sfmath} 20 | 21 | \newif\if@german 22 | \@germanfalse 23 | \DeclareOption{german}{\@germantrue} 24 | \ProcessOptions\relax 25 | 26 | \setlength{\textheight}{238mm} 27 | \setlength{\topmargin}{30mm} 28 | \addtolength{\topmargin}{-1in} 29 | \setlength{\headheight}{0mm} 30 | \setlength{\headsep}{0mm} 31 | \setlength{\topskip}{0mm} 32 | \setlength{\footskip}{17mm} 33 | 34 | \setlength{\textwidth}{160mm} 35 | \setlength{\oddsidemargin}{30mm} 36 | \addtolength{\oddsidemargin}{-1in} 37 | \setlength{\evensidemargin}{\oddsidemargin} 38 | 39 | \newcommand{\@notice}{Notice} 40 | \newcommand{\@exercise}{Exercise} 41 | \newcommand{\@faculty}{Faculty of Computer Science} 42 | \newcommand{\@institute}{Institute of Theoretical Computer Science} 43 | \newcommand{\@chair}{Chair of Automata Theory} 44 | 45 | \if@german 46 | \RequirePackage[ngerman]{babel} 47 | \renewcommand{\@notice}{Hinweis} 48 | \renewcommand{\@exercise}{Aufgabe} 49 | \renewcommand{\@faculty}{Fakultät Informatik} 50 | \renewcommand{\@institute}{Institut für Theoretische Informatik} 51 | \renewcommand{\@chair}{Lehrstuhl für Automatentheorie} 52 | \else 53 | \RequirePackage[american]{babel} 54 | \fi 55 | 56 | \newcounter{exercise} 57 | \newenvironment{exercise}[1][] 58 | {\refstepcounter{exercise}{\textbf{\@exercise~\theexercise}} 59 | \ifthenelse{\equal{#1}{}}{}{{\bf{(#1)}}}\\[1ex] 60 | } 61 | {\vspace{2ex}} 62 | \newcommand{\notice}[1]{ 63 | \vspace*{0.1cm} 64 | 65 | \rule{\textwidth}{.5pt} 66 | 67 | {\bf{\@notice}}\\[0.2cm] 68 | 69 | #1\\ 70 | 71 | \rule{\textwidth}{.5pt} 72 | \vspace*{0.1cm} 73 | } 74 | 75 | \newcommand{\@term}{~} 76 | \newcommand{\@course}{~} 77 | \newcommand{\term}[1]{\renewcommand{\@term}{#1}} 78 | \newcommand{\course}[1]{\renewcommand{\@course}{#1}} 79 | \renewcommand{\maketitle}{% 80 | {\bf\Large \@course}\\[1ex] 81 | {\textbf{\@title}}\\[1ex] 82 | \@author\\ 83 | \@term\\[5ex]% 84 | } 85 | 86 | 87 | % --- Zaehler setzen --- 88 | \renewcommand{\theenumi}{\alph{enumi}}% 89 | \renewcommand{\labelenumi}{\theenumi)}% 90 | \setcounter{exercise}{0}% 91 | \setcounter{page}{1}% -------------------------------------------------------------------------------- /Uebungen/macros.tex: -------------------------------------------------------------------------------- 1 | ../macros.tex -------------------------------------------------------------------------------- /Uebungen/theolog.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{theolog} 2 | 3 | \RequirePackage{kvoptions} 4 | \DeclareStringOption[??]{sheetnumber} 5 | \DeclareStringOption[2017]{year} 6 | 7 | \ProcessKeyvalOptions* 8 | 9 | \author{~} 10 | \term{Sommersemester~\theolog@year} 11 | \course{Theoretische Informatik und Logik} 12 | \title{\theolog@sheetnumber.~Übungsblatt} 13 | 14 | \newcommand{\abs}[1]{\lvert#1\rvert} 15 | \newcommand{\subsets}[1]{\mathfrak{P}(#1)} 16 | \renewcommand{\phi}{\varphi} 17 | 18 | \usepackage{mdframed} 19 | \usepackage{csquotes} 20 | \usepackage{graphicx} 21 | \usepackage{booktabs} 22 | \usepackage{array} 23 | 24 | \input{macros} 25 | 26 | \newcommand{\Hinweis}[1]{% 27 | {\medskip \noindent\small \textbf{Hinweis:}\\[1.5ex] 28 | \hbox{\scalebox{1}[-1]{\parbox{\linewidth}{#1}}}}\ignorespaces} 29 | 30 | % Greek counters 31 | % https://tex.stackexchange.com/questions/4058/greek-numbering 32 | \newcommand*{\BoldGreek}[1]{% 33 | \expandafter\@boldgreek\csname c@#1\endcsname 34 | } 35 | \newcommand*{\@boldgreek}[1]{% 36 | \ensuremath{\expandafter\boldsymbol\ifcase#1\or\alpha\or\beta\or\gamma\or\delta\or\varepsilon 37 | \or\zeta\or\eta\or\theta\or\iota\or\kappa\or\lambda 38 | \or\mu\or\nu\or\xi\or o\or\pi\or\varrho\or\sigma 39 | \or\tau\or\upsilon\or\phi\or\chi\or\psi\or\omega 40 | \else\@ctrerr\fi} 41 | } 42 | 43 | % Hebrew counters 44 | % https://tex.stackexchange.com/questions/226793/what-are-tex-codes-for-hebrew-letters-to-be-used-as-math-mode-symbols 45 | % this requires the rcjhbltx font 46 | 47 | \usepackage{amsmath,amssymb} 48 | 49 | % FIXME: does not scale 50 | % FIXME: wrong order 51 | 52 | % \DeclareFontFamily{U}{rcjhbltx}{} 53 | % \DeclareFontShape{U}{rcjhbltx}{m}{n}{<->rcjhbltx}{} 54 | % \DeclareSymbolFont{hebrewletters}{U}{rcjhbltx}{m}{n} 55 | 56 | % % remove the definitions from amssymb 57 | % \let\aleph\relax\let\beth\relax 58 | % \let\gimel\relax\let\daleth\relax 59 | 60 | % \DeclareMathSymbol{\aleph}{\mathord}{hebrewletters}{39} 61 | % \DeclareMathSymbol{\beth}{\mathord}{hebrewletters}{98}\let\bet\beth 62 | % \DeclareMathSymbol{\gimel}{\mathord}{hebrewletters}{103} 63 | % \DeclareMathSymbol{\daleth}{\mathord}{hebrewletters}{100}\let\dalet\daleth 64 | 65 | % \DeclareMathSymbol{\lamed}{\mathord}{hebrewletters}{108} 66 | % \DeclareMathSymbol{\mem}{\mathord}{hebrewletters}{109}\let\mim\mem 67 | % \DeclareMathSymbol{\ayin}{\mathord}{hebrewletters}{96} 68 | % \DeclareMathSymbol{\tsadi}{\mathord}{hebrewletters}{118} 69 | % \DeclareMathSymbol{\qof}{\mathord}{hebrewletters}{114} 70 | % \DeclareMathSymbol{\shin}{\mathord}{hebrewletters}{152} 71 | 72 | % \newcommand*{\Hebrew}[1]{% 73 | % \expandafter\@hebrew\csname c@#1\endcsname 74 | % } 75 | % \newcommand*{\@hebrew}[1]{% 76 | % \ensuremath{\ifcase#1\or\aleph\or\beth\or\gimel\or\daleth\or\lamed% 77 | % \or\mem\or\ayin\or\tsadi\or\qof\or\shin\else\@ctrerr\fi}} 78 | -------------------------------------------------------------------------------- /Uebungen/uebung-01.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | \usepackage[sheetnumber=1]{theolog} 8 | 9 | \begin{document} 10 | 11 | \maketitle 12 | 13 | \begin{mdframed} 14 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 15 | Selbstkontrolle. 16 | 17 | \renewcommand{\theexercise}{\Alph{exercise}} 18 | 19 | \begin{exercise} 20 | Wiederholen Sie die Begriffe \emph{Einband Turing-Maschine}, \emph{Mehrband 21 | Turing-Maschine}, \emph{Entscheidungsproblem}, \emph{Unentscheidbarkeit}, 22 | \emph{Aufzählbarkeit}, \emph{Abzählbarkeit} und \emph{Halteproblem}.% 23 | \end{exercise} 24 | 25 | \begin{exercise} 26 | Zeigen Sie: Wenn es möglich ist, für zwei beliebige Turing-Maschinen zu 27 | entscheiden, ob sie dieselbe Sprache akzeptieren, so ist es auch möglich, 28 | für beliebige Turing-Maschinen zu entscheiden, ob sie die leere Sprache 29 | akzeptieren. 30 | \end{exercise} 31 | 32 | \end{mdframed} 33 | 34 | \vspace*{\baselineskip} 35 | 36 | \setcounter{exercise}{0} 37 | 38 | \begin{exercise} 39 | Zeigen Sie folgende Aussagen: 40 | \begin{enumerate} 41 | \item $\abs{\mathbb N} = \abs{\mathbb N \times \mathbb N}$; 42 | \item $\abs{\mathbb N} = \abs{\mathbb Q}$; 43 | \item $\abs{\mathbb N} \neq \abs{\mathbb R}$; 44 | \item für jede nicht-leere endliche Menge $\Sigma$ ist $\Sigma^{*}$ abzählbar 45 | unendlich. 46 | \end{enumerate} 47 | \end{exercise} 48 | 49 | \begin{exercise} 50 | Sei $M$ eine Menge. Zeigen Sie, dass es keine surjektive Funktion $f \colon M 51 | \to \subsets{M}$ gibt. Folgern Sie daraus, dass stets $\abs{M} < 52 | \abs{\subsets{M}}$ gilt. 53 | \end{exercise} 54 | 55 | \begin{exercise} 56 | Konstruieren Sie eine Turing-Maschine $\mathcal{A}_{\text{mul}}$, welche die 57 | Multiplikation zweier natürlicher Zahlen implementiert. Dabei sollen sowohl 58 | die Eingaben als auch die Ausgabe unär kodiert sein. 59 | \end{exercise} 60 | 61 | \begin{exercise} 62 | Zeigen Sie: Wenn es möglich ist, für zwei beliebige Turing-Maschinen zu 63 | entscheiden, ob sie dieselbe Sprache akzeptieren, so ist es auch möglich, für 64 | beliebige Turing-Maschinen zu entscheiden, ob sie auf der leeren Eingabe 65 | halten. 66 | \end{exercise} 67 | 68 | \end{document} 69 | -------------------------------------------------------------------------------- /Uebungen/uebung-02.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | \usepackage[sheetnumber=2]{theolog} 9 | 10 | % LOOP- und WHILE-Berechenbarkeit 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Alph{exercise}} 21 | \setcounter{exercise}{2} 22 | 23 | \begin{exercise} 24 | Zeigen Sie, dass $\{1\}^{*}$ unentscheidbare Teilmengen besitzt. 25 | \end{exercise} 26 | 27 | \begin{exercise} 28 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 29 | \begin{enumerate} 30 | \item Jedes LOOP-Programm terminiert. 31 | \item Zu jedem WHILE-Programm gibt es ein äquivalentes LOOP-Programm. 32 | \item Die Anzahl der Ausführungen von $P$ in der LOOP-Schleife 33 | \begin{center} 34 | \ttfamily LOOP $x_{i}$ DO $P$ END 35 | \end{center} 36 | kann beeinflusst werden, indem $x_{i}$ in $P$ entsprechend modifiziert wird. 37 | \item Die Ackermannfunktion ist total und damit LOOP-berechenbar. 38 | \end{enumerate} 39 | \end{exercise} 40 | \end{mdframed} 41 | 42 | \vspace*{\baselineskip} 43 | 44 | \setcounter{exercise}{0} 45 | 46 | \begin{exercise} 47 | Zeigen Sie, dass folgende Funktionen $f\colon \mathbb N^{2} \to \mathbb 48 | N$ LOOP-berechenbar sind: 49 | \begin{enumerate} 50 | \item $f(x,y) \coloneqq \max(x - y, 0)$ 51 | \item $f(x,y) \coloneqq x \cdot y$ 52 | \item $f(x,y) \coloneqq \max(x,y)$ 53 | \item $f(x,y) \coloneqq \operatorname{ggT}(x,y)$, wobei 54 | $\operatorname{ggT}(x,y)$ den größten gemeinsamen Teiler von $x$ und $y$ bezeichnet. 55 | \end{enumerate} 56 | \end{exercise} 57 | 58 | \begin{exercise} 59 | Mit $\operatorname{kgV}(x_{1}, x_{2})$ bezeichnen wir das kleinste gemeinsame Vielfache zweier 60 | natürlicher Zahlen $x_{1}$ und $x_{2}$. 61 | Geben Sie ein WHILE-Programm an, das die Funktion $f \colon \mathbb N^{2} \to 62 | \mathbb N, (x_{1}, x_{2}) \mapsto \operatorname{kgV}(x_{1}, x_{2})$ 63 | berechnet und erklären Sie seine Arbeitsweise. 64 | \end{exercise} 65 | 66 | \newpage 67 | 68 | \begin{exercise} 69 | % Siehe https://jeremykun.com/2012/04/21/kolmogorov-complexity-a-primer/ 70 | Es sei $\Sigma$ ein fest gewähltes Alphabet mit mindestens zwei Elementen. 71 | Wir betrachten eine Programmiersprache $L$ über $\Sigma$, die in der Lage ist, 72 | Turing-Maschinen zu simulieren. Für ein Wort $w \in \Sigma^{*}$ ist die 73 | \emph{Kolmogorov-Komplexität} $K_{L}(w)$ die Länge des kürzesten Programms in 74 | $L$, welches bei leerer Eingabe das Wort $w$ als Ausgabe produziert. 75 | 76 | Zeigen Sie folgende Aussagen: 77 | \begin{enumerate} 78 | \item Es gibt für jede natürliche Zahl $n \in \mathbb N$ ein Wort $w \in 79 | \Sigma^{*}$ der Länge $\lvert w\rvert = n$, so dass $K_{L}(w) \geq n$. 80 | \item Es gibt eine Konstante $c \in \mathbb N$, so dass gilt: Ist $w$ das 81 | Ergebnis der Berechnung einer Turing-Maschine $M$ mit Eingabe $x$, dann 82 | \begin{equation*} 83 | K_{L}(w) \leq \lvert\enc(M)\#\#\enc(x)\rvert + c, 84 | \end{equation*} 85 | wobei $\enc(M)\#\#\enc(x)$ eine (effektive) Kodierung der Maschine 86 | $M$ und der Eingabe $x$ als ein Wort über $\Sigma$ ist. 87 | \item Die Abbildung $w \mapsto K_{L}(w)$ ist nicht berechenbar. 88 | \end{enumerate} 89 | 90 | Damit ist insbesondere gezeigt, dass es niemals einen Compiler geben kann, der 91 | ein gegebenes Programm in ein kleinstmögliches übersetzt. 92 | \end{exercise} 93 | 94 | \end{document} 95 | -------------------------------------------------------------------------------- /Uebungen/uebung-03.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | \usepackage[sheetnumber=3]{theolog} 9 | 10 | % Entscheidbarkeit, Unentscheidbarkeit, Reduktionen 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \enlargethispage{2\baselineskip} 17 | 18 | \begin{mdframed} 19 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 20 | Selbstkontrolle. 21 | 22 | \renewcommand{\theexercise}{\Alph{exercise}} 23 | \setcounter{exercise}{4} 24 | 25 | \begin{exercise} 26 | Geben Sie eine Turing-Maschine $\mathcal{A}_{\mathsf{mod2}}$ an, die die 27 | Funktion $f\colon \mathbb N \to \mathbb N$ mit $f(x) = (x \bmod 2)$ 28 | berechnet. Stellen Sie dabei die Zahlen in unärer Kodierung dar. 29 | \end{exercise} 30 | 31 | \begin{exercise} 32 | Es sei $f \colon \mathbb N \to \mathbb N$ mit $f(x) = \lfloor 33 | \log_{10}(x)\rfloor$. Geben Sie ein WHILE-Programm an, welches $f$ 34 | berechnet. 35 | \end{exercise} 36 | \vspace*{-0.5\baselineskip} 37 | \end{mdframed} 38 | 39 | \vspace*{0.5\baselineskip} 40 | 41 | \setcounter{exercise}{0} 42 | 43 | \begin{exercise} 44 | % Quelle: Sipser, Aufgab 5.5 45 | Zeigen Sie, dass es keine Many-One-Reduktion vom Halteproblem 46 | $\Slang{P}_{\mathsf{halt}}$ von Turing-Maschinen auf des Leerheitsproblem 47 | \begin{equation*} 48 | \Slang{P}_{\mathsf{leer}} \coloneqq \{ \mathsf{enc}(\Smach{M}) \mid 49 | \mathcal{L}(\Smach{M}) = \emptyset \} 50 | \end{equation*} 51 | von Turing-Maschinen gibt. 52 | \end{exercise} 53 | 54 | \begin{exercise} 55 | % Sipser 5.25 56 | Es sei 57 | \begin{equation*} 58 | T \coloneqq \{ \mathsf{enc}(\Smach{M}) \mid \Smach{M} \text{ ist eine Turing-Maschine, 59 | welche $w^{\mathcal{R}}$ akzeptiert, falls sie $w$ akzeptiert}\}, 60 | \end{equation*} 61 | wobei $w^{\mathcal{R}}$ das zu $w$ umgekehrte Wort ist. Zeigen Sie, dass $T$ 62 | nicht entscheidbar ist. 63 | \end{exercise} 64 | 65 | \begin{exercise} 66 | % Quelle: Sipser, Aufgabe 4.14 67 | Es sei 68 | \begin{equation*} 69 | L \coloneqq \{\mathsf{enc}(G)\#\#\mathsf{enc}(x) \mid G \text{ kontextfreie 70 | Grammatik und $x$ Teilwort eines Wortes aus } L(G)\}, 71 | \end{equation*} 72 | wobei $\mathsf{enc}(G)$ eine Kodierung von $G$ ist. Zeigen Sie, dass $L$ auf 73 | das Komplement des Leerheitsproblems kontextfreier Grammatiken 74 | many-one-reduziert werden kann. 75 | 76 | \Hinweis{Nutzen Sie die Tatsache, dass der Schnitt einer regulären und einer 77 | kontextfreien Sprache wieder kontextfrei ist.} 78 | \end{exercise} 79 | 80 | \begin{exercise} 81 | % Quelle: Sipser, Aufgabe 5.10 82 | Zeigen Sie, dass jede semi-entscheidbare Sprache $L$ auf das Halteproblem 83 | $\Slang{P}_{\mathsf{halt}}$ many-one-reduziert werden kann. 84 | \end{exercise} 85 | 86 | \end{document} 87 | -------------------------------------------------------------------------------- /Uebungen/uebung-04.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | \usepackage[sheetnumber=4]{theolog} 9 | 10 | % Unentscheidbarkeit und PCP 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgende Aufgabe wird nicht in den Übungen besprochen und dient der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Alph{exercise}} 21 | \setcounter{exercise}{6} 22 | 23 | \begin{exercise} 24 | % TheoLog 2014 25 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 26 | \begin{enumerate} 27 | \item Die Menge der Instanzen des Postschen Korrespondenzproblems, welche 28 | eine Lösung haben, ist semi-entscheidbar. 29 | \item Das Postsche Korrespondenzproblem ist bereits über dem Alphabet 30 | $\Sigma = \{a, b\}$ nicht entscheidbar. 31 | \item Es ist entscheidbar, ob eine Turingmaschine nur Wörter akzeptiert, die 32 | Palindrome sind. (Ein Palindrom ist ein Wort $w = a_{1} \dots a_{n}$ mit 33 | $a_{1} \dots a_{n} = a_{n} \dots a_{1}$.) 34 | \item $\Slang{P}_{\mathsf{halt}}$ ist semi-entscheidbar. 35 | \item Es ist nicht entscheidbar, ob die von einer deterministischen 36 | Turing-Maschine berechnete Funktion total ist. 37 | \item Es gibt reguläre Sprachen, die nicht semi-entscheidbar sind. 38 | \end{enumerate} 39 | 40 | \vspace*{-0.5\baselineskip} 41 | \end{exercise} 42 | \end{mdframed} 43 | 44 | \vspace*{0.5\baselineskip} 45 | 46 | \setcounter{exercise}{0} 47 | 48 | \begin{exercise} 49 | % TheoLog 2014 50 | Besitzen folgende Instanzen $P_{i}$ des Postschen Korrespondenzproblems Lösungen oder 51 | nicht? Begründen Sie Ihre Antwort. 52 | \def\BB#1{\begin{bmatrix}#1\end{bmatrix}} 53 | \begin{enumerate} 54 | \item $P_{1} = \BB{a\\ aaa}, \BB{abaaa\\ab}, \BB{ab\\b}$ 55 | \item $P_{2} = \BB{ab\\aba}, \BB{baa\\aa}, \BB{aba\\baa}$ 56 | \item $P_{3} = \BB{bba\\ b}, \BB{ba\\baa}, \BB{ba\\aba}, \BB{ab\\bba}$ 57 | \end{enumerate} 58 | (Für einige Teilaufgaben ist die Verwendung eines Computers sinnvoll.) 59 | \end{exercise} 60 | 61 | \begin{exercise} 62 | % TheoLog 2014 63 | Zeigen Sie, dass das Postsche Korrespondenzproblem über einem einelementigen 64 | Alphabet entscheidbar ist. 65 | \end{exercise} 66 | 67 | \begin{exercise} 68 | % Selbst 69 | Zeigen Sie, dass folgendes Problem unentscheidbar ist: gegeben eine 70 | Turing-Maschine $M$ und ein $k \in \mathbb N$, kann die Sprache $L(\Smach{M})$ 71 | durch eine Turing-Maschine mit höchstens $k$ Zuständen erkannt werden? 72 | 73 | Zeigen Sie dazu, dass für $k = 1$ die Menge 74 | \begin{equation*} 75 | T_{k} \coloneqq \{ \mathsf{enc}(\Smach{M}) \mid L(\Smach{M}) 76 | \text{ wird von einer TM mit höchstens $k$ Zuständen erkannt} \} 77 | \end{equation*} 78 | nicht entscheidbar ist. Warum zeigt dies die ursprüngliche Behauptung? 79 | \end{exercise} 80 | 81 | \begin{exercise} 82 | % Sipser, Thm 5.30 83 | Zeigen Sie, dass weder das Äquivalenzproblem $\Slang{P}_{\mathsf{äquiv}}$ für 84 | Turing-Maschinen noch dessen Komplement 85 | $\overline{\Slang{P}}_{\mathsf{äquiv}}$ semi-entscheidbar ist, wobei 86 | \begin{align*} 87 | \Slang{P}_{\mathsf{äquiv}} \coloneqq \{ \enc(\Smach{M}_{1})\#\#\enc(\Smach{M}_{2}) 88 | \mid L(\Smach{M}_{1}) = L(\Smach{M}_{2}) \}, \\ 89 | \overline{\Slang{P}}_{\mathsf{äquiv}} \coloneqq \{ \enc(\Smach{M}_{1})\#\#\enc(\Smach{M}_{2}) 90 | \mid L(\Smach{M}_{1}) \neq L(\Smach{M}_{2}) \}. 91 | \end{align*} 92 | Zeigen Sie dazu, dass $\Slang{P}_{\mathsf{halt}} \leq_{m} 93 | \Slang{P}_{\mathsf{äquiv}}$ und $\Slang{P}_{\mathsf{halt}} \leq_{m} 94 | \overline{\Slang{P}}_{\mathsf{äquiv}}$ gilt. Weshalb zeigt dies die Aussage? 95 | \end{exercise} 96 | 97 | \end{document} -------------------------------------------------------------------------------- /Uebungen/uebung-05.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % Einführung in die Komplexitätstheorie 9 | 10 | \usepackage[sheetnumber=5]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Alph{exercise}} 21 | \setcounter{exercise}{7} 22 | 23 | \begin{exercise} 24 | % Markus Krötzsch 25 | Sei $\Slang{L}$ eine unentscheidbare Sprache. Zeigen Sie: 26 | \begin{enumerate} 27 | \item\label{item:1} $\Slang{L}$ hat eine Teilmenge $\Slang{T}\subseteq \Slang{L}$, die 28 | entscheidbar ist. 29 | \item\label{item:2} $\Slang{L}$ hat eine Obermenge $\Slang{O}\supseteq 30 | \Slang{L}$, die entscheidbar ist. 31 | \item Es gibt jeweils nicht nur eine sondern unendlich viele entscheidbare 32 | Teilmengen bzw. Obermengen wie in~(\ref{item:1}) und~(\ref{item:2}). 33 | \end{enumerate} 34 | \end{exercise} 35 | 36 | \renewcommand{\theexercise}{\BoldGreek{exercise}} 37 | \setcounter{exercise}{0} 38 | 39 | \begin{exercise} 40 | % TheoLog 2014 41 | \vspace*{-\baselineskip} 42 | \begin{enumerate} 43 | \item Beschreiben Sie mit eigenen Worten die Probleme, die in 44 | $\PTime$ liegen. 45 | \item Beschreiben Sie mit eigenen Worten die Probleme, die in 46 | $\NP$ liegen. 47 | \item Beschreiben Sie mit eigenen Worten die Probleme, die in $\PSpace$ 48 | liegen. 49 | \item Erläutern Sie, warum $\PTime \subseteq \NP \subseteq \PSpace$ gilt. 50 | \item Beschreiben Sie für $\mathcal{C} = \NP$ und $\mathcal{C} = \PSpace$, 51 | wann ein Problem \enquote{$\mathcal{C}$-hart} bzw.\@ 52 | \enquote{$\mathcal{C}$-vollständig} ist. 53 | \end{enumerate} 54 | \end{exercise} 55 | 56 | \end{mdframed} 57 | 58 | \vspace*{0.5\baselineskip} 59 | 60 | \setcounter{exercise}{0} 61 | 62 | \begin{exercise} 63 | % TheoLog 2014 64 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 65 | \begin{enumerate} 66 | \item Falls $\PTime \neq \NP$ gilt, dann auch $\PTime \cap \NP \neq \emptyset$. 67 | \item Es gibt Probleme, die $\NP$-hart, aber nicht $\NP$-vollständig sind. 68 | \item Polynomielle Reduzierbarkeit ist nicht transitiv. 69 | \item Ist $\Slang L_{2} \in \PTime$ und $\Slang L_{1} \leq_{p} \Slang L_{2}$, 70 | dann ist auch $\Slang L_{1} \in \PTime$. 71 | \item Ist $\Slang L_{1}$ eine $\NP$-vollständige Sprache und gilt $\Slang 72 | L_{1} \leq_{p} \Slang L_{2}$, dann ist auch $\Slang L_{2}$ eine 73 | \NP-vollständige Sprache. 74 | \item Ist $\Slang L_{2}$ eine $\NP$-vollständige Sprache und gilt $\Slang 75 | L_{1} \leq_{p} \Slang L_{2}$, dann ist auch $\Slang L_{1}$ eine 76 | \NP-vollständige Sprache. 77 | \end{enumerate} 78 | \end{exercise} 79 | 80 | \begin{exercise} 81 | % Sipser 82 | Zeigen Sie, dass das Wortproblem deterministischer endlicher Automaten in 83 | \LogSpace liegt: ist 84 | \begin{equation*} 85 | \Slang P_{\mathsf{DFA}} \coloneqq \{\,\enc(\Smach A)\#\#\enc(w) \mid 86 | \Smach A \text{ ist ein DFA, der $w$ akzeptiert}\,\}, 87 | \end{equation*} 88 | dann gilt $\Slang P_{\mathsf{DFA}} \in \LogSpace$. 89 | \end{exercise} 90 | 91 | \begin{exercise} 92 | % TheoLog 2014 93 | Es sei $\Slang{L} \coloneqq \{\,a^{n} \mid n \in \mathbb N \text{ ist keine 94 | Primzahl}\,\}$. Zeigen Sie, dass $\Slang L \in \NP$ gilt. 95 | \end{exercise} 96 | 97 | \begin{exercise} 98 | % Complexity Theory Lecture by Markus Krötzsch and Daniel Borchmann 99 | Zeigen Sie: ist $\PTime = \NP$, dann gibt es einen Algorithmus, der in 100 | polynomieller Zeit für jede erfüllbare aussagenlogische Formel eine erfüllende 101 | Belegung findet. 102 | \end{exercise} 103 | 104 | \end{document} 105 | -------------------------------------------------------------------------------- /Uebungen/uebung-06-03-musterloesung.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % NP-Vollständigkeit 9 | 10 | \usepackage[sheetnumber=6]{theolog} 11 | \title{Musterlösung zu Übungsblatt~6} 12 | 13 | \usepackage{ragged2e} 14 | 15 | \begin{document} 16 | 17 | \maketitle 18 | 19 | \vspace*{0.5\baselineskip} 20 | \setcounter{exercise}{2} 21 | \justifying 22 | 23 | \begin{exercise} 24 | % Folklore 25 | Sei $\Sigma$ ein Alphabet und $A, B \subseteq \Sigma^{*}$. Wir sagen, dass 26 | $A$ auf $B$ in \emph{logarithmischen Platz reduzierbar ist}, und schreiben $A 27 | \leq_{\ell} B$, falls es eine Many-One-Reduktion von $A$ nach $B$ gibt, die in 28 | logarithmischen Platz berechenbar ist. Zeigen Sie: gilt $A \leq_{\ell} B$ und 29 | $B \leq_{\ell} C$, dann gilt auch $A \leq_{\ell} C$. 30 | \end{exercise} 31 | 32 | \emph{Lösung}\/: Wir zeigen, dass für zwei logspace-berechenbare Funktion $f, 33 | g\colon \Sigma^{*} \to \Sigma^{*}$ auch $f \circ g$ logspace-berechenbar ist. 34 | Seien dazu $\Smach M_{f}$ und $\Smach M_{g}$ Turing-Maschinen, die mit 35 | logarithmischer Platzbeschränkung die Funktionen $f$ und $g$ berechnen. 36 | 37 | Eine erste Idee, eine Turing-Maschine $\Smach M$ zu erhalten, die $f \circ g$ 38 | berechnet, ist, zuerst $\Smach M_{g}$ auf der Eingabe aufzurufen, das 39 | Zwischenergebnis zu speichern, und dann $\Smach M_{f}$ auf diesem 40 | Zwischenergebnis laufen zu lassen. Dieser Idee funktioniert jedoch nicht: zwar 41 | benutzt $\Smach M_{g}$ bei Eingabe $w \in \Sigma^{*}$ nur zusätzlich 42 | logarithmischen Platz zur Berechnung von $g(w)$. Dieses Ergebnis kann jedoch 43 | polynomiell groß sein in der Länge von $w$ -- und damit exponentiell in der 44 | Größe des zur Verfügung stehenden Platzes, der ja logarithmisch in der Größe von 45 | $w$ beschränkt ist. Damit kann das Zwischenergebnis $g(w)$ nicht vollständig 46 | gespeichert werden und dieser Ansatz funktioniert nicht. 47 | 48 | Wir können aber diese Idee so modifizieren, dass sie funktioniert! Dazu 49 | berechnen wir die Zeichen von $g(w)$ \enquote{on demand}: wir verändern $\Smach 50 | M_{g}$ so, dass sie nur das $k$-te Symbol von $g(w)$ berechnet. Dies kann 51 | erreicht werden, indem $\Smach M_{g}$ mit einem weiteren Zähler $p$ versehen 52 | wird, der um eins hochgezählt wird, wann immer $\Smach M_{g}$ ein Symbol 53 | ausgeben möchte. Ist der Wert von $p$ gleich $k$, gibt $\Smach M_{g}$ das 54 | entsprechende Zeichen aus und hält an. 55 | 56 | Um $f(g(w))$ in logspace zu berechnen, gehen wir nun wie folgt vor: wir 57 | simulieren die Berechnung von $\Smach M_{f}$. Wann immer diese Berechnung ein 58 | Symbol von $g(w)$ lesen möchte, simulieren wir $\Smach M_{g}$ wie oben 59 | beschrieben. Beide Simulationen können in logspace durchgeführt werden, und 60 | damit kann auch $f(g(w))$ in logspace berechnet werden. 61 | 62 | Diese Berechnung von $f(g(w))$ ist recht ineffizient, da Symbole von $g(w)$ 63 | möglicherweise mehrfach berechnet werden. Wir haben aber potentiell nicht genug 64 | Platz, um das gesamte Wort $g(w)$ zu speichern. Wir tauschen also 65 | \enquote{Platz gegen Zeit}. 66 | 67 | \end{document} 68 | 69 | % LocalWords: logspace 70 | -------------------------------------------------------------------------------- /Uebungen/uebung-06.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % NP-Vollständigkeit 9 | 10 | \usepackage[sheetnumber=6]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\BoldGreek{exercise}} 21 | \setcounter{exercise}{1} 22 | 23 | \begin{exercise} 24 | % Sipser 7.43 25 | Zeigen Sie, dass \NP{} unter Kleene-Stern abgeschlossen ist. 26 | \end{exercise} 27 | 28 | \begin{exercise} 29 | % TheoLog 2014 30 | Wir betrachten das folgende Problem $K$: Gegeben sind zwei gerichtete 31 | Graphen $G_{1} = (V_{1}, E_{1})$ und $G_{2} = (V_{2}, E_{2})$ sowie eine 32 | Zahl $k \in \mathbb N$. Gefragt ist, ob es Teilmengen $V_{1}' \subseteq 33 | V_{1}$ und $V_{2}' \subseteq V_{2}$ gibt, so dass $\lvert V_{1}'\rvert = 34 | \lvert V_{2}'\rvert = k$ ist und es eine Bijektion $f \colon V_{1}' \to 35 | V_{2}'$ gibt, so dass gilt 36 | \begin{equation*} 37 | (u,v) \in E_{1} \iff (f(u), f(v)) \in E_{2}. 38 | \end{equation*} 39 | \begin{enumerate} 40 | \item Zeigen Sie $K \in \NP$. 41 | \item Zeigen Sie, dass $K$ ein \NP-hartes Problem ist. Zeigen Sie dafür, 42 | dass das Problem CLIQUE auf $K$ in polynomieller Zeit reduzierbar ist. 43 | \end{enumerate} 44 | \end{exercise} 45 | 46 | \end{mdframed} 47 | 48 | \vspace*{0.5\baselineskip} 49 | 50 | \setcounter{exercise}{0} 51 | 52 | \begin{exercise} 53 | % TheoLog 2014 54 | Wir betrachten das folgende Problem $K$: Gegeben eine aussagenlogische 55 | Formel $\phi$ mit $n$~Variablen, gibt es eine erfüllbare Belegung von $\phi$, 56 | bei der mindestens die Hälfte aller in $\phi$ vorkommenden Variablen mit 57 | \enquote{true} belegt sind? 58 | \begin{enumerate} 59 | \item Formalisieren Sie dieses Problem als Sprache und zeigen Sie, dass $K \in 60 | \NP$ gilt. 61 | \item Zeigen Sie, dass $K$ ein \NP-hartes Problem ist. 62 | \end{enumerate} 63 | \end{exercise} 64 | 65 | \begin{exercise} 66 | % Sipser 7.28 67 | Im folgenden \emph{Solitaire}-Spiel haben wir ein Spielbrett der Größe $m 68 | \times m$ gegeben. Als Ausgangsposition liegt auf jeder der $m^{2}$ 69 | Positionen entweder ein blauer Stein, ein roter Stein, oder gar nichts. Das 70 | Spiel wird nun so gespielt, dass Steine vom Brett genommen werden bis in jeder 71 | Spalte nur noch Steine einer Farbe liegen, und in jeder Zeile mindestens ein 72 | Stein liegen bleibt. In diesem Fall ist das Spiel gewonnen. Es ist möglich, 73 | dass man ausgehend von einer Ausgangsposition das Spiel nicht gewinnen kann. 74 | 75 | \begin{enumerate} 76 | \item Formalisieren Sie das Problem, für eine gegebene Ausgangsposition im 77 | Solitaire-Spiel zu entscheiden, ob es möglich ist, das Spiel zu gewinnen, 78 | als ein Entscheidungsproblem SOLITAIRE. 79 | \item Zeigen Sie, dass $\text{SOLITAIRE} \in \NP$ gilt. 80 | \item Zeigen Sie, dass SOLITAIRE ein \NP-hartes Problem ist, indem Sie zeigen, 81 | dass 3SAT in polynomieller Zeit auf SOLITAIRE reduzierbar ist. 82 | \end{enumerate} 83 | \end{exercise} 84 | 85 | \begin{exercise} 86 | % Folklore 87 | Sei $\Sigma$ ein Alphabet und $A, B \subseteq \Sigma^{*}$. Wir sagen, dass 88 | $A$ auf $B$ in \emph{logarithmischen Platz reduzierbar ist}, und schreiben $A 89 | \leq_{\ell} B$, falls es eine Many-One-Reduktion von $A$ nach $B$ gibt, die in 90 | logarithmischen Platz berechenbar ist. Zeigen Sie: gilt $A \leq_{\ell} B$ und 91 | $B \leq_{\ell} C$, dann gilt auch $A \leq_{\ell} C$. 92 | \end{exercise} 93 | 94 | \begin{exercise} 95 | % TheoLog 2014 96 | Wir betrachten das Problem SET-SPLITTING, welches für eine gegebene endliche 97 | Menge $S$ und eine Menge $C = \{C_{1}, \dots, C_{k}\}$ von Teilmengen von $S$ 98 | fragt, ob die Elemente von $S$ derart mit den Farben blau oder rot gefärbt 99 | werden können, so dass niemals alle Elemente einer Menge $C_{i}$ die gleiche 100 | Farbe bekommen. Zeigen Sie, dass SET-SPLITTING ein \NP-vollständiges Problem 101 | ist. 102 | \end{exercise} 103 | 104 | \end{document} 105 | 106 | % LocalWords: Anfangsbelegung 107 | -------------------------------------------------------------------------------- /Uebungen/uebung-07-04-musterloesung.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % NP-Vollständigkeit 9 | 10 | \usepackage[sheetnumber=6]{theolog} 11 | \title{Musterlösung zu Übungsblatt~7} 12 | 13 | \usepackage{ragged2e} 14 | 15 | \begin{document} 16 | 17 | \maketitle 18 | 19 | \vspace*{0.5\baselineskip} 20 | \setcounter{exercise}{3} 21 | \justifying 22 | 23 | \begin{exercise} 24 | % Complexity Theory 2015/16, originally Sipser 8.29 25 | Ein \emph{linear bounded automaton} (LBA) ist eine deterministische Turing 26 | Maschine $\Smach{M}$ , die bei jeder Berechnung niemals mehr Platz benutzt als 27 | bereits durch die Eingabe belegt ist. Dies erreicht \Smach{M} dadurch, dass 28 | sie niemals ein \textvisiblespace{} überschreibt und den Lesekopf nach links 29 | bewegt, sobald sie ein \textvisiblespace{} liest. 30 | 31 | Zeigen Sie, dass das Wortproblem für LBA 32 | \begin{equation*} 33 | \Slang{P}_{\mathsf{LBA}} \coloneqq \{\,\enc(\Smach{M})\#\#\enc(w) \mid 34 | \text{\Smach{M} ein LBA, der $w$ akzeptiert} \,\}. 35 | \end{equation*} 36 | ein \PSpace-vollständiges Problem ist. 37 | \end{exercise} 38 | 39 | \emph{Lösung}\/: Wir zeigen zuerst $\Slang{P}_{\mathsf{LBA}} \in \PSpace$. 40 | Dafür muss zuerst geprüft werden, ob eine gegeben Eingabe von der Form 41 | $\enc(\Smach M)\#\#\enc(w)$ ist, wobei $\Smach M$ ein LBA ist. Dabei ist leicht 42 | zu sehen, dass in polynomieller Zeit geprüft werden kann, ob $\enc(\Smach M)$ 43 | die Kodierung einer Turing-Maschine ist. Um zu sehen, dass $\Smach M$ ein LBA 44 | ist, genügt es dann zu prüfen, ob $\Smach M$ niemals ein~\blank{} überschreibt, 45 | und bei Lesen des~\blank{} dieses nicht überschreibt und den Lesekopf nach links 46 | bewegt. Auch dies kann in polynomieller Zeit geprüft werden. 47 | 48 | Als nächstes muss ein Entscheider für $\Slang P_{\mathsf{LBA}}$ prüfen, ob 49 | $\Smach M = (Q,\Sigma,\Gamma,\delta,q_{0},F)$ die Eingabe $w$ akzeptiert. Dazu 50 | beobachten wir, dass die Maschine $\Smach M$ höchstens $\lvert Q\rvert \cdot n 51 | \cdot \lvert \Gamma\rvert^{n}$ Konfigurationen durchläuft, bevor sie in eine 52 | Schleife gerät. Es genügt also, die Maschine $\Smach M$ für höchstens $\lvert 53 | Q\rvert \cdot n \cdot \lvert \Gamma\rvert^{n}$ Schritte zu simulieren um zu 54 | entscheiden, ob $\Smach M$ das Wort $w$ erkennt. Die Simulation von $\Smach M$ 55 | selbst benötigt nur linear Platz (da $\Smach M$ ein LBA ist), und hinzu kommt 56 | noch Platz für einen Zähler, dessen Wert höchstens $\lvert Q\rvert \cdot n \cdot 57 | \lvert \Gamma\rvert^{n}$ ist und der deswegen höchstens Platz $\log \lvert 58 | Q\vert + \log n + n \cdot \log\lvert \Gamma\rvert$ benötigt. Dies gesamte 59 | Simulation kann also in polynomiellen Platz ausgeführt werden. 60 | 61 | \def\pad{\operatorname{pad}} 62 | 63 | Wir zeigen nun, dass $\Slang P_{\mathsf{LBA}}$ \PSpace-hart ist. Sei dazu 64 | $\Slang L \in \PSpace$ und sei $\Smach M$ eine polynomiell platzbeschränkte 65 | Turing-Maschine, die $\Slang L$ entscheidet. Sei $p$ ein Polynom, welches den 66 | Platzverbrauch von $\Smach M$ beschränkt. Ohne Einschränkung sei dabei $p(n) 67 | \geq n$ für alle $n \in \mathbb N$. Definiere dann $\pad(w)$ durch 68 | \begin{equation*} 69 | \pad(w) = w\bot^{k}, 70 | \end{equation*} 71 | wobei $\bot$ ein neues Symbol ist, so dass $\lvert \pad(w)\rvert = p(\lvert 72 | w\rvert)$ gilt. 73 | 74 | Sei nun $\Smach M'$ die Turing-Maschine, welche $\Smach M$ auf der Eingabe 75 | simuliert und dabei das $\bot$-Zeichen wie \blank{} behandelt. Dies kann 76 | erreicht werden, indem in der Übergangsfunktion von $\Smach M$ jedes Vorkommen 77 | von \blank{} durch $\bot$ ersetzt wird, und zusätzlich noch die Transition 78 | hinzugefügt wird, dass $\Smach M'$ bei Lesen von \blank{} den Lesekopf nach 79 | links bewegt und \blank{} wieder schreibt. Dann ist $\Smach M'$ ein LBA und es gilt 80 | \begin{equation*} 81 | \Smach M' \text{ akzeptiert } w \iff \Smach M \text{ akzeptiert } w. 82 | \end{equation*} 83 | Also ist 84 | \begin{equation*} 85 | f(\enc(w)) = \enc(\Smach M')\#\#\enc(\pad(w)) 86 | \end{equation*} 87 | eine polynomiell zeitbeschränkte Reduktion von $\Slang L$ auf $\Slang 88 | P_{\mathsf{LBA}}$. Da $\Slang L$ beliebig gewählt war folgt, dass $\Slang 89 | P_{\mathsf{LBA}}$ \PSpace-hart ist. 90 | 91 | \end{document} 92 | 93 | % LocalWords: logspace 94 | -------------------------------------------------------------------------------- /Uebungen/uebung-07.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % PSpace 9 | 10 | \usepackage[sheetnumber=7]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\BoldGreek{exercise}} 21 | \setcounter{exercise}{3} 22 | 23 | \begin{exercise} 24 | % TheoLog 2014 25 | Zeigen Sie folgende Aussagen: 26 | \begin{enumerate} 27 | \item Ist $\Slang{L}_{2} \in \PSpace$ und gilt $\Slang{L}_{1} \leq_{p} 28 | \Slang{L}_{2}$, so ist auch $\Slang{L}_{1} \in \PSpace$. 29 | \item Ist $\Slang{L}_{1}$ ein \PSpace-hartes Problem, und gilt 30 | $\Slang{L}_{1} \leq_{p} \Slang{L}_{2}$, dann ist auch $\Slang{L}_{2}$ ein 31 | \PSpace-hartes Problem. 32 | \end{enumerate} 33 | \end{exercise} 34 | 35 | \begin{exercise} 36 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 37 | \begin{enumerate} 38 | \item Jedes \PSpace-harte Problem ist \NP-hart. 39 | \item Es gibt kein \NP-hartes Problem, welches in \PSpace{} liegt. 40 | \item Jedes \NP-vollständige Problem liegt in \PSpace. 41 | \item Es gilt $\NP = \PSpace$, wenn es ein \PSpace-hartes Problem in \NP{} 42 | gibt. 43 | \item Wenn $\PTime \neq \NP$ gilt, dann gibt es kein \NP-hartes Problem in 44 | \PTime. 45 | \item Sei $\Slang{L}$ ein \PSpace-vollständiges Problem. Dann gilt 46 | $\Slang{L} \in \PTime \iff \PTime = \PSpace$. 47 | \end{enumerate} 48 | \end{exercise} 49 | \end{mdframed} 50 | 51 | \vspace*{0.5\baselineskip} 52 | 53 | \setcounter{exercise}{0} 54 | 55 | \begin{exercise} 56 | % TheoLog 2014 57 | Zeigen Sie, dass \PSpace{} unter Komplement, Durchschnitt, Vereinigung, 58 | Konkatenation und Kleene-Stern abgeschlossen ist. 59 | \end{exercise} 60 | 61 | \begin{exercise} 62 | % Complexity Theory 2015/16, originally Sipser 8.26 63 | Wir betrachten das japanische Spiel \emph{Gomoku}, welches von zwei Spielern 64 | \textsf{X} und \textsf{O} auf einem $19{\times}\mskip-2mu19$-Brett % spacing 65 | % is weird; Max dazu: „Space-Complexity und kaputtes Spacing, das passt doch!“ 66 | gespielt wird. Die Spieler setzen abwechselnd ihre Steine auf das Brett, und 67 | derjenige Spieler, der zuerst fünf Steine in einer Reihe (horizontal, 68 | vertikal, oder diagonal) gelegt hat, gewinnt. Spieler \textsf{X} beginnt. 69 | 70 | \emph{Verallgemeinertes Gomoku} wird statt auf einem Brett fester Größe auf 71 | einem beliebigen $n\mathord{\times}n$-Brett gespielt. Eine \emph{Position} in 72 | diesem Spiel ist eine Belegung der Felder des Spielbretts mit Steinen der 73 | Spieler \textsf{X} und \textsf{O}, wie sie in einem wirklichen Spiel auftreten 74 | könnte. Sei 75 | \begin{align*} 76 | \Slang{GM} \coloneqq \{\,\enc(B) \mid \, % again weird spacing … 77 | & B \text{ ist eine Position im verallgemeinerten Gomoku,} \\ 78 | & \text{in der \textsf{X} eine Gewinnstrategie hat}\,\}, 79 | \end{align*} 80 | wobei $\enc(B)$ die zeilenweise Kodierung der Position $B$ über einem festen 81 | Alphabet ist. 82 | 83 | Zeigen Sie $\Slang{GM} \in \PSpace$. 84 | \end{exercise} 85 | 86 | \begin{exercise} 87 | % TheoLog 2014 88 | Welche der folgenden QBF-Formeln sind erfüllbar? Begründen Sie Ihre Antwort. 89 | \begin{enumerate} 90 | \item $\exists p_{1}. p_{1}$ 91 | \item $\forall p_{1}. p_{1}$ 92 | \item $\exists p_{1}. \bot$ 93 | \item $\forall p_{1}. \exists p_{2}. p_{2} \to p_{1}$ 94 | \item $\forall p_{1}. \exists p_{2}. \forall p_{3}. (p_{1} \lor p_{2}) \land 95 | p_{3}$ 96 | \item $\forall p_{1}. \forall p_{2}. \exists p_{3}. \forall p_{4}. (p_{1} 97 | \land p_{2} \to p_{4}) \lor \lnot p_{3}$ 98 | \end{enumerate} 99 | 100 | \end{exercise} 101 | 102 | \begin{exercise} 103 | % Complexity Theory 2015/16, originally Sipser 8.29 104 | Ein \emph{linear bounded automaton} (LBA) ist eine deterministische Turing 105 | Maschine $\Smach{M}$ , die bei jeder Berechnung niemals mehr Platz benutzt als 106 | bereits durch die Eingabe belegt ist. Dies erreicht \Smach{M} dadurch, dass 107 | sie niemals ein \textvisiblespace{} überschreibt und den Lesekopf nach links 108 | bewegt, sobald sie ein \textvisiblespace{} liest. 109 | 110 | Zeigen Sie, dass das Wortproblem für LBA 111 | \begin{equation*} 112 | \Slang{P}_{\mathsf{LBA}} \coloneqq \{\,\enc(\Smach{M})\#\#\enc(w) \mid 113 | \text{\Smach{M} ein LBA, der $w$ akzeptiert} \,\}. 114 | \end{equation*} 115 | ein \PSpace-vollständiges Problem ist. 116 | \end{exercise} 117 | 118 | \end{document} 119 | -------------------------------------------------------------------------------- /Uebungen/uebung-08.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % Fun with Complexity Theory 9 | 10 | \usepackage[sheetnumber=8]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\BoldGreek{exercise}} 21 | \setcounter{exercise}{5} 22 | 23 | \begin{exercise} 24 | % Sipser 8.2 25 | Wir betrachten folgende Position im Tic-Tac-Toe: 26 | \begin{equation*} 27 | \begin{array}{c|c|c} 28 | \mathsf{X}&& \\\midrule 29 | &\mathsf{O}& \\\midrule 30 | \mathsf{O}&&\mathsf{X} 31 | \end{array} 32 | \end{equation*} 33 | Angenommen, Spieler \textsf{X} ist am Zug. Beschreiben Sie eine 34 | Gewinnstrategie für \textsf{X}. 35 | \end{exercise} 36 | 37 | \begin{exercise} 38 | Zeigen Sie, dass für jedes \PSpace-vollständige Problem $\Slang{L}$ auch das 39 | Komplement $\overline{\Slang{L}}$ ein \PSpace-vollständiges Problem ist. 40 | \end{exercise} 41 | 42 | \begin{exercise} 43 | Zeigen Sie: ist $\PTime = \NP$, dann sind alle Sprachen $\Slang L \in \PTime 44 | \setminus \{\emptyset, \Sigma^{*}\}$ \NP-vollständig. 45 | \end{exercise} 46 | 47 | \end{mdframed} 48 | 49 | \vspace*{0.5\baselineskip} 50 | 51 | \setcounter{exercise}{0} 52 | 53 | \enlargethispage{3\baselineskip} 54 | 55 | \begin{exercise} 56 | % Fragen aus Vorlesung, Folie 10/27 57 | Begründen Sie folgende Aussagen: 58 | \begin{enumerate} 59 | \item Ist $\PTime = \NP$, dann ist $\NP = \coNP$. 60 | \item Ist $\PTime \neq \NP$, dann gilt $\PTime \neq \coNP$, $\LogSpace \neq 61 | \NP$ und $\PTime \neq \PSpace$. 62 | \end{enumerate} 63 | \end{exercise} 64 | 65 | \begin{exercise} 66 | % Sipser 7.30 67 | Wir betrachten folgendes Scheduling-Problem: gegeben sind Prüfungen $P_{1}, 68 | \ldots, P_{k}$ und Studierende $S_{1}, \dots, S_{\ell}$, so dass jede Prüfung 69 | von einer bestimmten Menge von Studierenden abgelegt wird. Die Aufgabe ist, 70 | die Prüfungen so in Zeitslots zu legen, dass niemand zwei Prüfungen im selben 71 | Zeitslot ablegen muss. Formalisieren Sie die Frage, ob solch ein Prüfungsplan 72 | mit höchstens $h$ Zeitslots möglich ist, als eine formale Sprache und zeigen 73 | Sie, dass diese \NP-vollständig ist. Nutzen Sie dazu die Tatsache, dass 74 | Färbbarkeit von Graphen \NP-vollständig ist. 75 | \end{exercise} 76 | 77 | \begin{exercise} 78 | % Complexity Theory lecture, originally somewhere from stachexchange 79 | Zeigen Sie, dass folgendes Problem unentscheidbar ist: gegeben eine 80 | Turing-Maschine \Smach{M} und eine Zahl $k \in \mathbb N$, ist \Smach{M} eine 81 | $\mathcal{O}(n^{k})$-zeitbeschränkte Turing-Maschine? 82 | \end{exercise} 83 | 84 | % Maybe Sipser 7.27 85 | \end{document} 86 | -------------------------------------------------------------------------------- /Uebungen/uebung-09.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Francesco Kriegel, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % Einführung Logik 9 | 10 | \usepackage[sheetnumber=9]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Roman{exercise}} 21 | \setcounter{exercise}{0} 22 | 23 | \begin{exercise} 24 | % TheoLog 2014 25 | Geben Sie für die Formel 26 | \begin{equation*} 27 | F = \forall x. \exists y. (p(c_{1},z) \land (q(x,c_{2},z) \lor p(c_{2},y))), 28 | \end{equation*} 29 | wobei $c_{1}, c_{2}$ Konstanten sind, folgendes an: 30 | \begin{enumerate} 31 | \item die Menge aller Teilformeln; 32 | \item die Menge aller Terme; 33 | \item die Menge aller Variablen, mit Unterscheidung freier und gebundener 34 | Variablen; 35 | \item ein Interpretation $\mathcal{I}$ und eine Zuweisung $\mathcal{Z}$ für 36 | $\mathcal{I}$, so dass $\mathcal{I}, \mathcal{Z} \models F$. 37 | \end{enumerate} 38 | \end{exercise} 39 | 40 | \begin{exercise} 41 | % TheoLog 2014 42 | Zeigen Sie die folgenden Aussagen: 43 | \begin{enumerate} 44 | \item Es gilt $\{F\} \models G$ genau dann, wenn $F \to G$ 45 | allgemeingültig ist. 46 | \item Es gilt $\{F_{1}, \dots, F_{k}\} \models G$ genau dann, wenn 47 | $\bigwedge_{i=1}^{k} F_{i} \to G$ allgemeingültig ist. 48 | \end{enumerate} 49 | \end{exercise} 50 | 51 | \begin{exercise} 52 | % TheoLog 2014 53 | Seien $F$, $G$ Formeln und $x$ eine Variable. Zeigen Sie, dass dann gilt 54 | \begin{equation*} 55 | \exists x.(F \to G) \equiv \forall x. F \to \exists x. G. 56 | \end{equation*} 57 | \end{exercise} 58 | \vspace*{-1.7\baselineskip} 59 | \end{mdframed} 60 | 61 | \setcounter{exercise}{0} 62 | 63 | \enlargethispage{2\baselineskip} 64 | 65 | \begin{exercise} 66 | % TheoLog 2014 67 | Welche der angegebenen Strukturen sind Modelle der folgenden Formel? 68 | \begin{equation*} 69 | \forall x.\, p(x,x) \land \forall x, y.\, ((p(x,y) \land 70 | p(y,x)) \to x \approx y) 71 | \land \forall x, y, z.\, ((p(x,y) \land p(y,z)) \to p(x,z)) 72 | \end{equation*} 73 | \begin{enumerate} 74 | \item $\mathcal{I}_{1}$ mit Grundmenge $\mathbb N$ und $p^{\mathcal{I}_{1}} = 75 | \{\,(m,n) \mid m < n \,\}$; 76 | \item $\mathcal{I}_{2}$ mit Grundmenge $\mathbb N$ und $p^{\mathcal{I}_{2}} = 77 | \{\,(n,n+1) \mid n \in \mathbb N \,\}$; 78 | \item $\mathcal{I}_{3}$ mit Grundmenge $\mathbb N$ und $p^{\mathcal{I}_{3}} = 79 | \{\,(m,n) \mid m \text{ teilt } n\,\}$; 80 | \item $\mathcal{I}_{4}$ mit Grundmenge $\Sigma^{*}$ für ein Alphabet $\Sigma$ 81 | und $p^{\mathcal{I}_{4}} = \{\,(x,y) \mid x \text{ ist Präfix von } y\,\}$; 82 | \item $\mathcal{I}_{5}$ mit Grundmenge $\subsets{M}$ für eine Menge $M$ und 83 | $p^{\mathcal{I}_{5}} = \{\,(X,Y) \mid X \subseteq Y\,\}$. 84 | \end{enumerate} 85 | \end{exercise} 86 | 87 | \begin{exercise} 88 | % TheoLog 2014 89 | \begin{enumerate} 90 | \item Geben Sie je eine erfüllbare Formel in Prädikatenlogik mit Gleichheit 91 | an, so dass alle Modelle 92 | \begin{enumerate} 93 | \item höchstens drei, 94 | \item mindestens drei, 95 | \item genau drei 96 | \end{enumerate} 97 | Elemente in der Grundmenge besitzen. 98 | \item Geben Sie je eine erfüllbare Formel in Prädikatenlogik mit Gleichheit 99 | an, so dass das zweistellige Relationensymbol $p$ in jedem Modell als der 100 | Graph einer 101 | \begin{enumerate} 102 | \item injektiven Funktion, 103 | \item surjektiven Funktion, 104 | \item bijektiven Funktion 105 | \end{enumerate} 106 | interpretiert wird. 107 | 108 | (Der Graph einer Funktion $f \colon A \to B$ ist die Relation $\{\,(x,y) \in 109 | A \times B \mid f(x) = y\,\}$.) 110 | \end{enumerate} 111 | \end{exercise} 112 | 113 | \begin{exercise} 114 | % TheoLog 2014 115 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 116 | \begin{enumerate} 117 | \item Sind $\Gamma$ und $\Gamma'$ Mengen von prädikatenlogischen Formeln, dann 118 | folgt aus $\Gamma \subseteq \Gamma'$ und $\Gamma \models F$ auch $\Gamma' 119 | \models F$. 120 | \item Jede aussagenlogische Formel ist eine prädikatenlogische Formel. 121 | \item Eine prädikatenlogische Formel $F$ ist genau dann allgemeingültig, 122 | wenn $\lnot F$ unerfüllbar ist. 123 | \item Es gilt 124 | \begin{equation*} 125 | \{\,\forall x, y.\, (p(x,y) \to p(y,x)), \forall x, y, z.\, ((p(x,y) \land p(y,z)) 126 | \to p(x,z))\,\} \models \forall x.\, p(x,x). 127 | \end{equation*} 128 | \end{enumerate} 129 | \end{exercise} 130 | 131 | \begin{exercise} 132 | % TheoLog 2014 133 | Formalisieren Sie Bertrand Russells Barbier-Paradoxon 134 | \begin{quote} 135 | \emph{Der Barbier rasiert genau diejenigen Personen, die sich nicht selbst rasieren.} 136 | \end{quote} 137 | als eine prädikatenlogische Formel und zeigen Sie, dass diese unerfüllbar ist. 138 | \end{exercise} 139 | 140 | \end{document} 141 | -------------------------------------------------------------------------------- /Uebungen/uebung-10-04-musterloesung.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Francesco Kriegel, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | \usepackage[sheetnumber=6]{theolog} 9 | \title{Musterlösung zu Übungsblatt~10} 10 | 11 | \usepackage{ragged2e} 12 | 13 | \begin{document} 14 | 15 | \maketitle 16 | 17 | \vspace*{0.5\baselineskip} 18 | \setcounter{exercise}{3} 19 | \justifying 20 | 21 | \begin{exercise} 22 | % TheoLog 2014 23 | Zeigen Sie, dass Allgemeingültigkeit von Formeln der Prädikatenlogik erster 24 | Stufe in Skolemform entscheidbar ist. 25 | \end{exercise} 26 | 27 | \emph{Lösung}\/: Es sei $F$ eine quantorenfreie Formel mit Variablen 28 | $x_{1},\dots, x_{n}$. Dann gilt 29 | \begin{align*} 30 | \forall x_{1},\dots, x_{n}.\,F \text{ ist allgemeingültig} 31 | &\iff \exists x_{1},\dots,x_{n}.\,\neg F \text{ ist unerfüllbar}\\ 32 | &\iff \neg F[x_{1}/a_{1},\dots,x_{n}/a_{n}] \text{ ist unerfüllbar}\\ 33 | &\phantom{\iff}\:\: \text{(Skolemisierung mit Konstanten $a_{1},\dots,a_{n}$).} 34 | \end{align*} 35 | 36 | Es ist also $\forall x_{1},\ldots,x_{n}.\,F$ allgemiengültig genau dann, wenn 37 | $\neg F[x_{1}/a_{1},\dots,x_{n}/a_{n}]$ unerfüllbar ist. Letzteres ist aber 38 | essentiell eine aussagenlogische Formel, und deren Erfüllbarkeit ist 39 | entscheidbar. 40 | 41 | \end{document} 42 | -------------------------------------------------------------------------------- /Uebungen/uebung-10.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Francesco Kriegel, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % Vorbereitung Resolution: Skolem-Normalform, Herbrand-Universum 9 | 10 | \usepackage[sheetnumber=10]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Roman{exercise}} 21 | \setcounter{exercise}{3} 22 | 23 | \begin{exercise} 24 | % TheoLog 2014 25 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 26 | \begin{enumerate} 27 | \item Jede Formel in Pränexform ist in Skolemform. 28 | \item Jede Formel in Skolemform ist in Pränexform. 29 | \item Jede Formel ist äquivalent zu einer bereinigten Formel. 30 | \item Jede Formel ist äquivalent zu einer bereinigten Formel in Pränexform. 31 | \item Jede Formel ist äquivalent zu einer bereinigten Formel in Skolemform. 32 | \end{enumerate} 33 | \end{exercise} 34 | 35 | \begin{exercise} 36 | % TheoLog 2014, originally from Schöning 37 | Formalisieren Sie die folgenden Aussagen in Prädikatenlogik: 38 | \begin{enumerate} 39 | \item Jeder Drache ist glücklich, wenn alle seine Drachen-Kinder fliegen 40 | können. 41 | \item Grüne Drachen können fliegen. 42 | \item Ein Drache ist grün, wenn er Kind mindestens eines grünen Drachen ist. 43 | \item Alle grünen Drachen sind glücklich. 44 | \end{enumerate} 45 | Zeigen Sie, dass die letzte Aussage aus den ersten drei folgt. 46 | \end{exercise} 47 | \end{mdframed} 48 | 49 | \setcounter{exercise}{0} 50 | 51 | \vspace*{\baselineskip} 52 | 53 | % Skolem-Normalform 54 | 55 | \begin{exercise} 56 | % TheoLog 2014 57 | % TODO: Formulierung an Vorlesung anpassen, eventuell Funktionssymbole ersetzen 58 | Bestimmen Sie zu jeder der folgenden Formeln eine äquivalente bereinigte 59 | Formel in Pränexform. 60 | \begin{enumerate} 61 | \item $\forall x.(p(x,x) \leftrightarrow \lnot \exists y.q(x,y))$ 62 | \item $\forall x.p(f(x,x)) \lor (q(x,z) \to \exists x.p(g(x,y,z)))$ 63 | \item $\forall x.p(x) \land (\forall y.\exists x.q(x,g(y)) \to \exists 64 | y.(r(f(y)) \lor \lnot q(y,x)))$ 65 | \end{enumerate} 66 | \end{exercise} 67 | 68 | \newpage 69 | 70 | \begin{exercise} 71 | % TheoLog 2014 72 | Bestimmen Sie zu jeder der folgenden Formeln eine erfüllbarkeitsäquivalente 73 | bereinigte Formel in Skolemform. 74 | \begin{enumerate} 75 | \item $p(x) \lor \exists x.q(x,x) \lor \forall x.p(f(x))$ 76 | \item $\forall x.\exists y.q(f(x),g(y)) \land \forall x.(p(x,y,y) \lor 77 | q(h(y),x))$ 78 | \item $\forall x.\forall x.(p(x) \leftrightarrow q(x,x)) \lor \exists 79 | x.\forall y.(q(x,g(y,z)) \land \exists z.q(z,z))$ 80 | \end{enumerate} 81 | \end{exercise} 82 | 83 | % Herbrand-Universum 84 | 85 | \begin{exercise} 86 | % TheoLog 2014 87 | Gegeben sind die folgenden Formeln in Skolemform. 88 | \begin{align*} 89 | F &= \forall x, y, z. p(x,f(y),g(z,x)),\\ 90 | G &= \forall x,y. (p(a,f(a,x,y)) \lor q(b)), 91 | \end{align*} 92 | wobei $a$ und $b$ Konstanten sind. 93 | \begin{enumerate} 94 | \item Geben Sie die zugehörigen Herbrand-Universen $\Delta_{F}$ und 95 | $\Delta_{G}$ an. 96 | \item Geben Sie je ein Herbrand-Modell an oder begründen Sie, warum kein 97 | solches existiert. 98 | \item Geben Sie die Herbrand-Expansion $\operatorname{HE}(F)$ und 99 | $\operatorname{HE}(G)$ an. 100 | \end{enumerate} 101 | \end{exercise} 102 | 103 | \begin{exercise} 104 | % TheoLog 2014 105 | Zeigen Sie, dass Allgemeingültigkeit von Formeln der Prädikatenlogik erster 106 | Stufe in Skolemform entscheidbar ist. 107 | \end{exercise} 108 | 109 | \end{document} 110 | -------------------------------------------------------------------------------- /Uebungen/uebung-11.tex: -------------------------------------------------------------------------------- 1 | % ⓒ 2017 Monika Sturm, Francesco Kriegel, Daniel Borchmann 2 | % This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 3 | % International License. To view a copy of this license, visit 4 | % http://creativecommons.org/licenses/by-sa/4.0/. 5 | 6 | \documentclass[german]{latteachCD}[2017/03/28] 7 | 8 | % Resolution, wie Blatt 13 von TheoLog 2014 9 | 10 | \usepackage[sheetnumber=11]{theolog} 11 | 12 | \begin{document} 13 | 14 | \maketitle 15 | 16 | \begin{mdframed} 17 | Die folgenden Aufgaben werden nicht in den Übungen besprochen und dienen der 18 | Selbstkontrolle. 19 | 20 | \renewcommand{\theexercise}{\Roman{exercise}} 21 | \setcounter{exercise}{5} 22 | 23 | \begin{exercise} 24 | % TheoLog 2014 25 | Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort. 26 | \begin{enumerate} 27 | \item Zwei prädikatenlogische Formeln $F$ und $G$ sind äquivalent, wenn die 28 | Formel $F \leftrightarrow G$ allgemeingültig ist. 29 | \item Jede erfüllbare Formel der Prädikatenlogik erster Stufe hat ein 30 | endliches Modell. 31 | \item Jede erfüllbare Formel der Prädikatenlogik erster Stufe hat ein 32 | abzählbares Modell. 33 | \item Jede Skolemformel hat höchstens eine Herbrand-Interpretation. 34 | \item Jede Skolemformel hat mindestens ein Herbrand-Modell. 35 | \end{enumerate} 36 | \end{exercise} 37 | 38 | \begin{exercise} 39 | % TheoLog 2014 40 | Zeigen Sie, dass man das Resolutionsverfahren der Prädikatenlogik erster Stufe 41 | auch zum Nachweis von semantischen Konsequenzen nutzen kann, indem Sie die 42 | Äquivalenz der folgenden Aussagen nachweisen: 43 | \begin{enumerate} 44 | \item $\Gamma \models F$. 45 | \item $\Gamma \cup \{\neg F\}$ ist unerfüllbar. 46 | \item $\bigwedge \Gamma \to F$ ist allgemeingültig. 47 | \item $\bigwedge \Gamma \land \neg F$ ist unerfüllbar. 48 | \end{enumerate} 49 | Hierbei sei $\bigwedge \Gamma = \gamma_{1} \land \dots \land \gamma_{n}$ für 50 | $\Gamma = \{\gamma_{1},\ldots,\gamma_{n}\}$. 51 | \end{exercise} 52 | \end{mdframed} 53 | 54 | \newpage 55 | 56 | \setcounter{exercise}{0} 57 | 58 | % Unifikation 59 | 60 | \def\deq{\stackrel{\cdot}{=}} 61 | 62 | \begin{exercise} 63 | % TheoLog 2014 64 | Bestimmen Sie jeweils einen allgemeinsten Unifikator der folgenden 65 | Gleichungsmengen, oder begründen Sie, warum kein allgemeinster Unifikator 66 | existiert. Verwenden Sie hierfür den Algorithmus aus der Vorlesung. Dabei 67 | sind $x$, $y$ Variablen und $a$, $b$ Konstanten. 68 | \begin{enumerate} 69 | \item $\{\,f(x) \deq g(x,y), y \deq f(a)\,\}$ 70 | \item $\{\,f(g(x,y)) \deq f(g(a,h(b)))\,\}$ 71 | \item $\{\,f(x,y) \deq x, y \deq g(x)\,\}$ 72 | \item $\{\,f(g(x),y) \deq f(g(x),a), g(x) \deq g(h(a))\,\}$ 73 | \end{enumerate} 74 | \end{exercise} 75 | 76 | % Resolution 77 | 78 | \begin{exercise} 79 | % TheoLog 2014, teilweise aus Schöning 80 | Zeigen Sie mittels prädikatenlogischer Resolution folgende Aussagen: 81 | \begin{enumerate} 82 | \item Die Aussage \enquote{Der Professor ist glücklich, wenn alle seine 83 | Studenten Logik mögen} hat als Folgerung \enquote{Der Professor ist 84 | glücklich, wenn er keine Studenten hat}. 85 | \item Die Formulierung des Barbier-Paradoxons aus Aufgabe~4 von Blatt~9 ist 86 | unerfüllbar. 87 | \item In Aufgabe~V folgt die letzte Aussage aus den ersten drei. (Zur 88 | Vereinfachung darf hier angenommen werden, dass alle Individuen Drachen 89 | sind.) 90 | \end{enumerate} 91 | \end{exercise} 92 | 93 | \end{document} 94 | -------------------------------------------------------------------------------- /Vorlesungen/TU_Logo_SW.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/TU_Logo_SW.pdf -------------------------------------------------------------------------------- /Vorlesungen/beamercolorthemetud.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{beamercolorthemetud}[2011/01/17 v1 Tobias Schlemmer] 2 | 3 | \RequirePackage{tudcolors} 4 | 5 | \definecolor{white}{gray}{1.00} 6 | \definecolor{black}{gray}{0.00} 7 | \definecolor{skyblue}{rgb}{0.80, 0.80, 1.00} 8 | \definecolor{blue}{rgb}{0.20, 0.20, 0.80} 9 | \definecolor{darkblue}{rgb}{0.04, 0.16, 0.32} 10 | %\definecolor{extradarkblue}{rgb}{0.00, 0.15, 0.36} 11 | \definecolor{extradarkblue}{cmyk}{1.00, 0.70, 0.10, 0.50} 12 | \definecolor{turquoise}{rgb}{0.00, 0.80, 0.60} 13 | \definecolor{gray}{gray}{0.59} 14 | \definecolor{darkgray}{gray}{0.50} 15 | 16 | \colorlet{text}{HKS41K100} 17 | \colorlet{frametitle}{HKS92K100} 18 | \colorlet{accent}{turquoise} 19 | \colorlet{alink}{skyblue} 20 | \colorlet{vlink}{lightgray} 21 | \colorlet{alert}{HKS44K100} 22 | 23 | \setbeamercolor{normal text}{fg=text,bg=white} 24 | \setbeamercolor{structure}{fg=text,bg=white} 25 | \setbeamercolor{alerted text}{fg=alert} 26 | \setbeamercolor{frametitle}{fg=frametitle} 27 | \setbeamercolor{block body}{fg=text,bg=text!5!white} 28 | \setbeamercolor{block title}{fg=white,bg=text} -------------------------------------------------------------------------------- /Vorlesungen/beamerfontthemetud.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{beamerfontthemetud}[2011/01/17 v1 TU Dresden font 2 | theme for Beamer class] 3 | 4 | \newif\if@useHeavyFont\@useHeavyFontfalse 5 | \DeclareOptionBeamer{heavyfont}{\@useHeavyFonttrue} 6 | 7 | \newif\if@noDIN\@noDINfalse 8 | \DeclareOptionBeamer{nodin}{\@noDINtrue} 9 | 10 | %\newif\if@useBeamerFont\@useBeamerFontfalse 11 | %\DeclareOption{beamerfont}{\@useBeamerFonttrue} 12 | 13 | \newif\if@sansmath\@sansmathtrue 14 | \DeclareOptionBeamer{serifmath}{\@sansmathfalse} 15 | \ProcessOptionsBeamer 16 | 17 | % Schriftspezifische Definitionen 18 | %\if@useBeamerFont\else% 19 | \renewcommand*\encodingdefault{OT1} 20 | \renewcommand*\familydefault{aun} 21 | \renewcommand*\bfseries{\fontseries{b}\selectfont} 22 | \if@useHeavyFont\renewcommand*\seriesdefault{m}\else\renewcommand*\seriesdefault{l}\fi 23 | \renewcommand*\shapedefault{n} 24 | \renewcommand*\sfdefault{aun} 25 | %\renewcommand*{\sffamily}{\not@math@alphabet\sffamily\mathsf\fontfamily{aun}\selectfont} 26 | %\renewcommand*{\ttfamily}{\fontfamily{\ttdefault}\fontseries{\mddefault}\selectfont} 27 | \renewcommand*\ttfamily{\not@math@alphabet\ttfamily\mathtt\fontfamily\ttdefault\fontseries\mddefault\selectfont} 28 | %\DeclareRobustCommand\dindefault{din} 29 | \newcommand*{\dinfamily}{\fontencoding{OT1}\fontfamily{din}\fontseries{b}\selectfont} 30 | %\DeclareRobustCommand\dinfamily{\not@math@alphabet\sffamily\mathsf\fontfamily\dindefault\selectfont} 31 | %\fi 32 | 33 | \if@sansmath 34 | \DeclareSymbolFont{aunLetters}{T1}{aun}{l}{sl} 35 | \SetSymbolFont{aunLetters}{bold}{T1}{aun}{b}{sl} 36 | \DeclareSymbolFont{aunOperators}{T1}{aun}{l}{n} 37 | \SetSymbolFont{aunOperators}{bold}{T1}{aun}{b}{n} 38 | 39 | \DeclareMathSymbol{a}{\mathalpha}{aunLetters}{`a} 40 | \DeclareMathSymbol{b}{\mathalpha}{aunLetters}{`b} 41 | \DeclareMathSymbol{c}{\mathalpha}{aunLetters}{`c} 42 | \DeclareMathSymbol{d}{\mathalpha}{aunLetters}{`d} 43 | \DeclareMathSymbol{e}{\mathalpha}{aunLetters}{`e} 44 | \DeclareMathSymbol{f}{\mathalpha}{aunLetters}{`f} 45 | \DeclareMathSymbol{g}{\mathalpha}{aunLetters}{`g} 46 | \DeclareMathSymbol{h}{\mathalpha}{aunLetters}{`h} 47 | \DeclareMathSymbol{i}{\mathalpha}{aunLetters}{`i} 48 | \DeclareMathSymbol{j}{\mathalpha}{aunLetters}{`j} 49 | \DeclareMathSymbol{k}{\mathalpha}{aunLetters}{`k} 50 | \DeclareMathSymbol{l}{\mathalpha}{aunLetters}{`l} 51 | \DeclareMathSymbol{m}{\mathalpha}{aunLetters}{`m} 52 | \DeclareMathSymbol{n}{\mathalpha}{aunLetters}{`n} 53 | \DeclareMathSymbol{o}{\mathalpha}{aunLetters}{`o} 54 | \DeclareMathSymbol{p}{\mathalpha}{aunLetters}{`p} 55 | \DeclareMathSymbol{q}{\mathalpha}{aunLetters}{`q} 56 | \DeclareMathSymbol{r}{\mathalpha}{aunLetters}{`r} 57 | \DeclareMathSymbol{s}{\mathalpha}{aunLetters}{`s} 58 | \DeclareMathSymbol{t}{\mathalpha}{aunLetters}{`t} 59 | \DeclareMathSymbol{u}{\mathalpha}{aunLetters}{`u} 60 | \DeclareMathSymbol{v}{\mathalpha}{aunLetters}{`v} 61 | \DeclareMathSymbol{w}{\mathalpha}{aunLetters}{`w} 62 | \DeclareMathSymbol{x}{\mathalpha}{aunLetters}{`x} 63 | \DeclareMathSymbol{y}{\mathalpha}{aunLetters}{`y} 64 | \DeclareMathSymbol{z}{\mathalpha}{aunLetters}{`z} 65 | \DeclareMathSymbol{A}{\mathalpha}{aunLetters}{`A} 66 | \DeclareMathSymbol{B}{\mathalpha}{aunLetters}{`B} 67 | \DeclareMathSymbol{C}{\mathalpha}{aunLetters}{`C} 68 | \DeclareMathSymbol{D}{\mathalpha}{aunLetters}{`D} 69 | \DeclareMathSymbol{E}{\mathalpha}{aunLetters}{`E} 70 | \DeclareMathSymbol{F}{\mathalpha}{aunLetters}{`F} 71 | \DeclareMathSymbol{G}{\mathalpha}{aunLetters}{`G} 72 | \DeclareMathSymbol{H}{\mathalpha}{aunLetters}{`H} 73 | \DeclareMathSymbol{I}{\mathalpha}{aunLetters}{`I} 74 | \DeclareMathSymbol{J}{\mathalpha}{aunLetters}{`J} 75 | \DeclareMathSymbol{K}{\mathalpha}{aunLetters}{`K} 76 | \DeclareMathSymbol{L}{\mathalpha}{aunLetters}{`L} 77 | \DeclareMathSymbol{M}{\mathalpha}{aunLetters}{`M} 78 | \DeclareMathSymbol{N}{\mathalpha}{aunLetters}{`N} 79 | \DeclareMathSymbol{O}{\mathalpha}{aunLetters}{`O} 80 | \DeclareMathSymbol{P}{\mathalpha}{aunLetters}{`P} 81 | \DeclareMathSymbol{Q}{\mathalpha}{aunLetters}{`Q} 82 | \DeclareMathSymbol{R}{\mathalpha}{aunLetters}{`R} 83 | \DeclareMathSymbol{S}{\mathalpha}{aunLetters}{`S} 84 | \DeclareMathSymbol{T}{\mathalpha}{aunLetters}{`T} 85 | \DeclareMathSymbol{U}{\mathalpha}{aunLetters}{`U} 86 | \DeclareMathSymbol{V}{\mathalpha}{aunLetters}{`V} 87 | \DeclareMathSymbol{W}{\mathalpha}{aunLetters}{`W} 88 | \DeclareMathSymbol{X}{\mathalpha}{aunLetters}{`X} 89 | \DeclareMathSymbol{Y}{\mathalpha}{aunLetters}{`Y} 90 | \DeclareMathSymbol{Z}{\mathalpha}{aunLetters}{`Z} 91 | 92 | \DeclareMathSymbol{,}{\mathpunct}{aunLetters}{`,} 93 | \DeclareMathSymbol{.}{\mathord}{aunLetters}{`.} 94 | \DeclareMathSymbol{/}{\mathord}{aunLetters}{`/} 95 | 96 | \DeclareMathSymbol{0}\mathalpha{aunOperators}{"30} 97 | \DeclareMathSymbol{1}\mathalpha{aunOperators}{"31} 98 | \DeclareMathSymbol{2}\mathalpha{aunOperators}{"32} 99 | \DeclareMathSymbol{3}\mathalpha{aunOperators}{"33} 100 | \DeclareMathSymbol{4}\mathalpha{aunOperators}{"34} 101 | \DeclareMathSymbol{5}\mathalpha{aunOperators}{"35} 102 | \DeclareMathSymbol{6}\mathalpha{aunOperators}{"36} 103 | \DeclareMathSymbol{7}\mathalpha{aunOperators}{"37} 104 | \DeclareMathSymbol{8}\mathalpha{aunOperators}{"38} 105 | \DeclareMathSymbol{9}\mathalpha{aunOperators}{"39} 106 | 107 | \DeclareSymbolFontAlphabet{\mathsf}{aunOperators} 108 | \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters} 109 | \DeclareMathAlphabet\mathbf{T1}{aun}{b}{n} 110 | \SetMathAlphabet\mathbf{bold}{T1}{aun}{b}{n} 111 | \DeclareMathAlphabet\mathit{T1}{aun}{l}{sl} 112 | \SetMathAlphabet\mathit{bold}{T1}{aun}{l}{sl} 113 | 114 | \let\operator@font\sf 115 | \fi 116 | \usefonttheme[onlymath]{serif} 117 | 118 | \setbeamerfont{itemize/enumerate subbody}{size=\scriptsize} 119 | \setbeamerfont{itemize/enumerate subsubbody}{size=\scriptsize} 120 | \setbeamerfont{title}{size=\LARGE,series=\bfseries,family=\dinfamily} 121 | \setbeamerfont{subtitle}{series=\bfseries,family=\sffamily} 122 | -------------------------------------------------------------------------------- /Vorlesungen/beamerinnerthemetud.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{beamerinnerthemetud}[2011/01/17 v1 TU Dresden 2 | corporate design inner theme] 3 | \beamertemplatedotitem 4 | \usesubitemizeitemtemplate{--} 5 | 6 | %\def\today{\number\day.\,\number\month.\,\number\year} 7 | 8 | \addtobeamertemplate{block end}{}{\colorlet{structure}{text}} 9 | \let\@oldendbeamerboxesrounded\endbeamerboxesrounded 10 | \def\endbeamerboxesrounded{% 11 | \@oldendbeamerboxesrounded 12 | \setbeamercolor{structure}{fg=text,bg=white}% 13 | \usebeamercolor{normal text}% 14 | \color{fg}% 15 | \colorlet{beamerstructure}{text} 16 | \colorlet{beamerstructure}{text} 17 | } -------------------------------------------------------------------------------- /Vorlesungen/beamerouterthemetud.sty: -------------------------------------------------------------------------------- 1 | % Vom Nutzer anzugebende / veraenderbare Namen und Bezeichnungen 2 | 3 | 4 | 5 | %\newif\if@useGerman % explizit deutsche Namen verwenden und german-Package einbinden ? 6 | % \newif\if@useNoGerman % explizit englische Namen verwenden 7 | % \DeclareOptionBeamer{nogerman}{\@useNoGermantrue\@useGermanfalse} 8 | % \DeclareOptionBeamer{german}{\@useGermantrue\@useNoGermanfalse} 9 | 10 | \newif\if@useHeader\@useHeadertrue 11 | \DeclareOptionBeamer{noheader}{\@useHeaderfalse} 12 | 13 | \newif\if@smallRightMargin\@smallRightMarginfalse 14 | \DeclareOptionBeamer{smallrightmargin}{\@smallRightMargintrue} 15 | 16 | \newif\if@usePageNum\@usePageNumfalse 17 | \DeclareOptionBeamer{pagenum}{\@usePageNumtrue} 18 | 19 | \newif\if@useNoFrameTitleSection\@useNoFrameTitleSectionfalse 20 | \DeclareOptionBeamer{nosectionnum}{\@useNoFrameTitleSectiontrue} 21 | 22 | \newif\if@useNavBar\@useNavBarfalse 23 | \DeclareOptionBeamer{navbar}{\@useNavBartrue} 24 | 25 | \newif\if@ddc 26 | \DeclareOptionBeamer{ddc}{\@ddctrue} 27 | \newif\if@ddcfooter 28 | \DeclareOptionBeamer{ddcfooter}{\@ddcfootertrue\@ddcfalse} 29 | 30 | 31 | \ProcessOptionsBeamer\relax 32 | 33 | \RequirePackage{calc} 34 | 35 | % Templates 36 | 37 | % Vordefinierte Namen und Bezeichnungen 38 | % \newcommand*{\englishnames}{% 39 | % \newcommand*{\@slide}{slide} 40 | % \newcommand*{\@of}{of} 41 | % } 42 | 43 | % \newcommand*{\germannames}{% 44 | % \newcommand*{\@slide}{Folie} 45 | % \newcommand*{\@of}{von} 46 | % } 47 | 48 | 49 | \def\tudbeamer@setGermanNames{% 50 | \def\tudbeamerslidename{Folie}% 51 | \def\tudbeamerofname{von}% 52 | } 53 | 54 | \def\tudbeamer@setEnglishNames{% 55 | \def\tudbeamerslidename{slide}% 56 | \def\tudbeamerofname{of}% 57 | } 58 | 59 | \AtBeginDocument{% 60 | \@ifundefined{captionsgerman}{}{\addto\captionsgerman{\tudbeamer@setGermanNames}}% 61 | \@ifundefined{captionsngerman}{}{\addto\captionsngerman{\tudbeamer@setGermanNames}}% 62 | \@ifundefined{captionsenglish}{}{\addto\captionsenglish{\tudbeamer@setEnglishNames}}% 63 | \@ifundefined{captionsUKenglish}{}{\addto\captionsUKenglish{\tudbeamer@setEnglishNames}}% 64 | \@ifundefined{captionsbritish}{}{\addto\captionsbritish{\tudbeamer@setEnglishNames}}% 65 | \@ifundefined{captionsamerican}{}{\addto\captionsamerican{\tudbeamer@setEnglishNames}}% 66 | \@ifundefined{captionsUSenglish}{}{\addto\captionsUSenglish{\tudbeamer@setEnglishNames}}% 67 | \@ifundefined{captionscanadian}{}{\addto\captionscanadian{\tudbeamer@setEnglishNames}}% 68 | \@ifundefined{captionsaustralian}{}{\addto\captionsaustralien{\tudbeamer@setEnglishNames}}% 69 | \@ifundefined{captionsnewzealand}{}{\addto\captionsnewzealand{\tudbeamer@setEnglishNames}}% 70 | \@ifundefined{captions\languagename}{\tudbeamer@setEnglishNames} 71 | {\csname captions\languagename\endcsname}% 72 | } 73 | 74 | \newcommand*\@einrichtung{} 75 | \newcommand*\@fachrichtung{} 76 | \newcommand*\@institut{} 77 | \newcommand*\@professur{} 78 | 79 | \newcommand*{\einrichtung}[1]{\renewcommand*{\@einrichtung}{#1}} 80 | \newcommand*{\fachrichtung}[1]{\renewcommand*{\@fachrichtung}{#1}} 81 | \newcommand*{\institut}[1]{\renewcommand*{\@institut}{#1}} 82 | \newcommand*{\professur}[1]{\renewcommand*{\@professur}{#1}} 83 | 84 | \newcommand*{\datecity}[1]{\renewcommand*{\insertdatecity}{#1}} 85 | 86 | 87 | \newlength\tudbeamer@logoleftmargin 88 | \newlength\tudbeamer@logotopmargin 89 | \newlength\tudbeamer@logowidth 90 | \newlength\tudbeamer@footer@placewidth 91 | \newlength\tudbeamer@footer@titlewidth 92 | \newlength\tudbeamer@footer@pagenumwidth 93 | 94 | \if@smallRightMargin 95 | \beamersetrightmargin{0.10\paperheight} 96 | \else 97 | \beamersetrightmargin{0.15\paperheight} 98 | \fi 99 | \beamersetleftmargin{0.15\paperheight} 100 | 101 | \newcommand\tudbeamer@calcsizes[1][0.125]{% 102 | \def\tudbeamer@setlength##1##2{\setlength{##1}{##2 * 103 | \ratio{#1\paperheight}{65pt}}} 104 | \tudbeamer@setlength\tudbeamer@logowidth{40mm}% 105 | \setlength\tudbeamer@logoleftmargin{\beamer@leftmargin-0.3333\tudbeamer@logowidth}% 106 | \setlength\@tempdima{0.020\paperheight}% 107 | \setlength{\@tempdima}{\@tempdima*\ratio{#1pt}{0.125pt}}% 108 | \setlength{\@tempdima}{\@tempdima*\ratio{#1pt}{0.125pt}}% 109 | \setlength{\tudbeamer@logotopmargin}{#1\paperheight - \@tempdima - 110 | 0.282\tudbeamer@logowidth}% 111 | \setlength{\tudbeamer@footer@placewidth}{0.3\paperheight}% 112 | \setlength{\tudbeamer@footer@pagenumwidth}{\tudbeamer@footer@placewidth}% 113 | \setlength{\tudbeamer@footer@titlewidth}{\paperwidth - \beamer@leftmargin-\beamer@rightmargin 114 | -\tudbeamer@footer@placewidth -\tudbeamer@footer@pagenumwidth} 115 | } 116 | 117 | 118 | \newlength{\topmarginnoheader} 119 | \setlength{\topmarginnoheader}{0.01\paperheight} 120 | 121 | \if@useNavBar\else\setbeamertemplate{navigation symbols}{}\fi % Nav-Leiste aus 122 | 123 | % frame title 124 | \gdef\frame@title@section{} 125 | \def\frametitle{\secdef\tud@frametitlea\tud@frametitles} 126 | \newcommand<>\tud@frametitlea{\gdef\frame@title@section{\ifnum\c@section>9\else 0\fi\arabic{section}\,\,}\alt#1{\@dblarg\beamer@@frametitle}{\beamer@gobbleoptional}} 127 | \newcommand<>\tud@frametitles{\gdef\frame@title@section{}\alt#1{\@dblarg\beamer@@frametitle}{\beamer@gobbleoptional}} 128 | 129 | \providecommand*{\insertdatecity}{Dresden} 130 | \newcommand*{\inserttotalpagenumber}{\textbf{??}} 131 | 132 | 133 | \def\logo@front{logo_weiss} 134 | \def\logo@default{logo_blau} 135 | \ifx\pdfoutput\undefined 136 | \else 137 | \ifx\pdfoutput\relax 138 | \else 139 | \ifcase\pdfoutput 140 | \else 141 | \def\logo@front{TU_Logo_SW}% 142 | \def\logo@default{TU_Logo_SW}% 143 | \fi 144 | \fi 145 | \fi 146 | 147 | 148 | % Faktor zur PPT-Vorlage: / 0,1984375 * 5,04 149 | \defbeamertemplate*{title page}{tud}{% 150 | \color{white}% 151 | \vfill% 152 | {% 153 | %\renewcommand\baselinestretch{1}% 154 | \usebeamerfont*{title}% 155 | \expandafter\setlength\expandafter\baselineskip{\f@size pt*\ratio{10pt}{10pt}}% 156 | % \vskip2ex plus1ex minus1ex% 157 | % \setlength\baselineskip{2cm}%{} 158 | \MakeUppercase{\inserttitle}\par% 159 | }\vfill% 160 | {% 161 | \ifx\insertsubtitle\empty 162 | \else 163 | \usebeamerfont*{subtitle}\insertsubtitle 164 | \vfill 165 | \fi% 166 | \scriptsize\insertauthor 167 | }% 168 | \vfill\vfill% 169 | } 170 | 171 | \defbeamertemplate{headline}{tud titlepage}{% 172 | \tudbeamer@calcsizes[0.175] 173 | \vbox to 0.175\paperheight{\vskip\tudbeamer@logotopmargin 174 | \color{white}% 175 | % \setlength{\arrayrulewidth}{0.3pt}% 176 | %\let\@tmp@ifrowcolors\if@rowcolors 177 | % \@rowcolorsfalse 178 | %\begin{tabular*}{\paperwidth}[b]{l@{\extracolsep\fill}} 179 | % \vbox{ 180 | %\rownum0\relax 181 | % TUD-Logo 182 | %\hspace*{3.0mm} 183 | \hskip\tudbeamer@logoleftmargin 184 | % \color{white}\includegraphics[height=7.81mm]{\logo@front}\\[1.2mm] 185 | \color{white}% 186 | \includegraphics[height=0.282\tudbeamer@logowidth]{\logo@front}% 187 | \if@ddc 188 | \hfill 189 | \includegraphics[height=0.282\tudbeamer@logowidth]{DDC-weiss}% 190 | \hskip\beamer@rightmargin\\ 191 | \fi 192 | }% 193 | \color{white}%\vskip1.2mm 194 | \rule{\paperwidth}{0.3pt}\par% 195 | \vbox to 0.025\paperheight{\vfill 196 | \hskip\beamer@leftmargin%\rule[-0.8mm]{0pt}{2.47mm}% 197 | \def\@@dummyComma{}% 198 | \color{white}\textbf{\@einrichtung}% 199 | \ifx\@einrichtung\@empty\else\def\@@dummyComma{ }\fi% 200 | \ifx\@fachrichtung\@empty\else\@@dummyComma\@fachrichtung% 201 | \ifx\@institut\@empty\else\def\@@dummyComma{, }\fi% 202 | \ifx\@professur\@empty\else\def\@@dummyComma{, }\fi% 203 | \fi% 204 | \ifx\@institut\@empty\else\@@dummyComma\@institut 205 | \ifx\@professur\@empty\else\def\@@dummyComma{, }\fi 206 | \fi% 207 | \ifx\@professur\@empty\else\@@dummyComma\fi% 208 | \@professur\par% 209 | \vfill 210 | }% 211 | \rule{\paperwidth}{0.3pt}\par 212 | %} 213 | % \end{tabular*}\par%\hspace{-\paperwidth}% 214 | %\let\if@rowcolors\@tmp@ifrowcolors 215 | }% 216 | 217 | \defbeamertemplate{headline}{tud header}{% 218 | \tudbeamer@calcsizes 219 | \vbox to 0.125\paperheight{\vskip\tudbeamer@logotopmargin 220 | \hskip\tudbeamer@logoleftmargin\color{text}\includegraphics[width=\tudbeamer@logowidth]{\logo@default}% 221 | \par 222 | \vfill 223 | }% 224 | \color{frametitle}% 225 | \rule{\paperwidth}{0.1pt}\par 226 | \vskip0.015\paperheight 227 | \rule{\paperwidth}{0.1pt}\par 228 | } 229 | 230 | \defbeamertemplate{headline}{tud noheader}{% 231 | % \rule{0pt}{14.57mm} 232 | \rule{0pt}{\the\topmarginnoheader}% 233 | } 234 | 235 | \defbeamertemplate{footline}{tud titlepage}{% 236 | \tudbeamer@calcsizes 237 | % \vfill 238 | \hbox to \textwidth{% 239 | \hskip\beamer@leftmargin 240 | \normalsize 241 | \color{white}% 242 | \insertdatecity 243 | \ifx\insertdatecity\empty 244 | \else 245 | \ifx\insertdate\empty 246 | \else, 247 | \fi 248 | \fi 249 | \insertdate% 250 | \hfill 251 | \if@ddcfooter 252 | \includegraphics[height=0.424\tudbeamer@logowidth]{DDC-weissf}% 253 | \hskip\beamer@rightmargin 254 | \fi 255 | }% 256 | \vskip0.125\paperheight 257 | }% 258 | 259 | \defbeamertemplate{footline}{tud pagenum}{% 260 | \tudbeamer@calcsizes 261 | \color{frametitle}% 262 | \tiny 263 | \vbox to 0.0777\paperheight{% 264 | \hbox to \paperwidth{% 265 | \hskip\beamer@leftmargin 266 | \hbox to \tudbeamer@footer@placewidth{\raggedright\mbox{Markus Kr\"{o}tzsch\ifx\insertdate\empty\else, \insertdate\fi}}% 267 | \parbox{\tudbeamer@footer@titlewidth}{\centerline{\hspace{2cm}\insertshorttitle}}% 268 | \hbox to \tudbeamer@footer@pagenumwidth {\hfill\tudbeamerslidename\ \insertframenumber\ \tudbeamerofname\ \inserttotalframenumber}% 269 | }% 270 | }% 271 | } 272 | 273 | \defbeamertemplate{footline}{tud nopagenum}{% 274 | \tudbeamer@calcsizes 275 | \color{frametitle}% 276 | \tiny 277 | \vbox to 0.0777\paperheight{% 278 | \hbox to \paperwidth{% 279 | \hskip\beamer@leftmargin 280 | \hbox to \tudbeamer@footer@placewidth{\raggedright\mbox{M. Kr\"{o}tzsch\ifx\insertdate\empty\else, \insertdate\fi}}% 281 | \parbox{\tudbeamer@footer@titlewidth}{\centerline{\insertshorttitle}}% 282 | \kern\tudbeamer@footer@pagenumwidth% 283 | }% 284 | }% 285 | } 286 | 287 | \defbeamertemplate{frametitle}{tud titlesection}{% 288 | % \vskip0.3ex% 289 | \color{frametitle}\frame@title@section\insertframetitle\\% 290 | \vskip0.3ex\color{text}\small\bfseries\insertframesubtitle% 291 | } 292 | 293 | \defbeamertemplate{frametitle}{tud notitlesection}{% 294 | %\vskip6.5mm% 295 | \color{frametitle}\insertframetitle\\% 296 | \vskip0.3ex\color{text}\small\bfseries\insertframesubtitle% 297 | } 298 | 299 | \newcommand\setbeamertemplates{% 300 | %\beamertemplateshadingbackground{white}{white} 301 | \setbeamercolor{normal text}{bg=white}% 302 | \if@useHeader% 303 | \setbeamertemplate{headline}[tud header]% 304 | \else 305 | \setbeamertemplate{headline}[tud noheader]% 306 | \fi 307 | 308 | \if@usePageNum% 309 | \setbeamertemplate{footline}[tud pagenum]% 310 | \else 311 | \setbeamertemplate{footline}[tud nopagenum]% 312 | \fi 313 | 314 | \if@useNoFrameTitleSection 315 | \setbeamertemplate{frametitle}[tud notitlesection]% 316 | \else 317 | \setbeamertemplate{frametitle}[tud titlesection]% 318 | \fi 319 | \beamer@calculateheadfoot 320 | } 321 | 322 | \renewcommand\maketitle{% 323 | %\beamertemplateshadingbackground{darkblue}{darkblue} 324 | \setbeamercolor{normal text}{bg=HKS41K100}% 325 | % Kopf-/Fusszeile fuer Titel 326 | \setbeamertemplate{headline}[tud titlepage]% 327 | \setbeamertemplate{footline}[tud titlepage]% 328 | \beamer@calculateheadfoot 329 | \frame{\titlepage}% 330 | % Kopf-/Fusszeilen fuer restliche Folien 331 | \setbeamertemplates% 332 | } 333 | 334 | 335 | % Sprache einstellen 336 | \AtBeginDocument{% 337 | % \ifx\@undefined\if@german% 338 | % \newif\if@german % Nutzung des german-Packages ? 339 | % \ifx\@undefined\germanTeX\else\@germantrue\fi % Wenn \(n)germanTeX definiert ist, 340 | % \ifx\@undefined\ngermanTeX\else\@germantrue\fi % ist das (n)german-Package eingebunden 341 | % \ifx\@undefined\language\else % 342 | % \ifnum0=\language\@germanfalse\else\fi % \language=0 => english 343 | % \fi % 344 | % \if@useGerman\@germantrue\fi % Zur expliziten Nutzung der deutschen Texte (das ngerman-Package wurde automatisch eingebunden) 345 | % \if@useNoGerman\@germanfalse\fi % Zur expliziten Nutzung der englischen Texte (auch bei vorheriger Einbindung des german-Packages) 346 | % \if@german % 347 | % \ifx\@undefined\language\else % 348 | % \ifnum2<\language\selectlanguage{german}\fi % deutsch gewuenscht, aber andere Sprache eingestellt ?? => deutsch 349 | % \ifnum2>\language\selectlanguage{german}\fi % 350 | % \fi % 351 | % \germannames % 352 | % \def\today{\number\day.\,\number\month.\,\number\year} % Datum im Format DD.MM.YYYY 353 | % \else % 354 | % \ifx\@undefined\language\else % 355 | % \ifnum0<\language\selectlanguage{english}\fi% englisch gewuenscht, aber andere Sprache eingestellt ?? => englisch 356 | % \fi % 357 | % \englishnames % 358 | % \def\today{\number\year/\number\month/\number\day} % Datum im Format YYYY/MM/DD 359 | % \fi % 360 | % \fi% 361 | \setbeamertemplates% 362 | \scriptsize 363 | }% 364 | 365 | \AtEndDocument{% 366 | \clearpage 367 | \beamer@tempcount=\c@page\advance\beamer@tempcount by -1% 368 | \if@filesw 369 | \immediate\write\@auxout{\string\@writefile{nav}% 370 | {\noexpand\headcommand{\noexpand\beamer@partpages{\the\beamer@partstartpage}{\the\beamer@tempcount}}}}% 371 | \immediate\write\@auxout{\string\@writefile{nav}% 372 | {\noexpand\headcommand{\noexpand\beamer@subsectionpages{\the\beamer@subsectionstartpage}{\the\beamer@tempcount}}}}% 373 | \immediate\write\@auxout{\string\@writefile{nav}% 374 | {\noexpand\headcommand{\noexpand\beamer@sectionpages{\the\beamer@sectionstartpage}{\the\beamer@tempcount}}}}% 375 | \immediate\write\@auxout{\string\@writefile{nav}% 376 | {\noexpand\headcommand{\noexpand\beamer@documentpages{\the\beamer@tempcount}}}} 377 | \immediate\write\@auxout{\string\@writefile{nav}% 378 | {\noexpand\headcommand{\noexpand\def\noexpand\inserttotalframenumber{\the\c@framenumber}}}} 379 | \addtocounter{page}{-1} 380 | \immediate\write\@auxout{\string\@writefile{nav}% 381 | {\noexpand\headcommand{\noexpand\def\noexpand\inserttotalpagenumber{\thepage}}}} 382 | \newwrite\tf@nav 383 | \immediate\openout\tf@nav\jobname.nav\relax 384 | \newwrite\tf@toc 385 | \immediate\openout\tf@toc\jobname.toc\relax 386 | \newwrite\tf@snm 387 | \immediate\openout\tf@snm\jobname.snm\relax 388 | \fi% 389 | } 390 | -------------------------------------------------------------------------------- /Vorlesungen/beamerthemetud.sty: -------------------------------------------------------------------------------- 1 | \ProvidesPackage{beamerthemetud}[2011/01/17] 2 | 3 | \DeclareOptionBeamer{heavyfont}{\PassOptionsToPackage{heavyfont}{beamerfontthemetud}} 4 | \DeclareOptionBeamer{nodin}{\PassOptionsToPackage{nodin}{beamerfontthemetud}} 5 | \DeclareOptionBeamer{beamerfont}{\PassOptionsToPackage{beamerfont}{beamerfontthemetud}} 6 | \DeclareOptionBeamer{serifmath}{\PassOptionsToPackage{serifmath}{beamerfontthemetud}} 7 | 8 | \DeclareOptionBeamer{noheader}{\PassOptionsToPackage{noheader}{beamerouterthemetud}} 9 | \DeclareOptionBeamer{smallrightmargin}{\PassOptionsToPackage{smallrightmargin}{beamerouterthemetud}} 10 | \DeclareOptionBeamer{pagenum}{\PassOptionsToPackage{pagenum}{beamerouterthemetud}} 11 | \DeclareOptionBeamer{nosectionnum}{\PassOptionsToPackage{nosectionnum}{beamerouterthemetud}} 12 | \DeclareOptionBeamer{navbar}{\PassOptionsToPackage{navbar}{beamerouterthemetud}} 13 | \DeclareOptionBeamer{ddc}{\PassOptionsToPackage{ddc}{beamerouterthemetud}} 14 | \DeclareOptionBeamer{ddcfooter}{\PassOptionsToPackage{ddcfooter}{beamerouterthemetud}} 15 | 16 | \ProcessOptionsBeamer 17 | 18 | \usecolortheme{default} 19 | \usefonttheme{default} 20 | \usecolortheme{tud} 21 | \useinnertheme{rounded} 22 | \setbeamertemplate{blocks}[rounded][shadow=true] 23 | \useoutertheme{default} 24 | \useinnertheme{default} 25 | \usefonttheme{tud} 26 | \useoutertheme{tud} 27 | \useinnertheme{tud} 28 | -------------------------------------------------------------------------------- /Vorlesungen/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Script to prepare final PDFs for presentation and print. 4 | # 5 | # Usage sh build.sh 6 | 7 | fileprefix="TheoLog2024-Vorlesung-" # the start of generated PDFs 8 | tmpfilename="tmplecturefile" # don't have any files called like this! 9 | 10 | printfilename=$fileprefix$1-print.pdf 11 | overlayfilename=$fileprefix$1-overlay.pdf 12 | 13 | printf "\\documentclass[aspectratio=1610,onlymath,handout]{beamer}\n\n" > $tmpfilename.tex 14 | tail -n +3 lecture-$1.tex >> $tmpfilename.tex 15 | pdflatex $tmpfilename.tex 16 | pdflatex $tmpfilename.tex 17 | # pdfnup --nup 2x2 --outfile $printfilename $tmpfilename.pdf 18 | mv $tmpfilename.pdf $printfilename 19 | 20 | printf "\\documentclass[aspectratio=1610,onlymath]{beamer}\n\n" > $tmpfilename.tex 21 | tail -n +3 lecture-$1.tex >> $tmpfilename.tex 22 | pdflatex $tmpfilename.tex 23 | pdflatex $tmpfilename.tex 24 | mv $tmpfilename.pdf $overlayfilename 25 | 26 | rm $tmpfilename.* 27 | 28 | printf "\n\n*** Finished creating files '$overlayfilename' and '$printfilename' ***\n" 29 | -------------------------------------------------------------------------------- /Vorlesungen/images/Aristotle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Aristotle.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Cantor-1870.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Cantor-1870.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Cantor-190x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Cantor-190x.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Cole.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Cole.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Goedel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Goedel.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Herbrand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Herbrand.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Hilbert.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Hilbert.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Koenigsberg,_Map_by_Euler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Koenigsberg,_Map_by_Euler.png -------------------------------------------------------------------------------- /Vorlesungen/images/Koenigsberg,_Map_by_Merian-Erben_1652.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Koenigsberg,_Map_by_Merian-Erben_1652.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Le_Temps_1931-07-29_Herbrand-BnF.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Le_Temps_1931-07-29_Herbrand-BnF.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Le_Temps_1931-07-30_Herbrand-BnF.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Le_Temps_1931-07-30_Herbrand-BnF.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Leibniz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Leibniz.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Natascha_Artin_Brunswick.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Natascha_Artin_Brunswick.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Paris-1900-Weltausstellung.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Paris-1900-Weltausstellung.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Post.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Post.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Rado.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Rado.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Russell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Russell.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Skolem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Skolem.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Turing-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Turing-5.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/Turing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/Turing.jpg -------------------------------------------------------------------------------- /Vorlesungen/images/halting-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/halting-d.png -------------------------------------------------------------------------------- /Vorlesungen/images/halting-oracle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/halting-oracle.png -------------------------------------------------------------------------------- /Vorlesungen/images/halting-paradox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/halting-paradox.png -------------------------------------------------------------------------------- /Vorlesungen/images/halting-tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/halting-tm.png -------------------------------------------------------------------------------- /Vorlesungen/images/mate-262.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/mate-262.png -------------------------------------------------------------------------------- /Vorlesungen/images/mate-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/mate-3.png -------------------------------------------------------------------------------- /Vorlesungen/images/proof-tree.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knowsys/TheoLog/10324d0f73c5c6267896ec1db45adc182c9c78b5/Vorlesungen/images/proof-tree.pdf -------------------------------------------------------------------------------- /Vorlesungen/images/proof-tree.pdf_tex: -------------------------------------------------------------------------------- 1 | %% Creator: Inkscape inkscape 0.48.4, www.inkscape.org 2 | %% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 3 | %% Accompanies image file 'proof-tree.pdf' (pdf, eps, ps) 4 | %% 5 | %% To include the image in your LaTeX document, write 6 | %% \input{.pdf_tex} 7 | %% instead of 8 | %% \includegraphics{.pdf} 9 | %% To scale the image, write 10 | %% \def\svgwidth{} 11 | %% \input{.pdf_tex} 12 | %% instead of 13 | %% \includegraphics[width=]{.pdf} 14 | %% 15 | %% Images with a different path to the parent latex file can 16 | %% be accessed with the `import' package (which may need to be 17 | %% installed) using 18 | %% \usepackage{import} 19 | %% in the preamble, and then including the image with 20 | %% \import{}{.pdf_tex} 21 | %% Alternatively, one can specify 22 | %% \graphicspath{{/}} 23 | %% 24 | %% For more information, please see info/svg-inkscape on CTAN: 25 | %% http://tug.ctan.org/tex-archive/info/svg-inkscape 26 | %% 27 | \begingroup% 28 | \makeatletter% 29 | \providecommand\color[2][]{% 30 | \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% 31 | \renewcommand\color[2][]{}% 32 | }% 33 | \providecommand\transparent[1]{% 34 | \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% 35 | \renewcommand\transparent[1]{}% 36 | }% 37 | \providecommand\rotatebox[2]{#2}% 38 | \ifx\svgwidth\undefined% 39 | \setlength{\unitlength}{630.46106505bp}% 40 | \ifx\svgscale\undefined% 41 | \relax% 42 | \else% 43 | \setlength{\unitlength}{\unitlength * \real{\svgscale}}% 44 | \fi% 45 | \else% 46 | \setlength{\unitlength}{\svgwidth}% 47 | \fi% 48 | \global\let\svgwidth\undefined% 49 | \global\let\svgscale\undefined% 50 | \makeatother% 51 | \begin{picture}(1,0.40666134)% 52 | \put(0,0){\includegraphics[width=\unitlength]{proof-tree.pdf}}% 53 | \put(0.24718846,0.38944499){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{Vorfahre}(\pred{alice},\pred{david})$}}}% 54 | \put(-0.00188096,0.27705559){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{Elter}(\pred{alice},\pred{carla})$}}}% 55 | \put(0.46544143,0.27705559){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{Vorfahre}(\pred{carla},\pred{david})$}}}% 56 | \put(0.48574403,0.15270216){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{Elter}(\pred{carla},\pred{david})$}}}% 57 | \put(0.48574403,0.03161162){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{vater}(\pred{carla},\pred{david})$}}}% 58 | \put(0.00065686,0.15270216){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$\pred{mutter}(\pred{alice},\pred{carla})$}}}% 59 | \put(0.37407972,0.34376414){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(8)}}}}% 60 | \put(0.24718846,0.31423545){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{\{x\mapsto\pred{alice},y\mapsto\pred{carla},z\mapsto\pred{david}\}}}}}% 61 | \put(0.16597805,0.23209983){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(6)}}}}% 62 | \put(0.16597805,0.20257114){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{\{x\mapsto\pred{alice},y\mapsto\pred{carla}\}}}}}% 63 | \put(0.62278659,0.23209983){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(7)}}}}% 64 | \put(0.62278659,0.20257114){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{\{x\mapsto\pred{carla},y\mapsto\pred{david}\}}}}}% 65 | \put(0.62278659,0.10520855){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(5)}}}}% 66 | \put(0.62278659,0.07567988){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{\{x\mapsto\pred{carla},y\mapsto\pred{david}\}}}}}% 67 | \put(0.14567545,0.12551115){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(2)}}}}% 68 | \put(0.60248399,0.00369554){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\drule{(4)}}}}% 69 | \end{picture}% 70 | \endgroup% 71 | -------------------------------------------------------------------------------- /Vorlesungen/images/proof-tree.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 54 | $\pred{Ancestor}(\pred{alice},\pred{david})$ 65 | $\pred{Parent}(\pred{alice},\pred{carla})$ 76 | $\pred{Ancestor}(\pred{carla},\pred{david})$ 87 | $\pred{Parent}(\pred{carla},\pred{david})$ 98 | $\pred{father}(\pred{carla},\pred{david})$ 109 | $\pred{mother}(\pred{alice},\pred{carla})$ 120 | 125 | 130 | 135 | 140 | 145 | \drule{(8)} 156 | \drule{\{x\mapsto\pred{alice},y\mapsto\pred{carla},z\mapsto\pred{david}\}} 167 | \drule{(6)} 178 | \drule{\{x\mapsto\pred{alice},y\mapsto\pred{carla}\}} 189 | \drule{(7)} 200 | \drule{\{x\mapsto\pred{carla},y\mapsto\pred{david}\}} 211 | \drule{(5)} 222 | \drule{\{x\mapsto\pred{carla},y\mapsto\pred{david}\}} 233 | \drule{(2)} 244 | \drule{(4)} 255 | 256 | 257 | -------------------------------------------------------------------------------- /Vorlesungen/lecture-11.tex: -------------------------------------------------------------------------------- 1 | \documentclass[aspectratio=1610,onlymath]{beamer} 2 | % \documentclass[aspectratio=1610,onlymath,handout]{beamer} 3 | 4 | \input{macros-lecture} 5 | 6 | \defineTitle{11}{NL und PSpace}{16. Mai 2024} 7 | 8 | \begin{document} 9 | 10 | \maketitle 11 | 12 | \begin{frame}\frametitle{\Scomplclass{NP}-vollständige Probleme} 13 | 14 | \Scomplclass{NP}-vollständige Probleme\\ = Probleme, die mindestens so schwer 15 | sind, wie alle anderen Probleme in \Scomplclass{NP}\\ 16 | = die schwersten Probleme in NP. 17 | \bigskip 18 | 19 | \emph{Alles oder nichts:}\\ 20 | Entweder sind alle NP-vollständigen Probleme in P\\ 21 | oder kein einziges NP-vollständiges Problem ist in P 22 | \bigskip\pause 23 | 24 | \alert{Ladner:} "`Alle glauben P${}\neq{}$NP. Dann gibt es aber auch 25 | beliebig viele Probleme in NP, die nicht NP-vollständig sind und dennoch nicht in P liegen."' 26 | \\ 27 | \medskip 28 | \emph{Anders gesagt:} Neben den "`schwersten"' Problemen in NP gibt es dann auch noch viele "`mittelschwere"', welche dennoch nicht in P liegen. Bisher wissen wir nicht, welche das 29 | sind. 30 | 31 | \end{frame} 32 | 33 | \begin{frame}\frametitle{Leichte NP-vollständige Probleme} 34 | 35 | Pseudopolynomielle Probleme sind polynomiell in der Größe von 36 | Eingabe und gegebenen Zahlenbeträgen. 37 | \bigskip 38 | 39 | Das macht sie in der Praxis oft eher einfach. 40 | \bigskip 41 | 42 | \examplebox{ 43 | \emph{Beispiel:} Das Rucksackproblem ist nur dann NP-vollständig, 44 | wenn die Gewichte der Gegenstände über-polynomiell wachsen dürfen. Ein Problem mit 45 | so schweren Gegenständen ist aber nur dann interessant, wenn auch der Rucksack 46 | eine sehr große Kapazität hat. Alternativ könnte man mit sehr hoher Genauigkeit wiegen. 47 | } 48 | 49 | \end{frame} 50 | 51 | \sectionSlide{NL} 52 | 53 | \begin{frame}\frametitle{Die Macht des Speichers} 54 | 55 | Selbst innerhalb kleiner Speichergrenzen ist sehr viel machbar:\pause 56 | \begin{itemize} 57 | \item \Slang{SAT} ist mit linearem Speicher lösbar:\\ 58 | Wir iterieren durch alle Wahrheitswertbelegungen (jeweils linear groß) und 59 | testen jeweils, ob die Formel erfüllt ist (logarithmischer Speicher für ein paar Pointer und Zwischenergebnisse)\pause 60 | \item Linearer Speicher genügt zur Erkennung kontextsensitiver Sprachen (durch linear beschränkte Automaten, LBA)\pause 61 | \item Jedes NP-vollständige Problem ist in polynomiellen Speicher lösbar:\\ 62 | Wir iterieren durch alle polynomiellen Zertifikate und simulieren einen polynomiellen 63 | Verifikator auf ihnen 64 | \end{itemize} 65 | 66 | $\leadsto$ sehr kleine Speichergrenzen sind sinnvoll 67 | 68 | \end{frame} 69 | 70 | \begin{frame}\frametitle{Erinnerung: L} 71 | 72 | \emph{LogSpace (L):} Sprachen die man mit sehr wenig Arbeitsspeicher erkennen kann 73 | \bigskip 74 | 75 | \alert{Wesentliche Datentypen:} 76 | \begin{itemize} 77 | \item Zähler, Maximalwert polynomiell beschränkt 78 | \item Pointer auf (read-only) Eingabeband 79 | \end{itemize} 80 | {\tiny Jeweils fest deklariert, d.h. ihre Anzahl hängt nicht von der Eingabe ab 81 | 82 | } 83 | \bigskip 84 | 85 | \alert{Wesentliche Programmierfeatures:} 86 | \begin{itemize} 87 | \item Initialisiere Pointer oder Zähler auf festen Wert 88 | \item Inkrementiere/dekrementiere Pointer oder Zähler 89 | \item Vergleiche Speicherinhalte von zwei Pointern oder zwei Zählern (und führe je nach Ergebnis anderen Code aus) 90 | \end{itemize} 91 | \bigskip 92 | 93 | \alert{Optionaler Ausgabestrom:} Write-only, write once 94 | 95 | \end{frame} 96 | 97 | \begin{frame}\frametitle{NLogSpace} 98 | 99 | \alert{Nichtdeterministische TM mit logarithmischem Speicher:} 100 | \[ 101 | \Scomplclass{NL} = \Scomplclass{NLogSpace} = \Scomplclass{NSpace}(\log n) 102 | \] 103 | 104 | \alert{Alternativ:}\\ 105 | "`Probleme, deren Lösung in L verifiziert werden kann"' 106 | \bigskip 107 | 108 | \begin{itemize} 109 | \item Gleiche Programmierfeatures wie in L 110 | \item Aber nichtdeterministische Operationen möglich,\\ z.B. setze Pointer auf eine zufällige Eingabeposition 111 | \end{itemize} 112 | 113 | \end{frame} 114 | 115 | \begin{frame}\frametitle{Beispiel: Erreichbarkeit} 116 | 117 | \defbox{Das Problem der (\Slang{s-t-})\Slang{Erreichbarkeit} in gerichteten Graphen 118 | lautet wie folgt:\\[1ex] 119 | \emph{Gegeben:} gerichteter Graph $G$ mit Knoten $s$ und $t$\\ 120 | \emph{Frage:} Gibt es in $G$ einen gerichteten Pfad von $s$ nach $t$? 121 | }\bigskip\pause 122 | 123 | \theobox{\emph{Satz:} 124 | \Slang{Erreichbarkeit} in gerichteten Graphen liegt in NL.}\pause 125 | 126 | \emph{Beweis (Algorithmus):} 127 | \begin{itemize} 128 | \item Wir verweden einen Pointer $p$ auf einen Knoten (in der Eingabe) und einen Zähler $z$ 129 | \item Initialisiere $*p=s$ und $z=1$ 130 | \item Schleife: 131 | \begin{itemize} 132 | \item Falls $*p=t$ dann akzeptiere 133 | \item Falls $z={}$Anzahl der Knoten in $G$ dann verwerfe 134 | \item Andernfalls: inkrementiere $z$ und setze $p$ auf einen Nachfolger des aktuellen Knotens $*p$ (nichtdet.)\qed 135 | \end{itemize} 136 | \end{itemize} 137 | 138 | \end{frame} 139 | 140 | \begin{frame}\frametitle{NL-Vollständigkeit} 141 | 142 | Man kann NL-Schwere ähnlich wie für NP definieren: 143 | \begin{itemize} 144 | \item Statt polynomiellen Reduktionen verwendet man Logspace-Reduktionen 145 | \item NL-schwer: jedes Problem in NL ist darauf logspace-reduzierbar 146 | \item NL-vollständig: in NL und NL-schwer 147 | \end{itemize} 148 | Intuition: NL-vollständige Probleme sind die schwersten in NL 149 | \bigskip\pause 150 | 151 | \examplebox{\emph{Beispiel:} \Slang{Erreichbarkeit} in gerichteten Graphen ist NL-vollständig.}\bigskip\pause 152 | 153 | \examplebox{\emph{Beispiel:} \Slang{Erreichbarkeit} in \redalert{un}gerichteten Graphen ist in NL aber (vermutlich) nicht NL-schwer: Das Problem liegt in L (Omer Reingold, 2005).} 154 | \end{frame} 155 | 156 | \begin{frame}\frametitle{L, NL und coNL} 157 | 158 | \emph{Rückblick:} Savitch sagte uns, dass $\Scomplclass{NPSpace}=\Scomplclass{PSpace}$, also auch $\Scomplclass{NPSpace}=\Scomplclass{coNPSpace}$ 159 | \bigskip\pause 160 | 161 | Für logarithmischen Speicher ergibt Savitchs Ergebnis aber lediglich: $\Scomplclass{NL}\subseteq\Scomplclass{DSpace}(\log^2 n)$ 162 | $\leadsto$ daraus folgt nicht $\Scomplclass{NL}\subseteq\Scomplclass{L}$! 163 | \bigskip\pause 164 | 165 | Man weiß dennoch:\bigskip 166 | 167 | \theobox{\emph{Satz (Immerman 1987, Szelepcs\'enyi 1987):} $\Scomplclass{NL}=\Scomplclass{coNL}$.}\pause\medskip 168 | 169 | \examplebox{\emph{Beispiel:} Nichterreichbarkeit in gerichteten Graphen kann in NL entschieden werden. Betrachtet man den NL-Algorithmus für Erreichbarkeit, dann ist das zunächst überraschend \ldots} 170 | \bigskip 171 | 172 | {\tiny 173 | (Eng verwandtes Resultat: kontextsensitive Sprachen sind unter Komplement abgeschlossen) 174 | 175 | } 176 | 177 | \end{frame} 178 | 179 | \sectionSlide{PSpace} 180 | 181 | \begin{frame}\frametitle{Noch schwerere Probleme?} 182 | 183 | \emph{Beobachtung:} Bisher waren alle entscheidbaren schweren Probleme der Vorlesung 184 | auch in NP, d.h. ihre Lösung war leicht verifizierbar: 185 | 186 | \begin{itemize} 187 | \item \alert{Erfüllbarkeit}, \alert{Hamiltonpfad}, \alert{Clique}, \alert{Rucksack}: NP-vollständige Probleme mit polynomiellen Verifikatoren 188 | \item \alert{Faktorisierung}: in $\Scomplclass{NP}\cap\Scomplclass{coNP}$ 189 | \item \alert{Erreichbarkeit in Graphen}: in NP (Zertifikat ist Pfad); sogar in P (z.B. Breitensuche) 190 | \end{itemize} 191 | 192 | Gibt es überhaupt noch schwerere entscheidbare Probleme? 193 | 194 | \end{frame} 195 | 196 | \begin{frame}\frametitle{Beispiel: Schachrätsel} 197 | 198 | ~\hfill 199 | \includegraphics[height=6.5cm]{images/mate-3} 200 | \hfill~ 201 | 202 | \narrowcentering{ 203 | Matt in drei Zügen; Weiß ist am Zug 204 | } 205 | 206 | \end{frame} 207 | 208 | \begin{frame}\frametitle{Beispiel: Schachrätsel} 209 | 210 | ~\hfill 211 | \includegraphics[height=6.5cm]{images/mate-262} 212 | \hfill~ 213 | 214 | \narrowcentering{ 215 | Matt in 262 Zügen; Weiß ist am Zug 216 | } 217 | 218 | \end{frame} 219 | 220 | \begin{frame}\frametitle{Rückblick Aussagenlogik} 221 | 222 | \anybox{strongyellow}{\emph{Rückblick Aussagenlogik}\\[1ex] 223 | % 224 | \begin{itemize} 225 | \item Aussagenlogische Formeln basieren auf \alert{Atomen} (Propositionen, Variablen) 226 | \item Atome werden mit \alert{Junktoren} verknüpft: $\neg$, $\wedge$, $\vee$, $\to$\\ (wir setzen immer Klammern zwischen verschiedene binären Junktoren) 227 | \item Wir erlauben außerdem die nullstelligen Operatoren $\top$ (wahr) und $\bot$ (falsch) 228 | \item \alert{Belegungen} ordnen Atomen \alert{Wahrheitswerte} \mytrue{} oder \myfalse{} zu 229 | \end{itemize} 230 | }\pause 231 | 232 | \begin{itemize} 233 | \item \Slang{SAT}: Gegeben eine aussagenlogische Formel $\varphi$, \alert{existiert} eine Belegung der Atome in $\varphi$, für die $\varphi$ wahr wird?\pause 234 | % 235 | \item \Slang{Tautologie}: Gegeben eine aussagenlogische Formel $\varphi$, wird $\varphi$ \alert{für alle} Belegungen der Atome in $\varphi$ wahr? 236 | \end{itemize}\pause 237 | $\leadsto$ 238 | Existentielle und universelle Quantoren über Wahrheitswerte 239 | \bigskip 240 | 241 | \end{frame} 242 | 243 | 244 | \begin{frame}\frametitle{Ein Problem in PSpace} 245 | 246 | Ein Beispiel für ein erstes typisches PSpace-Problem ergibt sich, wenn man \Slang{SAT} und \Slang{Tautologie} verallgemeinert:\bigskip 247 | 248 | \defbox{ 249 | Eine \redalert{Quantifizierte Boolsche Formel} (QBF) ist eine logische Formel der folgenden Form: 250 | % 251 | \[\quantor_1 p_1. \quantor_2 p_2. \cdots \quantor_\ell p_\ell.F[p_1,\ldots,p_\ell]\] 252 | % 253 | mit $i\geq 0$, $\quantor_i\in\{\exists,\forall\}$ Quantoren, $p_i$ aussagenlogischen Atomen (Variablen) und $F$ einer aussagenlogischen Formel mit Atomen $p_1,\ldots,p_\ell$. 254 | }\pause 255 | 256 | \examplebox{\emph{Beispiele:} 257 | \begin{itemize} 258 | \item $\forall p.\exists q. (p\to q)\wedge(q\to p)$ 259 | \item $\forall p_1,p_2,p_3.\exists q.(p_1\vee p_2\vee p_3)\to((p_1\vee q)\wedge (\neg q\vee p_2\vee p_3))$ 260 | \end{itemize}\medskip 261 | {\tiny 262 | Anmerkung: wir sparen uns die äußerste Klammer sowie Klammern in Ketten von $\wedge$ und $\vee$ 263 | 264 | } 265 | } 266 | 267 | \end{frame} 268 | 269 | 270 | \begin{frame}\frametitle{Semantik von QBF} 271 | 272 | \defbox{ 273 | Jeder QBF-Formel $Q$ wird ein eindeutiger Wahrheitswert $W(Q)$ zugeordnet: 274 | \begin{itemize} 275 | \item QBF-Formeln ohne Atome (d.h. nur mit $\top$ und $\bot$) werden wie aussagenlogische Formeln evaluiert 276 | \item $W(\exists p.F[p])=\mytrue$ falls $W(F[p/\top])=\mytrue$ oder $W(F[p/\bot])=\mytrue$ 277 | \item $W(\forall p.F[p])=\mytrue$ falls $W(F[p/\top])=\mytrue$ und $W(F[p/\bot])=\mytrue$ 278 | \\[1ex] 279 | Dabei heißt $\varphi[p/\top]$: "`$\varphi$ mit $p$ ersetzt durch $\top$"'; analog für $\bot$. 280 | \end{itemize} 281 | }\pause 282 | 283 | \examplebox{\emph{Beispiel:}\\\footnotesize 284 | \begin{tabular}{@{}r@{~}l@{}} 285 | & $W(\forall p.\exists q. (p\to q)\wedge(q\to p))=\mytrue$ \\ 286 | gdw. & $W(\exists q. (\top\to q)\wedge(q\to \top))=\mytrue$ und\\ 287 | & $W(\exists q. (\bot\to q)\wedge(q\to \bot))=\mytrue$ \\ 288 | gdw. & $W((\top\to \top)\wedge(\top\to \top))=\mytrue$ oder $W((\top\to \bot)\wedge(\bot\to \top))=\mytrue$ ~~und\\ 289 | & $W((\bot\to \top)\wedge(\top\to \bot))=\mytrue$ oder $W((\bot\to \bot)\wedge(\bot\to \bot))=\mytrue$ 290 | \end{tabular} 291 | } 292 | 293 | \end{frame} 294 | 295 | 296 | \begin{frame}\frametitle{Wahre QBF erkennen} 297 | 298 | Durch die Quantoren steht der Wahrheitswert jeder QBF fest, d.h. er hängt nicht von Belegungen ab.\bigskip 299 | 300 | \defbox{Das Problem \Slang{TrueQBF} ist wie folgt\\[1ex] 301 | \emph{Gegeben:} eine QBF $Q$\\ 302 | \emph{Frage:} Ist $W(Q)=\mytrue$?}\bigskip\pause 303 | 304 | \examplebox{\emph{Beispiel:} \Slang{SAT} lässt sich auf \Slang{TrueQBF} reduzieren, indem man jedes Atom der gegebenen aussagenlogischen Formel existentiell quantifiziert.}\bigskip\pause 305 | 306 | \examplebox{\emph{Beispiel:} \Slang{Tautologie} lässt sich auf \Slang{TrueQBF} reduzieren, indem man jedes Atom der gegebenen aussagenlogischen Formel universell quantifiziert.} 307 | 308 | \end{frame} 309 | 310 | \begin{frame}\frametitle{\Slang{TrueQBF} in polynomiellem Speicher} 311 | 312 | \theobox{\emph{Satz:} \Slang{TrueQBF} ist in PSpace.}\pause 313 | 314 | \emph{Beweis:} Durch Angabe eines (Pseudo-)Algorithmus 315 | 316 | \codebox{ 317 | {\tt% 318 | \alert{01}~\textsc{TrueQBF}($F$) : \\ 319 | \alert{02}~~~\Scode{if} $F$ "`hat keine Quantoren"' :\\ 320 | \alert{03}~~~~~~\Scode{return} "`Aussagenlogische Auswertung von $F$"'\\ 321 | \alert{04}~~~\Scode{else if} $F = \exists p.G$ :\\ 322 | \alert{05}~~~~~~\Scode{return} (\textsc{TrueQBF}($G[p/\top]$) \Scode{OR} \textsc{TrueQBF}($G[p/\bot]$))\\ 323 | \alert{06}~~~\Scode{else if} $F = \forall p.G$ :\\ 324 | \alert{07}~~~~~~\Scode{return} (\textsc{TrueQBF}($G[p/\top]$) \Scode{AND} \textsc{TrueQBF}($G[p/\bot]$)) 325 | } 326 | }\smallskip 327 | 328 | \begin{itemize} 329 | \item Evaluation in Zeile \texttt{03} möglich in PSpace 330 | \item Rekursion in Zeilen \texttt{05} und \texttt{07} können der Reihe nach abgearbeitet werden, wobei Speicher wiederverwendet wird 331 | \item Jeder Rekursionsschritt benötigt polynomiellen Speicher 332 | \item Maximale Rekursionstiefe = Zahl der Atome (linear)\qed 333 | \end{itemize} 334 | % $\leadsto$ PSpace-Algorithmus 335 | 336 | 337 | \end{frame} 338 | 339 | \begin{frame}\frametitle{PSpace-Schwere} 340 | 341 | \defbox{Ein Problem \Slang{Q} ist \redalert{PSpace-schwer} wenn 342 | für jedes Problem \Slang{P} in PSpace ein polynomielle Reduktion $\Slang{P}\leq_p \Slang{Q}$ existiert. \Slang{Q} ist \redalert{PSpace-vollständig} wenn es PSpace-schwer ist und in PSpace liegt.}\bigskip\pause 343 | 344 | \theobox{\emph{Satz:} \Slang{TrueQBF} ist PSpace-schwer.}\pause 345 | 346 | \emph{Beweisidee:} siehe nächste Vorlesung 347 | 348 | \end{frame} 349 | 350 | \begin{frame}\frametitle{QBF als Spiel} 351 | 352 | Man kann \Slang{TrueQBF} als Spiel auffassen: 353 | \begin{itemize} 354 | \item Das "`Spielbrett"' ist eine QBF 355 | \item Zwei Spieler, \alert{Anton} und \alert{Emilia}, wählen der Reihe nach Wahrheitswerte 356 | \item Steht $\forall p$ vorn, so darf Anton einen Wert für $p$ wählen und den Quantor löschen 357 | \item Steht $\exists p$ vorn, so darf Emilia einen Wert für $p$ wählen und den Quantor löschen 358 | \item Emilia gewinnt, wenn die Formel nach Entfernen aller Quantoren wahr wird 359 | \end{itemize}\bigskip\pause 360 | 361 | \anybox{strongyellow}{Beobachtung: Emilia hat eine Gewinnstrategie im Formelspiel genau dann wenn die gegebene QBF wahr ist.} 362 | 363 | \end{frame} 364 | 365 | \begin{frame}\frametitle{Beispiel: Sipsers Geography} 366 | 367 | \alert{Ein Kinderspiel:} 368 | \begin{itemize} 369 | \item Zwei Spieler benennen abwechselnd Städte 370 | \item Jede Stadt muss mit dem letzten Buchstaben der zuvor genannten beginnen 371 | \item Wiederholungen sind verboten 372 | \item Der erste Spieler, der keine Stadt mehr nennen kann, verliert 373 | \end{itemize} 374 | \smallskip 375 | 376 | \pause 377 | \alert{Ein Mathematikerspiel:} 378 | \begin{itemize} 379 | \item Zwei Spieler markieren Knoten in einem gerichteten Graph 380 | \item Jeder Knoten muss ein Nachfolger des vorigen sein 381 | \item Wiederholungen sind verboten 382 | \item Der erste Spieler, der keinen Knoten markieren kann, verliert 383 | \end{itemize} 384 | \smallskip\pause 385 | 386 | % \pause 387 | \defbox{Entscheidungsproblem \Slang{Geography}:\\[1ex] 388 | \emph{Gegeben:} Ein gerichteter Graph und ein Startknoten\\ 389 | \emph{Frage:} Hat Emilia eine Gewinnstrategie für dieses Spiel? 390 | } 391 | 392 | \end{frame} 393 | 394 | 395 | \begin{frame}\frametitle{\Slang{Geography} ist PSpace-vollständig} 396 | 397 | \theobox{\emph{Satz:} \Slang{Geography} ist PSpace-vollständig}\pause 398 | 399 | \emph{Beweis:} nächste Vorlesung 400 | 401 | \end{frame} 402 | 403 | \begin{frame}\frametitle{Und was ist mit Schach?} 404 | \pause 405 | 406 | Schach selbst ist endlich: 407 | \begin{itemize} 408 | \item endlich viele mögliche Stellungen 409 | \item in jeder hat Weiß eine Gewinnstrategie oder nicht 410 | \end{itemize} 411 | $\leadsto$ Problem in $O(1)$ 412 | \bigskip\pause 413 | 414 | \alert{Verallgemeinertes Schach:} 415 | \begin{itemize} 416 | \item Beliebig großes Spielbrett 417 | \item Beliebig viele Figuren 418 | \end{itemize} 419 | $\leadsto$ ExpTime-vollständig (d.h. vermutlich nicht in PSpace) 420 | \bigskip\pause 421 | 422 | \emph{Intuition:} Schach ist schwerer als typische PSpace-Spiele, da man 423 | Züge rückgängig machen kann\\ 424 | $\leadsto$ Spiel kann mehr als polynomiell viele Züge dauern 425 | \end{frame} 426 | 427 | 428 | 429 | \begin{frame}\frametitle{Zusammenfassung und Ausblick} 430 | 431 | Erreichbarkeit in gerichteten Graphen ist das typische NL-vollständige Problem 432 | \bigskip 433 | 434 | Es gibt schwere Probleme, die keine leicht zu prüfende Lösung haben\bigskip 435 | 436 | Quantifizierte Boolesche Formeln verallgmeinern Aussagenlogik\bigskip 437 | 438 | PSpace ist die Klasse der interessanten Zwei-Spieler-Spiele, die nicht zu lange dauern 439 | \bigskip 440 | 441 | \anybox{yellow}{ 442 | Was erwartet uns als nächstes? 443 | \begin{itemize} 444 | \item Alternierung 445 | \item noch mehr Logik 446 | \end{itemize} 447 | } 448 | 449 | \end{frame} 450 | 451 | 452 | 453 | % \begin{frame}[t]\frametitle{Literatur und Bildrechte} 454 | % 455 | % \alert{Literatur}\bigskip 456 | % 457 | % \begin{itemize} 458 | % \item Richard J. Lorentz: 459 | % \emph{Creating Difficult Instances of the Post Correspondence Problem.} 460 | % Computers and Games 2000: 214--228 461 | % \item John J. O'Connor, Edmund F. Robertson: \emph{Emil Leon Post.} MacTutor History of Mathematics archive, University of St Andrews. \url{http://www-history.mcs.st-andrews.ac.uk/Biographies/Post.html} 462 | % \end{itemize} 463 | % 464 | % \bigskip\bigskip 465 | % 466 | % \alert{Bildrechte}\bigskip 467 | % 468 | % Folie \ref{frame_post}: gemeinfrei 469 | % 470 | % \end{frame} 471 | 472 | 473 | \end{document} 474 | -------------------------------------------------------------------------------- /Vorlesungen/lecture-20.tex: -------------------------------------------------------------------------------- 1 | \documentclass[aspectratio=1610,onlymath]{beamer} 2 | % \documentclass[aspectratio=1610,onlymath,handout]{beamer} 3 | 4 | \input{macros-lecture} 5 | 6 | \defineTitle{20}{Resolution (2)}{1. Juli 2024} 7 | 8 | \begin{document} 9 | 10 | \maketitle 11 | 12 | % \bgroup 13 | % \setbeamercolor{background canvas}{bg=black} 14 | % \frame[plain]{\label{frame_herbrand}\begin{center}\color{white} 15 | % \includegraphics[height=6cm]{images/Herbrand.jpg} 16 | 17 | % \LARGE 18 | % Jacques Herbrand\medskip 19 | % 20 | % \normalsize 21 | % \tt 12.2.1908 -- 27.7.1931 22 | % \end{center}} 23 | % \egroup 24 | 25 | \begin{frame}\frametitle{Der Resolutionsalgorithmus} 26 | 27 | Resolutionsregel: 28 | \[ \frac{ 29 | \{A_1,\ldots,A_n,L_1,\ldots,L_k\}\quad 30 | \{\neg A'_1,\ldots,\neg A'_m,L'_1,\ldots,L'_\ell\} 31 | }{\{L_1\sigma,\ldots,L_k\sigma,L'_1\sigma,\ldots,L'_\ell\sigma\} 32 | }\] 33 | falls $\sigma$ allgemeinster Unifikator von $\{A_1,\ldots,A_n, A'_1,\ldots, A'_m\}$ ist\bigskip 34 | 35 | \emph{Algorithmus (Skizze):} 36 | \begin{enumerate}[(1)] 37 | \item Bilde Klauselform 38 | \item Bilde systematisch Resolventen durch Resolution von Varianten bereits abgeleiteter Klauseln 39 | \item Wiederhole (2), bis entweder $\bot$ erzeugt wird ("`unerfüllbar"') oder keine neuen Klauseln mehr entstehen\footnote{Dieser Fall ist eher ungewöhnlich: Meist entstehen bei erfüllbaren Theorien immer mehr neue Klauseln ohne dass das Verfahren terminiert.} 40 | \end{enumerate} 41 | 42 | \end{frame} 43 | 44 | \begin{frame}\frametitle{Vollständigkeit und Korrektheit} 45 | 46 | \theobox{\emph{Resolutionssatz:} Sei $F$ eine prädikatenlogische Formel und $\mathcal{K}_i$ ($i\geq 0$) die vom Resolutionsalgorithmus ermittelten Klauselmengen. Dann sind die folgenden Aussagen äquivalent: 47 | \begin{itemize} 48 | \item $F$ ist unerfüllbar 49 | \item Es gibt ein $\ell\geq 0$ mit $\bot\in\mathcal{K}_\ell$ 50 | \end{itemize}} 51 | 52 | \begin{itemize} 53 | \item Korrektheit hatten wir bereits gezeigt 54 | \item Vollständigkeit steht noch aus 55 | \end{itemize} 56 | 57 | \end{frame} 58 | 59 | \bgroup 60 | \setbeamercolor{background canvas}{bg=black} 61 | \frame[plain]{\label{frame_herbrand}\begin{center}\color{white} 62 | \includegraphics[height=6cm]{images/Herbrand.jpg} 63 | 64 | \LARGE 65 | Jacques Herbrand\medskip 66 | 67 | \normalsize 68 | \tt 12.2.1908 -- 27.7.1931 69 | \end{center}} 70 | \egroup 71 | 72 | \bgroup 73 | \setbeamercolor{background canvas}{bg=white} 74 | \frame[plain]{\label{frame_jasny}\begin{center}\color{black} 75 | \includegraphics[height=6cm]{images/Natascha_Artin_Brunswick.jpg} 76 | 77 | \LARGE 78 | Natasha Artin Brunswick\medskip 79 | 80 | \normalsize 81 | \tt 11.6.1909 -- 3.2.2003 82 | \end{center}} 83 | \egroup 84 | 85 | \begin{frame}\frametitle{Syntax vs. Semantik} 86 | 87 | Bei Herbrandinterpretationen kann man semantische Elemente (wie sie in Zuweisungen vorkommen) durch syntaktische Elemente (wie sie in Substitutionen vorkommen) ausdrücken:\medskip 88 | 89 | \theobox{\emph{Lemma:} Für jede Herbrandinterpretation $\Inter$, jede Zuweisung $\Zuweisung$ für $\Inter$, jeden Term $t\in\Delta^\Inter$ und jede Formel $F$ gilt: 90 | \[ \Inter,\Zuweisung\{x\mapsto t\} \models F \qquad \text{gdw.}\qquad \Inter,\Zuweisung \models F\{x\mapsto t\}\]} 91 | 92 | (ohne Beweis; einfach) 93 | \bigskip 94 | 95 | {\color{devilscss}\footnotesize \emph{Anmerkung:} Man kann ein entsprechendes Resultat auch für Nicht-Herbrand-Interpretationen zeigen. Dann muss man einfach den Term auf der linken Seite durch $t^{\Inter,\Zuweisung}$ ersetzen.}\bigskip 96 | 97 | \theobox{\emph{Satz:} Ein Satz $F$ in Skolemform ist genau dann erfüllbar, wenn $F$ ein 98 | Herbrandmodell hat.} 99 | 100 | \end{frame} 101 | 102 | % \begin{frame}\frametitle{Erfüllbar + Skolem = Erfüllbarkeit bei Herbrand} 103 | % 104 | % \theobox{\emph{Satz:} Ein Satz $F$ in Skolemform ist genau dann erfüllbar, wenn $F$ ein 105 | % Herbrandmodell hat.}\pause 106 | % 107 | % \emph{Beweis:} $(\Leftarrow)$ ist klar, da Herbrandmodelle auch Modelle sind.\bigskip\pause 108 | % 109 | % $(\Rightarrow)$ Sei $\Inter\models F$ ein Modell für $F$. Wir definieren eine Herbrandinterpretation $\Jnter$ indem wir festlegen: 110 | % \begin{itemize} 111 | % \item $p^\Jnter=\{\tuple{t_1,\ldots,t_n}\mid\tuple{t_1^\Inter,\ldots,t_n^\Inter}\in p^\Inter\}$\\ 112 | % {\footnotesize Anm.: $t_i$ sind variablenfrei, daher ist $t_i^\Inter$ wohldefiniert} 113 | % \end{itemize} 114 | % Behauptung: \alert{$\Jnter$ ist ein Herbrandmodell von $F$} 115 | % 116 | % \end{frame} 117 | % 118 | % \begin{frame}\frametitle{Beweis (Fortsetzung)} 119 | % 120 | % \emph{Behauptung:} \alert{$\Jnter$ ist ein Herbrandmodell von $F$}\bigskip 121 | % 122 | % $F$ hat die Form $\forall x_1,\ldots, x_n.G$, wobei $G$ quantorenfrei ist.\pause 123 | % \begin{itemize} 124 | % \item Aus $\Inter\models F$ folgt also $\Inter,\Zuweisung\models G$ für jede Zuweisung $\Zuweisung$ für $\Inter$\pause 125 | % \item Speziell gilt also für alle $t_1,\ldots,t_n\in\Delta_F$: $\Inter,\{x_1\mapsto t_1^{\Inter},\ldots,x_n\mapsto t_n^{\Inter}\}\models G$\pause 126 | % \item Daraus folgt: $\Inter\models G\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}$ (analog zu Lemma)\pause 127 | % \item Daraus folgt: $\Jnter\models G\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}$\\ 128 | % {\footnotesize(Für Atome $G$ direkt aus Definition; die Aussage kann leicht auf größere Boolsche Verknüpfungen von Atomen verallgemeinert werden -- formal durch strukturelle Induktion)}\pause 129 | % \item Es folgt: $\Jnter,\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}\models G$ (Lemma) 130 | % \end{itemize} 131 | % Der Schluss gilt für alle $t_1,\ldots,t_n\in\Delta_F$, d.h. $\Jnter\models F$.\qed 132 | % 133 | % \end{frame} 134 | % 135 | 136 | \sectionSlide{Prädikatenlogisches Schließen mit Aussagenlogik} 137 | 138 | \begin{frame}\frametitle{Herbrand-Expansionen} 139 | 140 | \defbox{Die \redalert{Herbrand-Expansion} $HE(F)$ einer Formel $F=\forall x_1,\ldots, x_n.G$ in Skolemform ist die Menge: 141 | \[ HE(F)\defeq\big\{ G\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}\mid t_1,\ldots,t_n\in\Delta_F\big\}\] 142 | } 143 | 144 | $HE(F)$ ist also die (möglicherweise unendliche) Menge von \ghost{variablen-}\\ freien Sätzen, die in Herbrandmodellen von $F$ gelten müssten. 145 | \pause\bigskip 146 | 147 | \redalert{Quantorenfreie Sätze = aussagenlogische Formeln:} 148 | \begin{itemize} 149 | \item $HE(F)$ enthält Formeln ohne Variablen, d.h. Boolsche Kombinationen geschlossener Atome 150 | \item Geschlossene Atome können unabhängig voneinander wahr oder falsch sein, egal wie ihre genaue Struktur aussieht 151 | \item Wir können sie also als "`ungewöhnlich benannte"' aussagenlogische Atome auffassen und die gesamte Formel aussagenlogisch interpretieren 152 | \end{itemize} 153 | \alert{$\leadsto$ $HE(F)$ als aussagenlogische Theorie} 154 | 155 | 156 | \end{frame} 157 | 158 | \begin{frame}\frametitle{Gödel, Herbrand, Skolem} 159 | 160 | \theobox{\emph{Satz von Gödel, Herbrand \& Skolem:} Eine Formel $F$ in Skolemform ist genau dann erfüllbar, wenn $HE(F)$ aussagenlogisch erfüllbar ist.}\pause 161 | 162 | \emph{Beweis:} Wir zeigen, dass $F=\forall x_1,\ldots,x_n.G$ genau dann ein Herbrandmodell hat, wenn $HE(F)$ aussagenlogisch erfüllbar ist:\pause 163 | 164 | \begin{itemize} 165 | \item $\Inter$ ist ein Herbrandmodell von $F$\pause 166 | \item gdw. $\Inter,\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}\models G$ für alle $t_1,\ldots,t_n\in\Delta_F$\pause 167 | \item gdw. $\Inter\models G\{x_1\mapsto t_1,\ldots,x_n\mapsto t_n\}$ für alle $t_1,\ldots,t_n\in\Delta_F$ (Lemma)\pause 168 | \item gdw. für alle $H\in HE(F)$ gilt $\Inter\models H$\pause 169 | \item gdw. $\Inter$ als aussagenlogisches Modell für $HE(F)$ angesehen werden kann.\qed 170 | \end{itemize} 171 | 172 | \end{frame} 173 | 174 | \begin{frame}\frametitle{Satz von Herbrand} 175 | 176 | Als Korollar der gezeigten Ergebnisse erhalten wir ein wichtiges Resultat: 177 | 178 | \theobox{\emph{Satz:} Eine Formel $F$ in Skolemform ist genau dann unerfüllbar, wenn 179 | eine endliche Teilmenge von $HE(F)$ aussagenlogisch unerfüllbar ist.} 180 | 181 | \pause\emph{Beweis:} Das Kontrapositiv des Satzes von Gödel, Herbrand \& Skolem besagt:\medskip 182 | 183 | Eine Formel $F$ in Skolemform ist genau dann unerfüllbar, wenn $HE(F)$ aussagenlogisch unerfüllbar ist.\bigskip 184 | 185 | Der Satz folgt nun, weil jede unerfüllbare aussagenlogische Formelmenge eine endliche 186 | Teilmenge hat, die unerfüllbar ist: \alert{Kompaktheit der Aussagenlogik}, ohne Beweis\\[1ex] 187 | {\tiny 188 | \textcolor{devilscss}{Das Ergebnis kann aus der Vollständigkeit der Verallgemeinerung aussagenlogischer Resolution auf unendliche Modelle gefolgert werden (siehe Formale Systeme, WS 2017/2018, Vorlesung 23): wenn die leere Klausel endlich abgeleitet werden kann, dann nutzt man dazu nur endlich viele Klauseln der Eingabe; wenn die leere Klausel nicht endlich abgeleitet werden kann, dann erhält man aus der unendlichen Menge aller möglichen Ableitungen ein Modell, analog zum endlichen Fall.} 189 | 190 | }\qed 191 | 192 | \end{frame} 193 | 194 | \begin{frame}\frametitle{Prädikatenlogik semi-entscheiden} 195 | 196 | Das Ergebnis Herbrands ermöglicht bereits einen naiven Algorithmus zur Semi-Entscheidung von Unerfüllbarkeit in der Prädikatenlogik:\bigskip 197 | 198 | \codebox{% 199 | \emph{Gegeben:} Eine Formel $F$ 200 | \begin{itemize} 201 | \item Wandle $F$ in Skolemform $F'$ um 202 | \item Definiere eine Reihenfolge der Formeln in $HE(F')$: $F_1,F_2,F_3,\ldots$ 203 | \item Für alle $i\geq 1$: 204 | \begin{itemize} 205 | \item Prüfe ob die endliche Menge $\{F_1,\ldots, F_i\}$ aussagenlogisch unerfüllbar ist 206 | \item Falls ja, dann gib "`unerfüllbar"' aus; andernfalls fahre fort 207 | \end{itemize} 208 | \end{itemize}}\medskip 209 | 210 | Offenbar ist das \redalert{kein praktischer Algorithmus}, aber er zeigt Semi-Entscheidbarkeit 211 | 212 | \end{frame} 213 | 214 | \sectionSlide{Vollständigkeit der Resolution} 215 | 216 | \begin{frame}\frametitle{Ansatz} 217 | 218 | \alert{Herbrands Satz liefert uns auch eine Strategie zum Beweis der Vollständigkeit des Resolutionsalgorithmus}\bigskip 219 | 220 | \emph{Wir wissen bereits:} 221 | \begin{itemize} 222 | \item Unerfüllbarkeit einer Klauselmenge zeigt sich in der Unerfüllbarkeit ihrer Herbrand-Expansion 223 | \item Die Unerfüllbarkeit der Herbrand-Expansion kann man mit aussagenlogischer Resolution beweisen 224 | \item Prädikatenlogische Resolution verallgemeinert aussagenlogische Resolution indem wir direkt mit Klauseln arbeiten, die noch Variablen enthalten 225 | \end{itemize}\pause 226 | 227 | \emph{Frage:} Kann man alle Schlüsse, die man auf expandierten Formeln aussagenlogisch erzeugen kann, auch direkt prädikatenlogisch (mit Variablen) erhalten? 228 | 229 | \end{frame} 230 | 231 | \begin{frame}\frametitle{Lifting-Lemma} 232 | 233 | Wir zeigen: Ja, jeder aussagenlogische Schluss (auf der Expansion) kann auf einen prädikatenlogischen Schluss (auf den Klauseln mit Variablen) "`angehoben"' werden.\medskip 234 | 235 | \theobox{\emph{Satz (Lifting-Lemma):} Seien $K_1$ und $K_2$ prädikatenlogische Klauseln mit 236 | Grundinstanzen $K'_1=K_1\sigma$ und $K'_2=K_2\sigma$.${^1}$\bigskip 237 | 238 | Wenn $R'$ eine (aussagenlogische) Resolvente von $K'_1$ und $K'_2$ ist, dann gibt es 239 | eine prädikatenlogische Resolvente $R$ von $K_1$ und $K_2$, welche $R'$ als Grundinstanz hat. 240 | } 241 | 242 | \color{devilscss} 243 | {\footnotesize ${^1}$ Die Verwendung der selben Substitution für $K'_1$ und $K'_2$ ist keine Einschränkung, da wir durch Variantenbildung sicherstellen können, dass $K_1$ und $K_2$ keine Variablen gemein haben. 244 | 245 | } 246 | 247 | \end{frame} 248 | 249 | \begin{frame}\frametitle{Lifting-Lemma: Beweis} 250 | 251 | \theobox{\emph{Satz (Lifting-Lemma):} Seien $K_1$ und $K_2$ prädikatenlogische Klauseln mit 252 | Grundinstanzen $K'_1=K_1\sigma$ und $K'_2=K_2\sigma$.\smallskip 253 | 254 | Wenn $R'$ eine (aussagenlogische) Resolvente von $K'_1$ und $K'_2$ ist, dann gibt es 255 | eine prädikatenlogische Resolvente $R$ von $K_1$ und $K_2$, welche $R'$ als Grundinstanz hat. 256 | } 257 | 258 | \emph{Beweis:} Sei $A'\in K'_1$ das (geschlossene) Atom, über das resolviert wurde, d.h. $\neg A'\in K'_2$.\smallskip\pause 259 | 260 | Sei $\mathcal{A}_1\defeq\{A\mid A\in K_1,\;A\sigma=A'\}$ und $\mathcal{A}_2\defeq\{A\mid \neg A\in K_2, A\sigma=A'\}$.\smallskip\pause 261 | 262 | Dann ist $\sigma$ ein Unifikator für $\mathcal{A}_1\cup\mathcal{A}_2$.\\ Also hat $\mathcal{A}_1\cup\mathcal{A}_2$ einen allgemeinsten Unifikator $\theta$.\smallskip\pause 263 | 264 | Sei $R$ die Resolvente von $K_1$ und $K_2$ bzgl. $\theta$.\smallskip\pause 265 | 266 | Dann enthalten $R'$ und $R$ Instanzen der gleichen Literale, d.h. sie sind von der Form 267 | $R'=\{L_1\sigma,\ldots,L_n\sigma\}$ und $R=\{L_1\theta,\ldots,L_n\theta\}$\smallskip\pause 268 | 269 | Da $\theta$ allgemeinster Unifikator ist gibt es $\lambda$ mit $\sigma=\theta\circ\lambda$ 270 | und es gilt: $R\lambda=\{L_1\theta\lambda,\ldots,L_n\theta\lambda\}=\{L_1\sigma,\ldots,L_n\sigma\}=R'$\qed 271 | 272 | 273 | \end{frame} 274 | 275 | 276 | \begin{frame}[t]\frametitle{Vollständigkeit der Resolution (1)} 277 | 278 | \theobox{\emph{Resolutionssatz:} Sei $F$ eine prädikatenlogische Formel und $\mathcal{K}_i$ ($i\geq 0$) die vom Resolutionsalgorithmus ermittelten Klauselmengen. Dann sind die folgenden Aussagen äquivalent: 279 | \begin{itemize} 280 | \item $F$ ist unerfüllbar 281 | \item Es gibt ein $\ell\geq 0$ mit $\bot\in\mathcal{K}_\ell$ 282 | \end{itemize}}\pause 283 | 284 | \emph{Beweis (Vollständigkeit):} Sei $F$ unerfüllbar 285 | \begin{itemize} 286 | \item Dann ist $HE(F)$ unerfüllbar 287 | \item Dann gibt es eine (endliche) aussagenlogische Resolutionsableitung von $\bot$ aus $HE(F)$ 288 | \item Die Ableitung erzeugt eine endliche Folge von Klauseln: $K_1',K_2',\ldots,K_{m-1}',K_m'=\bot$ 289 | \item \alert{Behauptung:} Jede Klausel $K_i'$ ist Grundinstanz einer Klausel $K_i$ die in $\mathcal{K}_\ell$ vorkommt für ein $\ell\geq 0$. 290 | \item Für $i=m$ folgt daraus der Satz, denn $K_m'=\bot$ kann nur Grundinstanz von $\bot$ sein, d.h. $\bot\in\mathcal{K}_\ell$ für ein $\ell\geq 0$. 291 | \end{itemize} 292 | 293 | \end{frame} 294 | 295 | \begin{frame}[t]\frametitle{Vollständigkeit der Resolution (2)} 296 | 297 | % \theobox{Resolutionssatz: Sei $F$ eine prädikatenlogische Formel und $\mathcal{K}_i$ ($i\geq 0$) die vom Resolutionsalgorithmus ermittelten Klauselmengen. Dann sind die folgenden Aussagen äquivalent: 298 | % \begin{itemize} 299 | % \item $F$ ist unerfüllbar 300 | % \item Es gibt ein $\ell\geq 0$ mit $\bot\in\mathcal{K}_\ell$ 301 | % \end{itemize}} 302 | 303 | \emph{Beweis (Vollständigkeit):} \alert{Behauptung:} Jede Klausel $K_i'$ ist Grundinstanz einer Klausel $K_i$ die in $\mathcal{K}_\ell$ vorkommt für ein $\ell\geq 0$. 304 | \medskip\pause 305 | 306 | Aussage klar für $K'_i\in HE(F)$: in diesem Fall ist $K'_i$ ist Grundinstanz einer Klausel $K_i$ in der Klauselform von $F$ und in $\mathcal{K}_0$\medskip\pause 307 | 308 | Restlicher Beweis durch Induktion über $i$: 309 | \begin{itemize} 310 | \item Induktionsannahme: Die Aussage gilt für alle $j#2}{% 76 | \only<#1| handout:0>{\pgfkeysalso{#2}} 77 | }} 78 | \tikzset{onslideprint/.code args={<#1>#2}{% 79 | \only<#1>{\pgfkeysalso{#2}} 80 | }} 81 | 82 | %%% Title -- always set this first 83 | 84 | \newcommand{\defineTitle}[3]{ 85 | \newcommand{\lectureindex}{#1} 86 | \title{Theoretische Informatik und Logik} 87 | \subtitle{\href{\lectureurl}{#1. Vorlesung: #2}} 88 | \author{\href{https://iccl.inf.tu-dresden.de/web/Markus_Kr\%C3\%B6tzsch}{Markus Kr\"{o}tzsch}\\[1ex]Professur Wissensbasierte Systeme} 89 | \date{#3} 90 | \datecity{TU Dresden} 91 | % \institute{CC-By 3.0, sofern keine anderslautenden Bildrechte angegeben sind} 92 | } 93 | 94 | %%% Table of contents: 95 | 96 | \RequirePackage{ifthen} 97 | 98 | \newcommand{\highlight}[2]{% 99 | \ifthenelse{\equal{#1}{\lectureindex}}{\alert{#2}}{#2}% 100 | } 101 | 102 | \def\myspace{-0.7ex} 103 | \newcommand{\printtoc}{ 104 | \begin{tabular}{r@{$\quad$}l} 105 | \highlight{1}{1.} & \highlight{1}{Willkommen/Einleitung formale Sprachen}\\[\myspace] 106 | \highlight{2}{2.} & \highlight{2}{Grammatiken und die Chomsky-Hierarchie}\\[\myspace] 107 | \highlight{3}{3.} & \highlight{3}{Endliche Automaten}\\[\myspace] 108 | \highlight{4}{4.} & \highlight{4}{Complexity of FO query answering}\\[\myspace] 109 | \highlight{5}{5.} & \highlight{5}{Conjunctive queries}\\[\myspace] 110 | \highlight{6}{6.} & \highlight{6}{Tree-like conjunctive queries}\\[\myspace] 111 | \highlight{7}{7.} & \highlight{7}{Query optimisation}\\[\myspace] 112 | \highlight{8}{8.} & \highlight{8}{Conjunctive Query Optimisation / First-Order~Expressiveness}\\[\myspace] 113 | \highlight{9}{9.} & \highlight{9}{First-Order~Expressiveness / Introduction to Datalog}\\[\myspace] 114 | \highlight{10}{10.} & \highlight{10}{Expressive Power and Complexity of Datalog}\\[\myspace] 115 | \highlight{11}{11.} & \highlight{11}{Optimisation and Evaluation of Datalog}\\[\myspace] 116 | \highlight{12}{12.} & \highlight{12}{Evaluation of Datalog (2)}\\[\myspace] 117 | \highlight{13}{13.} & \highlight{13}{Graph Databases and Path Queries}\\[\myspace] 118 | \highlight{14}{14.} & \highlight{14}{Outlook: database theory in practice} 119 | \end{tabular} 120 | } 121 | 122 | \newcommand{\overviewslide}{% 123 | \begin{frame}\frametitle{Overview} 124 | \printtoc 125 | \medskip 126 | 127 | Siehe \href{\lectureurl}{course homepage [$\Rightarrow$ link]} for more information and materials 128 | \end{frame} 129 | } 130 | 131 | %%% Colours: 132 | \usepackage{xcolor,colortbl} 133 | \definecolor{redhighlights}{HTML}{FFAA66} 134 | \definecolor{lightblue}{HTML}{55AAFF} 135 | \definecolor{lightred}{HTML}{FF5522} 136 | \definecolor{lightpurple}{HTML}{DD77BB} 137 | \definecolor{lightgreen}{HTML}{55FF55} 138 | \definecolor{lightgray}{HTML}{CCCCCC} 139 | \definecolor{darkred}{HTML}{CC4411} 140 | \definecolor{darkblue}{HTML}{176FC0}%{1133AA} 141 | \definecolor{nightblue}{HTML}{2010A0}%{1133AA} 142 | \definecolor{alert}{HTML}{176FC0} 143 | \definecolor{darkgreen}{HTML}{36AB14} 144 | \definecolor{strongyellow}{HTML}{FFE219} 145 | \definecolor{devilscss}{HTML}{666666} 146 | 147 | \newcommand{\redalert}[1]{\textcolor{darkred}{#1}} 148 | 149 | %%% Slide layout commands: 150 | 151 | \newcommand{\sectionSlide}[1]{ 152 | \frame{\begin{center} 153 | \LARGE 154 | #1 155 | \end{center}} 156 | } 157 | \newcommand{\sectionSlideNoHandout}[1]{ 158 | \frame{\begin{center} 159 | \LARGE 160 | #1 161 | \end{center}} 162 | } 163 | 164 | \newcommand{\mydualbox}[3]{% 165 | \begin{minipage}[t]{#1} 166 | \begin{beamerboxesrounded}[upper=block title,lower=block body,shadow=true]% 167 | {\centering\usebeamerfont*{block title}#2}% 168 | \raggedright% 169 | \usebeamerfont{block body} 170 | % \small 171 | #3% 172 | \end{beamerboxesrounded} 173 | \end{minipage} 174 | } 175 | % 176 | \newcommand{\myheaderbox}[2]{% 177 | \begin{minipage}[t]{#1} 178 | \begin{beamerboxesrounded}[upper=block title,lower=block title,shadow=true]% 179 | {\centering\usebeamerfont*{block title}\rule{0pt}{2.6ex} #2}% 180 | \end{beamerboxesrounded} 181 | \end{minipage} 182 | } 183 | 184 | \newcommand{\mycontentbox}[2]{% 185 | \begin{minipage}[t]{#1}% 186 | \begin{beamerboxesrounded}[upper=block body,lower=block body,shadow=true]% 187 | {\centering\usebeamerfont*{block body}\rule{0pt}{2.6ex}#2}% 188 | \end{beamerboxesrounded} 189 | \end{minipage} 190 | } 191 | 192 | \newcommand{\mylcontentbox}[2]{% 193 | \begin{minipage}[t]{#1}% 194 | \begin{beamerboxesrounded}[upper=block body,lower=block body,shadow=true]% 195 | {\flushleft\usebeamerfont*{block body}\rule{0pt}{2.6ex}#2}% 196 | \end{beamerboxesrounded} 197 | \end{minipage} 198 | } 199 | 200 | % label=180:{\rotatebox{90}{{\footnotesize\textcolor{darkgreen}{Beispiel}}}} 201 | % \hspace{-8mm}\ghost{\raisebox{-7mm}{\rotatebox{90}{{\footnotesize\textcolor{darkgreen}{Beispiel}}}}}\hspace{8mm} 202 | \newcommand{\examplebox}[1]{% 203 | \begin{tikzpicture}[decoration=penciline, decorate] 204 | \pgfmathsetseed{1235} 205 | \node (n1) [decorate,draw=darkgreen, fill=darkgreen!10,thick,align=left,text width=\linewidth, inner ysep=2mm, inner xsep=2mm] at (0,0) {#1}; 206 | % \node (n2) [align=left,text width=\linewidth,inner sep=0mm] at (n1.92) {{\footnotesize\raisebox{3mm}{\textcolor{darkgreen}{Beispiel}}}}; 207 | % \node (n2) [decorate,draw=darkgreen, fill=darkgreen!10,thick, align=left,text width=\linewidth,inner sep=2mm] at (n1.90) {{\footnotesize\raisebox{0mm}{\textcolor{darkgreen}{Beispiel}}}}; 208 | \end{tikzpicture}% 209 | }% 210 | 211 | \newcommand{\codebox}[1]{% 212 | \begin{tikzpicture}[decoration=penciline, decorate] 213 | \pgfmathsetseed{1236} 214 | \node (n1) [decorate,draw=strongyellow, fill=strongyellow!10,thick,align=left,text width=\linewidth, inner ysep=2mm, inner xsep=2mm] at (0,0) {#1}; 215 | \end{tikzpicture}% 216 | }% 217 | 218 | \newcommand{\defbox}[1]{% 219 | \begin{tikzpicture}[decoration=penciline, decorate] 220 | \pgfmathsetseed{1237} 221 | \node (n1) [decorate,draw=darkred, fill=darkred!10,thick,align=left,text width=\linewidth, inner ysep=2mm, inner xsep=2mm] at (0,0) {#1}; 222 | \end{tikzpicture}% 223 | }% 224 | 225 | \newcommand{\theobox}[1]{% 226 | \begin{tikzpicture}[decoration=penciline, decorate] 227 | \pgfmathsetseed{1240} 228 | \node (n1) [decorate,draw=darkblue, fill=darkblue!10,thick,align=left,text width=\linewidth, inner ysep=2mm, inner xsep=2mm] at (0,0) {#1}; 229 | \end{tikzpicture}% 230 | }% 231 | 232 | \newcommand{\anybox}[2]{% 233 | \begin{tikzpicture}[decoration=penciline, decorate] 234 | \pgfmathsetseed{1240} 235 | \node (n1) [decorate,draw=#1, fill=#1!10,thick,align=left,text width=\linewidth, inner ysep=2mm, inner xsep=2mm] at (0,0) {#2}; 236 | \end{tikzpicture}% 237 | }% 238 | 239 | 240 | \newsavebox{\mybox}% 241 | \newcommand{\doodlebox}[2]{% 242 | \sbox{\mybox}{#2}% 243 | \begin{tikzpicture}[decoration=penciline, decorate] 244 | \pgfmathsetseed{1238} 245 | \node (n1) [decorate,draw=#1, fill=#1!10,thick,align=left,inner sep=1mm] at (0,0) {\usebox{\mybox}}; 246 | \end{tikzpicture}% 247 | }% 248 | -------------------------------------------------------------------------------- /Vorlesungen/tudcolors.sty: -------------------------------------------------------------------------------- 1 | %% LaTeX-Paket für die TUD-Farben 2 | %% 3 | %% Tobias Schlemmer (tobias.schlemmer@mailbox.tu-dresden.de) 4 | \NeedsTeXFormat{LaTeX2e} 5 | \ProvidesPackage{tudcolors}[2010/08/25 v1.5 TU Dresden CD-Farben Tobias.Schlemmer@mailbox.tu-dresden.de] 6 | \RequirePackage{color} 7 | 8 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 9 | %%% Farbdefinitionen entsprechend dem Farbregister auf 10 | %%% http://tu-dresden.de/service/cd/6_handbuch/handbuch_farbregister.pdf 11 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 12 | % Hausfarben 13 | % Dunkelblau 14 | \definecolor{HKS41K100}{cmyk/rgb}{1.00, 0.70, 0.10, 0.50/0.0431373,0.164706,0.317647} 15 | \definecolor{HKS41K90}{cmyk/rgb}{0.9, 0.63, 0.09, 0.45/0.113725,0.207843,0.356863} 16 | \definecolor{HKS41K80}{cmyk/rgb}{0.8, 0.56, 0.08, 0.40/0.184314,0.25098,0.403922} 17 | \definecolor{HKS41K70}{cmyk/rgb}{0.7, 0.49, 0.07, 0.35/0.247059,0.309804,0.454902} 18 | \definecolor{HKS41K60}{cmyk/rgb}{0.6, 0.42, 0.06, 0.30/0.317647,0.364706,0.501961} 19 | \definecolor{HKS41K50}{cmyk/rgb}{0.5, 0.35, 0.05, 0.25/0.388235,0.423529,0.556863} 20 | \definecolor{HKS41K40}{cmyk/rgb}{0.4, 0.28, 0.04, 0.20/0.466667,0.498039,0.619608} 21 | \definecolor{HKS41K30}{cmyk/rgb}{0.3, 0.21, 0.03, 0.15/0.545098,0.580392,0.694118} 22 | \definecolor{HKS41K20}{cmyk/rgb}{0.2, 0.14, 0.02, 0.10/0.658824,0.686275,0.780392} 23 | \definecolor{HKS41K10}{cmyk/rgb}{0.1, 0.07, 0.01, 0.05/0.803922,0.831373,0.886275} 24 | 25 | % Grau 26 | \definecolor{HKS92K100}{cmyk}{0.1,0.00,0.05,0.65} 27 | \definecolor{HKS92K90}{cmyk}{0.09,0.00,0.045,0.585} 28 | \definecolor{HKS92K80}{cmyk}{0.08,0.00,0.04,0.52} 29 | \definecolor{HKS92K70}{cmyk}{0.07,0.00,0.035,0.455} 30 | \definecolor{HKS92K60}{cmyk}{0.06,0.00,0.03,0.39} 31 | \definecolor{HKS92K50}{cmyk}{0.05,0.00,0.025,0.325} 32 | \definecolor{HKS92K40}{cmyk}{0.04,0.00,0.02,0.26} 33 | \definecolor{HKS92K30}{cmyk}{0.03,0.00,0.015,0.195} 34 | \definecolor{HKS92K20}{cmyk}{0.02,0.00,0.01,0.13} 35 | \definecolor{HKS92K10}{cmyk}{0.01,0.00,0.005,0.065} 36 | 37 | % Auszeichnungsfarbe 1. Kategorie 38 | \definecolor{HKS44K100}{cmyk/rgb}{1.00,0.50,0.0,0.0/0,0.34902,0.639216} 39 | \definecolor{HKS44K90}{cmyk/rgb}{0.9,0.45,.0,.0/0.101961,0.392157,0.666667} 40 | \definecolor{HKS44K80}{cmyk/rgb}{0.8,.40,.0,.0/0.203922,0.435294,0.698039} 41 | \definecolor{HKS44K70}{cmyk/rgb}{.7,.35,.0,.0/0.298039,0.478431,0.72549} 42 | \definecolor{HKS44K60}{cmyk/rgb}{.6,.3,0,0/0.380392,0.521569,0.752941} 43 | \definecolor{HKS44K50}{cmyk/rgb}{.5,.25,0,0/0.45098,0.572549,0.788235} 44 | \definecolor{HKS44K40}{cmyk/rgb}{.4,.20,0,0/0.529412,0.631373,0.823529} 45 | \definecolor{HKS44K30}{cmyk/rgb}{.3,.15,0,0/0.611765,0.694118,0.858824} 46 | \definecolor{HKS44K20}{cmyk/rgb}{.2,.10,0,0/0.721569,0.776471,0.901961} 47 | \definecolor{HKS44K10}{cmyk/rgb}{.1,.05,0,0/0.847059,0.878431,0.94902} 48 | 49 | % Auszeichnungsfarbe 2. Kategorie 50 | % Violett 51 | \definecolor{HKS36K10}{cmyk}{0.08, 0.09, 0.00, 0.00} 52 | \definecolor{HKS36K20}{cmyk}{0.16, 0.18, 0.00, 0.00} 53 | \definecolor{HKS36K30}{cmyk}{0.24, 0.27, 0.00, 0.00} 54 | \definecolor{HKS36K40}{cmyk}{0.32, 0.36, 0.00, 0.00} 55 | \definecolor{HKS36K50}{cmyk}{0.40, 0.45, 0.00, 0.00} 56 | \definecolor{HKS36K60}{cmyk}{0.48, 0.54, 0.00, 0.00} 57 | \definecolor{HKS36K70}{cmyk}{0.56, 0.63, 0.00, 0.00} 58 | \definecolor{HKS36K80}{cmyk}{0.64, 0.72, 0.00, 0.00} 59 | \definecolor{HKS36K90}{cmyk}{0.72, 0.81, 0.00, 0.00} 60 | \definecolor{HKS36K100}{cmyk}{0.80, 0.90, 0.00, 0.00} 61 | 62 | %lila 63 | \definecolor{HKS33K10}{cmyk}{0.05, 0.10, 0.00, 0.00} 64 | \definecolor{HKS33K20}{cmyk}{0.10, 0.20, 0.00, 0.00} 65 | \definecolor{HKS33K30}{cmyk}{0.15, 0.30, 0.00, 0.00} 66 | \definecolor{HKS33K40}{cmyk}{0.20, 0.40, 0.00, 0.00} 67 | \definecolor{HKS33K50}{cmyk}{0.25, 0.50, 0.00, 0.00} 68 | \definecolor{HKS33K60}{cmyk}{0.30, 0.60, 0.00, 0.00} 69 | \definecolor{HKS33K70}{cmyk}{0.35, 0.70, 0.00, 0.00} 70 | \definecolor{HKS33K80}{cmyk}{0.40, 0.80, 0.00, 0.00} 71 | \definecolor{HKS33K90}{cmyk}{0.45, 0.90, 0.00, 0.00} 72 | \definecolor{HKS33K100}{cmyk}{0.50, 1.00, 0.00, 0.00} 73 | 74 | %dunkelgrün 75 | \definecolor{HKS57K10}{cmyk}{0.10, 0.00, 0.09, 0.02} 76 | \definecolor{HKS57K20}{cmyk}{0.20, 0.00, 0.18, 0.04} 77 | \definecolor{HKS57K30}{cmyk}{0.30, 0.00, 0.27, 0.06} 78 | \definecolor{HKS57K40}{cmyk}{0.40, 0.00, 0.36, 0.08} 79 | \definecolor{HKS57K50}{cmyk}{0.50, 0.00, 0.45, 0.10} 80 | \definecolor{HKS57K60}{cmyk}{0.60, 0.00, 0.54, 0.12} 81 | \definecolor{HKS57K70}{cmyk}{0.70, 0.00, 0.63, 0.14} 82 | \definecolor{HKS57K80}{cmyk}{0.80, 0.00, 0.72, 0.16} 83 | \definecolor{HKS57K90}{cmyk}{0.90, 0.00, 0.81, 0.18} 84 | \definecolor{HKS57K100}{cmyk}{1.00, 0.00, 0.90, 0.20} 85 | 86 | % hellgrün 87 | \definecolor{HKS65K10}{cmyk}{0.06, 0.00, 0.10, 0.00} 88 | \definecolor{HKS65K20}{cmyk}{0.13, 0.00, 0.20, 0.00} 89 | \definecolor{HKS65K30}{cmyk}{0.19, 0.00, 0.30, 0.00} 90 | \definecolor{HKS65K40}{cmyk}{0.26, 0.00, 0.40, 0.00} 91 | \definecolor{HKS65K50}{cmyk}{0.32, 0.00, 0.50, 0.00} 92 | \definecolor{HKS65K60}{cmyk}{0.39, 0.00, 0.60, 0.00} 93 | \definecolor{HKS65K70}{cmyk}{0.45, 0.00, 0.70, 0.00} 94 | \definecolor{HKS65K80}{cmyk}{0.52, 0.00, 0.80, 0.00} 95 | \definecolor{HKS65K90}{cmyk}{0.58, 0.00, 0.90, 0.00} 96 | \definecolor{HKS65K100}{cmyk}{0.65, 0.00, 1.00, 0.00} 97 | 98 | % Ausnahmefarbe HKS 07_K 99 | \definecolor{HKS07K10}{cmyk}{0.00, 0.06, 0.10, 0.00} 100 | \definecolor{HKS07K20}{cmyk}{0.00, 0.12, 0.20, 0.00} 101 | \definecolor{HKS07K30}{cmyk}{0.00, 0.18, 0.30, 0.00} 102 | \definecolor{HKS07K40}{cmyk}{0.00, 0.24, 0.40, 0.00} 103 | \definecolor{HKS07K50}{cmyk}{0.00, 0.30, 0.50, 0.00} 104 | \definecolor{HKS07K60}{cmyk}{0.00, 0.36, 0.60, 0.00} 105 | \definecolor{HKS07K70}{cmyk}{0.00, 0.42, 0.70, 0.00} 106 | \definecolor{HKS07K80}{cmyk}{0.00, 0.48, 0.80, 0.00} 107 | \definecolor{HKS07K90}{cmyk}{0.00, 0.54, 0.90, 0.00} 108 | \definecolor{HKS07K100}{cmyk}{0.00, 0.60, 1.00, 0.00} 109 | 110 | \endinput 111 | -------------------------------------------------------------------------------- /Vorlesungen/tudfonts.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `euler.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% euler.dtx (with options: `package') 8 | 9 | %% File `euler.dtx'. 10 | %% Copyright (C) 1992 Frank Jensen. All rights reserved. 11 | %% Copyright (C) 1993--1995 Frank Jensen and Frank Mittelbach. 12 | %% All rights reserved. 13 | 14 | \def\fileversion{v1.10} 15 | \def\filedate{2010/08/25} 16 | 17 | %% \CharacterTable 18 | %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 19 | %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z 20 | %% Digits \0\1\2\3\4\5\6\7\8\9 21 | %% Exclamation \! Double quote \" Hash (number) \# 22 | %% Dollar \$ Percent \% Ampersand \& 23 | %% Acute accent \' Left paren \( Right paren \) 24 | %% Asterisk \* Plus \+ Comma \, 25 | %% Minus \- Point \. Solidus \/ 26 | %% Colon \: Semicolon \; Less than \< 27 | %% Equals \= Greater than \> Question mark \? 28 | %% Commercial at \@ Left bracket \[ Backslash \\ 29 | %% Right bracket \] Circumflex \^ Underscore \_ 30 | %% Grave accent \` Left brace \{ Vertical bar \| 31 | %% Right brace \} Tilde \~} 32 | \NeedsTeXFormat{LaTeX2e}[1994/12/01] 33 | \ProvidesPackage{tudfonts}[\filedate\space\fileversion\space Univers and DIN 34 | bold for TU Dresden(ts)] 35 | 36 | \let\auskommentiert\iffalse 37 | 38 | 39 | \newif\if@tudfonts@eulermath\@tudfonts@eulermathtrue 40 | \DeclareOption{noeulermath}{\@tudfonts@eulermathfalse} 41 | 42 | \newif\if@tudfonts@nodin\@tudfonts@nodinfalse 43 | \DeclareOption{noDIN}{\@tudfonts@nodintrue} 44 | 45 | \newif\if@tudfonts@sansmath\@tudfonts@sansmathtrue 46 | \DeclareOption{serifmath}{ 47 | \@tudfonts@sansmathfalse 48 | \@tudfonts@eulermathfalse 49 | } 50 | 51 | \ProcessOptions\relax 52 | % Fontmaps laden 53 | \RequirePackage{ifpdf} 54 | \ifpdf% pdfTEX is running in pdf mode 55 | \@ifundefined{pdfmapfile}{}{% 56 | \pdfmapfile{+univers.map}% 57 | \if@tudfonts@nodin\else 58 | \pdfmapfile{+dinbold.map}% 59 | \fi 60 | } 61 | \else% TEX or pdfTEX in dvi mode 62 | \fi 63 | 64 | % Load packages 65 | \RequirePackage{amsfonts} 66 | \RequirePackage{amsmath} 67 | \RequirePackage{lmodern} 68 | \if@tudfonts@eulermath 69 | % Hier gibt es einiges zu korrigieren (wg. lmodern) 70 | \providecommand\TextOldstyle{\usefont{OML}{lmm}\f@series{it}} 71 | \RequirePackage{euler} 72 | 73 | \DeclareSymbolFont{cmmigroup}{OML}{lmm}{m}{it} 74 | \SetSymbolFont{cmmigroup}{bold}{OML}{lmm}{b}{it} 75 | \DeclareMathAlphabet\cm@equals@alphabet{OT1}{lmr}{m}{n} 76 | \DeclareMathAlphabet\cm@minus@alphabet{OMS}{lmsy}{m}{n} 77 | \fi 78 | \RequirePackage{calc} 79 | 80 | % DeclareMathSizes 81 | \newcommand\DeclareTudMathSizes[4]{% 82 | \edef\@tempa{\noexpand\DeclareMathSizes{#1}}% 83 | \setlength\@tempdima{#2pt*\tudmathsizefactor}% 84 | \expandafter\edef\expandafter\@tempa\expandafter{% 85 | \expandafter\noexpand\@tempa{\strip@pt\@tempdima}% 86 | }% 87 | \setlength\@tempdima{#3pt*\tudmathsizefactor}% 88 | \expandafter\edef\expandafter\@tempa\expandafter{% 89 | \expandafter\noexpand\@tempa{\strip@pt\@tempdima}% 90 | }% 91 | \setlength\@tempdima{#4pt*\tudmathsizefactor}% 92 | \expandafter\edef\expandafter\@tempa\expandafter{% 93 | \expandafter\noexpand\@tempa{\strip@pt\@tempdima}% 94 | }% 95 | \@tempa 96 | } 97 | \if@tudfonts@sansmath 98 | \newcommand\tudmathsizefactor{1} 99 | \else 100 | \newcommand\tudmathsizefactor{7/6} 101 | \fi 102 | 103 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 | %%% Schriftart für Text 105 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106 | \renewcommand*{\familydefault}{\sfdefault} 107 | \renewcommand*{\seriesdefault}{l} 108 | \renewcommand*{\shapedefault}{n} 109 | \renewcommand*{\sfdefault}{aun} 110 | \renewcommand*{\ttdefault}{aun} 111 | %\renewcommand*{\rmdefault}{aun}% Required for package: url 112 | \normalfont 113 | 114 | % Definitionen der Originalfontnamen 115 | \newcommand\tudfonts@deffont[2]{% 116 | \expandafter\newcommand\csname #1\endcsname{#2}% 117 | } 118 | \tudfonts@deffont{Univers CE 75 Black}{\fontfamily{aub}\fontseries{m}\normalshape} 119 | \tudfonts@deffont{Univers CE 75 Black Oblique}{\fontfamily{aub}\fontseries{m}\slshape} 120 | \tudfonts@deffont{Univers CE 60}{\fontfamily{aun}\fontseries{b}\normalshape} 121 | \tudfonts@deffont{Univers CE 60 Oblique}{\fontfamily{aun}\fontseries{b}\slshape} 122 | \tudfonts@deffont{Univers CE 45 Light}{\fontfamily{aun}\fontseries{l}\normalshape} 123 | \tudfonts@deffont{Univers CE 45 Light Oblique}{\fontfamily{aun}\fontseries{l}\slshape} 124 | \tudfonts@deffont{Univers CE 55}{\fontfamily{aun}\fontseries{m}\normalshape} 125 | \tudfonts@deffont{Univers CE 55 Oblique}{\fontfamily{aun}\fontseries{m}\slshape} 126 | \tudfonts@deffont{Din Bold}{\dinBold} 127 | \newcommand\tudfont[1]{\csname #1\endcsname} 128 | 129 | \newcommand*{\dinBold}{\fontfamily{din}\fontseries{b}\selectfont} 130 | 131 | % \textbullet aus Encoding TS1 für korrekte horizontale Ausrichtung. 132 | % Encoding TS1 bereits durch fix-cm.sty verfügbar. 133 | \DeclareTextSymbolDefault{\textbullet}{TS1} 134 | 135 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 136 | %%% Schriftart für Mathematisches 137 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 138 | 139 | \if@tudfonts@sansmath 140 | % Serifenlose Schrift für Variablen und anderes. 141 | % Für Operatoren kann direkt die Schriftart geändert werden, da hier das 142 | % OT1-Encoding verwendet wird. Dies entspricht der Vorgehensweise in 143 | % den Paketen sfmath.sty und mathptmx.sty. 144 | \SetSymbolFont{operators}{normal}{OT1}{aun}{l}{n} 145 | \SetSymbolFont{operators}{bold}{OT1}{aun}{b}{n} 146 | 147 | % Für Buchstaben u.ä. ist aber die Kodierung OML vorgegeben, die nicht 148 | % für Univers existiert. Man muss also die Buchstaben/Symbole einzeln 149 | % ändern. (Siehe auch sfmath.sty) Hier wird ein Auszug aus tudbook.cls 150 | % von Klaus Bergmann wiederverwendet. 151 | \DeclareSymbolFont{aunUpright}{T1}{aun}{l}{n} 152 | \SetSymbolFont{aunUpright}{bold}{T1}{aun}{b}{n} 153 | \DeclareMathSymbol{0}{\mathalpha}{aunUpright}{`0} 154 | \DeclareMathSymbol{1}{\mathalpha}{aunUpright}{`1} 155 | \DeclareMathSymbol{2}{\mathalpha}{aunUpright}{`2} 156 | \DeclareMathSymbol{3}{\mathalpha}{aunUpright}{`3} 157 | \DeclareMathSymbol{4}{\mathalpha}{aunUpright}{`4} 158 | \DeclareMathSymbol{5}{\mathalpha}{aunUpright}{`5} 159 | \DeclareMathSymbol{6}{\mathalpha}{aunUpright}{`6} 160 | \DeclareMathSymbol{7}{\mathalpha}{aunUpright}{`7} 161 | \DeclareMathSymbol{8}{\mathalpha}{aunUpright}{`8} 162 | \DeclareMathSymbol{9}{\mathalpha}{aunUpright}{`9} 163 | \DeclareSymbolFont{aunLetters}{T1}{aun}{l}{sl} 164 | \SetSymbolFont{aunLetters}{bold}{T1}{aun}{b}{sl} 165 | \DeclareMathSymbol{a}{\mathalpha}{aunLetters}{`a} 166 | \DeclareMathSymbol{b}{\mathalpha}{aunLetters}{`b} 167 | \DeclareMathSymbol{c}{\mathalpha}{aunLetters}{`c} 168 | \DeclareMathSymbol{d}{\mathalpha}{aunLetters}{`d} 169 | \DeclareMathSymbol{e}{\mathalpha}{aunLetters}{`e} 170 | \DeclareMathSymbol{f}{\mathalpha}{aunLetters}{`f} 171 | \DeclareMathSymbol{g}{\mathalpha}{aunLetters}{`g} 172 | \DeclareMathSymbol{h}{\mathalpha}{aunLetters}{`h} 173 | \DeclareMathSymbol{i}{\mathalpha}{aunLetters}{`i} 174 | \DeclareMathSymbol{j}{\mathalpha}{aunLetters}{`j} 175 | \DeclareMathSymbol{k}{\mathalpha}{aunLetters}{`k} 176 | \DeclareMathSymbol{l}{\mathalpha}{aunLetters}{`l} 177 | \DeclareMathSymbol{m}{\mathalpha}{aunLetters}{`m} 178 | \DeclareMathSymbol{n}{\mathalpha}{aunLetters}{`n} 179 | \DeclareMathSymbol{o}{\mathalpha}{aunLetters}{`o} 180 | \DeclareMathSymbol{p}{\mathalpha}{aunLetters}{`p} 181 | \DeclareMathSymbol{q}{\mathalpha}{aunLetters}{`q} 182 | \DeclareMathSymbol{r}{\mathalpha}{aunLetters}{`r} 183 | \DeclareMathSymbol{s}{\mathalpha}{aunLetters}{`s} 184 | \DeclareMathSymbol{t}{\mathalpha}{aunLetters}{`t} 185 | \DeclareMathSymbol{u}{\mathalpha}{aunLetters}{`u} 186 | \DeclareMathSymbol{v}{\mathalpha}{aunLetters}{`v} 187 | \DeclareMathSymbol{w}{\mathalpha}{aunLetters}{`w} 188 | \DeclareMathSymbol{x}{\mathalpha}{aunLetters}{`x} 189 | \DeclareMathSymbol{y}{\mathalpha}{aunLetters}{`y} 190 | \DeclareMathSymbol{z}{\mathalpha}{aunLetters}{`z} 191 | \DeclareMathSymbol{A}{\mathalpha}{aunLetters}{`A} 192 | \DeclareMathSymbol{B}{\mathalpha}{aunLetters}{`B} 193 | \DeclareMathSymbol{C}{\mathalpha}{aunLetters}{`C} 194 | \DeclareMathSymbol{D}{\mathalpha}{aunLetters}{`D} 195 | \DeclareMathSymbol{E}{\mathalpha}{aunLetters}{`E} 196 | \DeclareMathSymbol{F}{\mathalpha}{aunLetters}{`F} 197 | \DeclareMathSymbol{G}{\mathalpha}{aunLetters}{`G} 198 | \DeclareMathSymbol{H}{\mathalpha}{aunLetters}{`H} 199 | \DeclareMathSymbol{I}{\mathalpha}{aunLetters}{`I} 200 | \DeclareMathSymbol{J}{\mathalpha}{aunLetters}{`J} 201 | \DeclareMathSymbol{K}{\mathalpha}{aunLetters}{`K} 202 | \DeclareMathSymbol{L}{\mathalpha}{aunLetters}{`L} 203 | \DeclareMathSymbol{M}{\mathalpha}{aunLetters}{`M} 204 | \DeclareMathSymbol{N}{\mathalpha}{aunLetters}{`N} 205 | \DeclareMathSymbol{O}{\mathalpha}{aunLetters}{`O} 206 | \DeclareMathSymbol{P}{\mathalpha}{aunLetters}{`P} 207 | \DeclareMathSymbol{Q}{\mathalpha}{aunLetters}{`Q} 208 | \DeclareMathSymbol{R}{\mathalpha}{aunLetters}{`R} 209 | \DeclareMathSymbol{S}{\mathalpha}{aunLetters}{`S} 210 | \DeclareMathSymbol{T}{\mathalpha}{aunLetters}{`T} 211 | \DeclareMathSymbol{U}{\mathalpha}{aunLetters}{`U} 212 | \DeclareMathSymbol{V}{\mathalpha}{aunLetters}{`V} 213 | \DeclareMathSymbol{W}{\mathalpha}{aunLetters}{`W} 214 | \DeclareMathSymbol{X}{\mathalpha}{aunLetters}{`X} 215 | \DeclareMathSymbol{Y}{\mathalpha}{aunLetters}{`Y} 216 | \DeclareMathSymbol{Z}{\mathalpha}{aunLetters}{`Z} 217 | 218 | \DeclareMathSymbol{,}{\mathpunct}{aunLetters}{`,} 219 | \DeclareMathSymbol{.}{\mathord}{aunLetters}{`.} 220 | \DeclareMathSymbol{/}{\mathord}{aunLetters}{`/} 221 | 222 | \DeclareSymbolFontAlphabet{\mathsf}{operators}%MZ: angepasst 223 | \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters} 224 | \DeclareMathAlphabet\mathbf{T1}{aun}{b}{n} 225 | \SetMathAlphabet\mathbf{bold}{T1}{aun}{b}{n} 226 | \DeclareMathAlphabet\mathit{T1}{aun}{l}{sl} 227 | \SetMathAlphabet\mathit{bold}{T1}{aun}{l}{sl} 228 | 229 | \if@tudfonts@eulermath 230 | \else 231 | \DeclareMathSymbol\Gamma \mathord{letters}{"00} 232 | \DeclareMathSymbol\Delta \mathord{letters}{"01} 233 | \DeclareMathSymbol\Theta \mathord{letters}{"02} 234 | \DeclareMathSymbol\Lambda \mathord{letters}{"03} 235 | \DeclareMathSymbol\Xi \mathord{letters}{"04} 236 | \DeclareMathSymbol\Pi \mathord{letters}{"05} 237 | \DeclareMathSymbol\Sigma \mathord{letters}{"06} 238 | \DeclareMathSymbol\Upsilon\mathord{letters}{"07} 239 | \DeclareMathSymbol\Phi \mathord{letters}{"08} 240 | \DeclareMathSymbol\Psi \mathord{letters}{"09} 241 | \DeclareMathSymbol\Omega \mathord{letters}{"0A} 242 | \fi 243 | 244 | % Ende des Auszugs 245 | \fi 246 | 247 | \AtBeginDocument{% 248 | \if@tudfonts@eulermath 249 | \else 250 | \DeclareSymbolFont{largesymbols}{OMX}{lmex}{m}{n}% 251 | \fi 252 | \newdimen\big@size 253 | \addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}% 254 | \global\big@size 1.2\ht\z@}% 255 | \def\bBigg@#1#2{% 256 | {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}% 257 | \def\big{\bBigg@\@ne}% 258 | \def\Big{\bBigg@{1.5}}% 259 | \def\bigg{\bBigg@\tw@}% 260 | \def\Bigg{\bBigg@{2.5}}% 261 | } 262 | 263 | % Korrekte Symbolgrößen 264 | \DeclareFontFamily{OMX}{lmex}{} 265 | \DeclareFontShape{OMX}{lmex}{m}{n}{% 266 | <->lmex10% 267 | }{} 268 | 269 | 270 | \iffalse 271 | \DeclareMathSymbol{!}\mathord {EulerFraktur}{"21} 272 | \DeclareMathSymbol{(}\mathopen {EulerFraktur}{"28} 273 | \DeclareMathSymbol{)}\mathclose{EulerFraktur}{"29} 274 | \DeclareMathSymbol{+}\mathbin {EulerFraktur}{"2B} 275 | \DeclareMathSymbol{-}\mathbin {EulerFraktur}{"2D} 276 | \DeclareMathSymbol{=}\mathrel {EulerFraktur}{"3D} 277 | \DeclareMathSymbol{[}\mathopen {EulerFraktur}{"5B} 278 | \DeclareMathSymbol{]}\mathclose{EulerFraktur}{"5D} 279 | \DeclareMathSymbol{"}\mathord {EulerFraktur}{"7D} 280 | \DeclareMathSymbol{&}\mathord {EulerFraktur}{"26} 281 | \DeclareMathSymbol{:}\mathrel {EulerFraktur}{"3A} 282 | \DeclareMathSymbol{;}\mathpunct{EulerFraktur}{"3B} 283 | \DeclareMathSymbol{?}\mathord {EulerFraktur}{"3F} 284 | \DeclareMathSymbol{^}\mathord {EulerFraktur}{"5E} 285 | \DeclareMathSymbol{`}\mathord {EulerFraktur}{"12} 286 | \DeclareMathDelimiter{(}{EulerFraktur}{"28}{largesymbols}{"00} 287 | \DeclareMathDelimiter{)}{EulerFraktur}{"29}{largesymbols}{"01} 288 | \DeclareMathDelimiter{[}{EulerFraktur}{"5B}{largesymbols}{"02} 289 | \DeclareMathDelimiter{]}{EulerFraktur}{"5D}{largesymbols}{"03} 290 | \fi 291 | 292 | \endinput 293 | %% 294 | %% End of file `tudfonts.sty'. 295 | -------------------------------------------------------------------------------- /macros.tex: -------------------------------------------------------------------------------- 1 | % Common notation 2 | 3 | \usepackage{amsmath,amssymb,amsfonts} 4 | \usepackage{xspace} 5 | 6 | \newcommand{\lectureurl}{https://iccl.inf.tu-dresden.de/web/TheoLog2024} 7 | 8 | \DeclareMathAlphabet{\mathsc}{OT1}{cmr}{m}{sc} % Let's have \mathsc since the slide style has no working \textsc 9 | 10 | % Dual of "phantom": make a text that is visible but intangible 11 | \newcommand{\ghost}[1]{\raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{#1}}} 12 | 13 | \newcommand{\tuple}[1]{\langle{#1}\rangle} 14 | \newcommand{\defeq}{\mathrel{:=}} 15 | 16 | %%% Annotation %%% 17 | 18 | \usepackage{color} 19 | \newcommand{\todo}[1]{{\tiny\color{red}\textbf{TODO: #1}}} 20 | 21 | 22 | \newcommand{\quantor}{\mathord{\reflectbox{$\text{\sf{Q}}$}}} % the generic quantor 23 | \newcommand{\unieq}{\stackrel{.}{=}} % equality sign for unification problems 24 | 25 | 26 | %%% Old macros below; move when needed 27 | 28 | \newcommand{\blank}{\text{\textvisiblespace}} % empty tape cell for TM 29 | 30 | % table syntax 31 | \newcommand{\dom}{\textbf{dom}} 32 | \newcommand{\adom}{\textbf{adom}} 33 | \newcommand{\dbconst}[1]{\texttt{"#1"}} 34 | \newcommand{\pred}[1]{\textsf{#1}} 35 | \newcommand{\foquery}[2]{#2[#1]} 36 | \newcommand{\ground}[1]{\textsf{ground}(#1)} 37 | % \newcommand{\foquery}[2]{\{#1\mid #2\}} %% Notation as used in Alice Book 38 | % \newcommand{\foquery}[2]{\tuple{#1\mid #2}} 39 | 40 | % logic syntax 41 | \newcommand{\Inter}{\mathcal{I}} %used to denote an interpretation 42 | \newcommand{\Jnter}{\mathcal{J}} %used to denote another interpretation 43 | \newcommand{\Knter}{\mathcal{K}} %used to denote yet another interpretation 44 | \newcommand{\Zuweisung}{\mathcal{Z}} %used to denote a variable assignment 45 | 46 | % query languages 47 | \newcommand{\qlang}[1]{{\sf #1}} % Font for query languages 48 | \newcommand{\qmaps}[1]{\textbf{QM}({\sf #1})} % Set of query mappings for a query language 49 | 50 | %%% Complexities %%% 51 | 52 | \hyphenation{Exp-Time} % prevent "Ex-PTime" (see, e.g. Tobies'01, Glimm'07 ;-) 53 | \hyphenation{NExp-Time} % better that than something else 54 | 55 | % \newcommand{\complclass}[1]{{\sc #1}\xspace} % font for complexity classes 56 | \newcommand{\complclass}[1]{\ensuremath{\mathsc{#1}}\xspace} % font for complexity classes 57 | 58 | \newcommand{\ACzero}{\complclass{AC$_0$}} 59 | \newcommand{\LogSpace}{\complclass{L}} 60 | \newcommand{\NLogSpace}{\complclass{NL}} 61 | \newcommand{\PTime}{\complclass{P}} 62 | \newcommand{\NP}{\complclass{NP}} 63 | \newcommand{\coNP}{\complclass{coNP}} 64 | \newcommand{\PH}{\complclass{PH}} 65 | \newcommand{\PSpace}{\complclass{PSpace}} 66 | \newcommand{\NPSpace}{\complclass{NPSpace}} 67 | \newcommand{\ExpTime}{\complclass{ExpTime}} 68 | \newcommand{\NExpTime}{\complclass{NExpTime}} 69 | \newcommand{\ExpSpace}{\complclass{ExpSpace}} 70 | \newcommand{\TwoExpTime}{\complclass{2ExpTime}} 71 | \newcommand{\NTwoExpTime}{\complclass{N2ExpTime}} 72 | \newcommand{\ThreeExpTime}{\complclass{3ExpTime}} 73 | \newcommand{\kExpTime}[1]{\complclass{#1ExpTime}} 74 | \newcommand{\kExpSpace}[1]{\complclass{#1ExpSpace}} 75 | 76 | 77 | %%% Style commands 78 | 79 | \newcommand{\quoted}[1]{\texttt{"}{#1}\texttt{"}} 80 | \newcommand{\squote}{\texttt{"}} % straight quote 81 | \newcommand{\Sterm}[1]{\ensuremath{\mathtt{\textcolor{purple}{#1}}}} % letters in alphabets 82 | \newcommand{\Snterm}[1]{\textsf{\textcolor{darkblue}{#1}}} % nonterminal symbols 83 | \newcommand{\Sntermsub}[2]{\ensuremath{\Snterm{#1}_{\Snterm{#2}}}} % nonterminal symbols 84 | \newcommand{\Slang}[1]{\textbf{\textcolor{black}{#1}}} % languages 85 | \newcommand{\Slangsub}[2]{\ensuremath{\Slang{#1}_{\Slang{#2}}}} % languages 86 | % Code 87 | \newcommand{\Scode}[1]{\textbf{#1}} % reserved words in program listings, e.g., "if" 88 | \newcommand{\Scodelit}[1]{\textcolor{purple}{#1}} % literals in program listings, e.g., strings 89 | \newcommand{\Scomment}[1]{\textcolor{gray}{#1}} % comment in program listings 90 | % LOOP and WHILE programs 91 | \newcommand{\Svar}[1]{\texttt{#1}} % variable names 92 | \newcommand{\Svsub}[2]{\ensuremath{\Svar{#1}_{\Svar{#2}}}} % variable names 93 | \newcommand{\Sxsub}[1]{\Svsub{x}{#1}} % variable names 94 | \newcommand{\Sseq}{\texttt{;}} 95 | \newcommand{\SStartLoop}[1]{\Scode{LOOP}~#1~\Scode{DO}~} 96 | \newcommand{\SEndLoop}{\Scode{END}} 97 | \newcommand{\SStartIf}[1]{\Scode{IF}~#1~\Scode{THEN}~} 98 | \newcommand{\SElse}{\Scode{ELSE}} 99 | \newcommand{\SEndIf}{\Scode{END}} 100 | \newcommand{\Svassign}{\texttt{ := }} % variable assignments 101 | \newcommand{\Svneq}{\texttt{!=}\ensuremath{\,}} % inequality operator 102 | \newcommand{\Splus}{\texttt{ + }} % addition operator 103 | \newcommand{\Sminus}{\texttt{ - }} % subtraction operator 104 | \newcommand{\SStartWhile}[1]{\Scode{WHILE}~#1\Svneq\texttt{\Scodelit{0}}~\Scode{DO}~} 105 | \newcommand{\SEndWhile}{\Scode{END}} 106 | 107 | \newcommand{\bbfunc}{\boldsymbol{\Sigma}} 108 | 109 | \newcommand{\epstrastar}{\mathrel{\mathord{\stackrel{\epsilon}{\to}}{}^*}} % transitive reflexive closure of epsilon transitions in an epslion-NFA 110 | 111 | \newcommand{\narrowcentering}[1]{\mbox{}\hfill#1\hfill\mbox{}} 112 | 113 | \newcommand{\Smach}[1]{\ensuremath{\mathcal{#1}}} % machines 114 | 115 | \newcommand{\mytrue}{\Scodelit{1}} 116 | \newcommand{\myfalse}{\Scodelit{0}} 117 | % \newcommand{\emptyClause}{\bot} 118 | 119 | \newcommand{\Scomplclass}[1]{{\textsc{#1}}\xspace} % font for complexity classes, used on slides where the "too many alphabets" LaTeX error appears when using the correct sc font :-( 120 | % \newcommand{\complclass}[1]{\ensuremath{\mathsc{#1}}} % font for complexity classes 121 | 122 | 123 | \DeclareMathOperator{\enc}{\mathsf{enc}} 124 | --------------------------------------------------------------------------------