Theoretische Informatik II
|
|
|
- Richard Richter
- vor 8 Jahren
- Abrufe
Transkript
1 Theoretische Informatik II Einheit 5.3 Funktionale & Logische Programme 1. Der λ-kalkül 2. Arithmetische Repräsentierbarkeit 3. Die Churchsche These
2 Der λ-kalkül Grundlage funktionaler Programmiersprachen Einfacher mathematischer Mechanismus Funktionen werden definiert und angewandt Beschreibung des Funktionsverhaltens wird zum Namen der Funktion Funktionswerte werden ausgerechnet durch Einsetzen von Werten Leicht zu verstehende Basiskonzepte 1. Definition einer Funktion: f ˆ= λx. 2*x+3 Name der Funktion irrelevant für Beschreibung des Verhaltens 2. Anwendung der Funktion (ohne Auswertung): f(4) ˆ= (λx. 2*x+3)(4) λ-abstraktion Applikation 3. Auswertung einer Funktionsanwendung (tatsächliches Ausrechnen): (λx. 2*x+3)(4) β 2* Reduktion THEORETISCHE INFORMATIK II 5.3: 1 FUNKTIONALE & LOGISCHE PROGRAMME
3 λ-kalkül Syntax Einfache Programmiersprache: λ-terme Variablen x λx.t, wobei x Variable und t λ-term λ-abstraktion Vorkommen von x in t werden gebunden f t, wobei t und f λ-terme Applikation (t), wobei t λ-term Prioritäten und Kurzschreibweisen Applikation bindet stärker als λ-abstraktion Applikation ist links-assoziativ: f t 1 t 2 ˆ= (f t 1 ) t 2 Notation f(t 1,..,t n ) steht für iterierte Applikation f t 1.. t n Beispiele für λ-terme x Symbole sind immer Variablen λf.λx.f(x) Anwendung einer Funktion λf.λg.λx. f g (g x) Funktionen höherer Ordnung x(x) Selbstanwendung THEORETISCHE INFORMATIK II 5.3: 2 FUNKTIONALE & LOGISCHE PROGRAMME
4 λ-kalkül Berechnung durch Auswertung Ersetze Funktionsparameter durch -argumente Reduktion (λx.t)(b) β t[b/x] Substitution t[b/x]: ersetze freie Vorkommen von x in t durch b Sonderfälle: λx.u [b/x] = λx.u x ist nicht frei in u λx.u [b/y] = λz.u[z/x] [b/y] y x frei in u, x frei in b, z neu Substitution und Reduktion am Beispiel (λn.λf.λx. n f (f x)) (λf.λx.x) λf.λx. (λf.λx.x) f (f x) λf.λx. (λx.x) (f x) λf.λx. (f x) (λn.λf.λx. n f (f x)) (λf.λx.x) 3 λf.λx. f x THEORETISCHE INFORMATIK II 5.3: 3 FUNKTIONALE & LOGISCHE PROGRAMME
5 Vom λ-kalkül zu echten Programmen λ-kalkül ist der Basismechanismus Die Assemblersprache funktionaler Programme Spezialhardware (Lisp-Maschinen) kann λ-terme direkt auswerten Programm- und Datenstrukturen werden codiert Berechnung auf λ-ausdrücken muß Effekte auf Struktur simulieren Nicht anders als in konventionellen Computern Datenstrukturen werden als als Bitketten codiert Programmstrukturen werden in Sprungbefehle übersetzt Die wichtigsten Strukturen sind leicht codierbar Boolesche Operationen: T, F, if b then s else t Tupel / Projektionen: (s,t), pair.1, pair.2, let (x,y) = pair in t Zahlen und arithmetische Operationen Iteration oder Rekursion von Funktionen THEORETISCHE INFORMATIK II 5.3: 4 FUNKTIONALE & LOGISCHE PROGRAMME
6 Darstellung Boolescher Operatoren im λ-kalkül Zwei verschiedene Objekte und ein Test T F if b then s else t λx.λy.x λx.λy.y b s t Konditional(-simulation) ist invers zu T und F if T then s else t if F then s else t T s t Fst (λx.λy.x) s t (λx.λy.y) s t (λy.s) t (λy.y) t s t THEORETISCHE INFORMATIK II 5.3: 5 FUNKTIONALE & LOGISCHE PROGRAMME
7 Paare: Datenkapselung und Komponentenzugriff (u,v) λpair. pair u v pair.1 pair (λx.λy.x) pair.2 pair (λx.λy.y) let (x,y) = pair in t pair (λx.λy.t) Analyseoperator ist invers zur Paarbildung let (x,y) = (u,v) in t (u,v)(λx.λy.t) (λpair. pair u v)(λx.λy.t) (λx.λy.t) u v (λy.t[u/x]) v t[u, v/x, y] THEORETISCHE INFORMATIK II 5.3: 6 FUNKTIONALE & LOGISCHE PROGRAMME
8 Simulation arithmetischer Operationen Darstellung natürlicher Zahlen durch iterierte Terme Semantisch: wiederholte Anwendung von Funktionen Repräsentiere die Zahl n durch den Term λf.λx. } f (f..(f {{ x)..) } Notation: n λf.λx. f n x n-mal Bezeichnung: Church Numerals f:n n N λ-berechenbar: Es gibt einen λ-term t mit der Eigenschaft f(x 1,.., x n ) = m t x 1..x n = m Operationen müssen Termvielfachheit berechnen Simulation einer Funktion auf Darstellung von Zahlen muß Darstellung des Funktionsergebnisses liefern z.b. add m n muß als Wert immer den Term m+n ergeben THEORETISCHE INFORMATIK II 5.3: 7 FUNKTIONALE & LOGISCHE PROGRAMME
9 Programmierung im λ-kalkül Nachfolgerfunktion: s λn.λf.λx. n f (f x) Zeige: Der Wert von s n ist der Term n+1 s n (λn.λf.λx. n f (f x)) (λf.λx. f n x) λf.λx. (λf.λx. f n x) f (f x) λf.λx. (λx. f n x) (f x) λf.λx. f n (f x) λf.λx. f n+1 x n+1 Addition: add λm.λn.λf.λx. m f (n f x) Multiplikation: Test auf Null: mul λm.λn.λf.λx. m (n f) x zero λn. n (λn.f) T Vorgängerfunktion: p λn. (n (λfx. (s, let (f,x) = fx in f x)) (λz.0, 0)).2 THEORETISCHE INFORMATIK II 5.3: 8 FUNKTIONALE & LOGISCHE PROGRAMME
10 Programmierung rekursiver Funktionen Wende Fixpunktkombinator auf Funktionskörper an Fixpunktkombinator: λ-term R mit Eigenschaft R t = t (R t) für alle t Definiert man f durch F R (λf.λx.t[f, x]), wobei im Programmkörper t sowohl f als auch x vorkommen können, dann gilt F x = (λf.λx.t[f,x]) F x t[f, x] Kurzschreibweise: F letrec f(x) = t ( R(λf.λx.t)) Y-Kombinator: Y λf. (λx. f (x x)) (λx. f (x x)) Bekanntester Fixpunktkombinator Y t ( λf. (λx. f (x x)) (λx. f (x x)) ) t (λx. t (x x)) (λx. t (x x)) t ( (λx. t (x x)) (λx. t (x x)) ) t (Y t) t ( ( λf. (λx. f (x x)) (λx. f (x x)) ) t) t ( (λx. t (x x)) (λx. t (x x)) ) THEORETISCHE INFORMATIK II 5.3: 9 FUNKTIONALE & LOGISCHE PROGRAMME
11 Der λ-kalkül ist Turing-mächtig Alle µ-rekursiven Funktionen sind λ-berechenbar Nachfolgerfunktion s: s λn.λf.λx. n f (f x) Projektionsfunktionen prm n : prn m λx..λx. x 1 n m Konstantenfunktion c n m : cn m λx..λx. m 1 n Komposition f (g 1,.., g n ): λf.λg 1..λg n. λx. f (g 1 x)..(g n x) Primitive Rekursion P r[f, g]: PR λf.λg. letrec h(x) =λy.if zero y then f x else g x (p y) (h x (p y)) Minimierung µ[f]: Mu λf.λx. (letrec min(y) = if zero(f x y) then y else min (s y)) 0 THEORETISCHE INFORMATIK II 5.3: 10 FUNKTIONALE & LOGISCHE PROGRAMME
12 Arithmetische Repräsentierbarkeit Rechtfertigung logischer Programmiersprachen Spezifikation von Funktionen in logischem Kalkül Formeln repräsentieren Ein-/Ausgabeverhalten von Funktionen Repräsentation muß eindeutig sein (nur eine Ausgabe pro Eingabe) Eindeutigkeit muß ausschließlich aus logischen Axiomen beweisbar sein Zentraler Begriff: Gültigkeit in einer Theorie Logische Theorie T gegeben durch formale Sprache und Axiome Formel F ist gültig in T ( = T F ), wenn F logisch aus den Axiomen folgt Berechenbarkeitsbegriff: f:n k N repräsentierbar in T Es gibt eine Formel F mit f(i 1,.., i k )=j g.d.w. = T F(i 1,..,i k,j), d.h. in der Theorie T ist beweisbar, ob f einen bestimmten Wert annimmt n ist ein Term der formalen Sprache, der die Zahl n codiert THEORETISCHE INFORMATIK II 5.3: 11 FUNKTIONALE & LOGISCHE PROGRAMME
13 Die arithmetische Theorie Q Formale Sprache Sprache der Prädikatenlogik (mit Gleichheit) Konstantensymbol 0 Einstelliges Funktionssymbol s Zweistellige Funktionssymbole + und Semantik: Logik + 7 Axiome (ohne Induktion!) Q 1 : x,y. s(x) = s(y) x = y Q 4 : x. x + 0 = x Q 2 : x. s(x) 0 Q 5 : x,y. x + s(y) = s(x + y) Q 3 : x. x 0 y.x = s(y) Q 6 : x. x 0 = 0 Q 7 : x,y.x s(y) = (x y) + x Axiome gelten auch für Nichtstandardzahlen Es sind auch andere Interpretationen der Symbole s, +, möglich Definiere Operationen s, +, auf N {, } Kommutativität, Assoziativität müssen auf N {, } nicht gelten Dennoch kann man alle berechenbaren Funktionen in Q repräsentieren THEORETISCHE INFORMATIK II 5.3: 12 FUNKTIONALE & LOGISCHE PROGRAMME
14 Repräsentierbarkeit in Q f:n k N arithmetisch repräsentierbar f ist repräsentierbar in Q, wobei n N codiert als n s(...(s(0))...) }{{} n mal Addition ist arithmetisch repräsentierbar Bestimme 3-stellige Formel ADD mit i+j=k gdw. = Q ADD(i,j,k) Einfach, da + Teil der Sprache ist: ADD(x 1, x 2, y) y=x 1 +x 2 Korrektheit der Repräsentation Zeige: für alle i,j, k N mit i+j=k gilt = Q k=i+j ( ˆ= ADD(i,j,k)) (Beweis für i+j k impliziert = Q k i+j ist analog) Sei i beliebig, aber fest. Wir führen den Beweis durch Induktion über j: Für j = 0 folgt i=k, also i=k und über Axiom Q 4 : = Q i+0 = i Es gelte = Q n=i+j für alle n und j=m N mit i+j=n Es sei j=m+1, also j=s(m) und es gelte i+j=k. Dann gilt k = i+m+1 = n+1 und k=s(n). Mit Axiom Q 5 folgt = Q i+j = i+s(m) = s(i+m) = s(n) = k THEORETISCHE INFORMATIK II 5.3: 13 FUNKTIONALE & LOGISCHE PROGRAMME
15 Wichtige repräsentierbare Funktionen Multiplikation MUL(x 1, x 2, y) y=x 1*x 2 Vergleich (Hilfsprädikat für Funktionsbeschreibungen) LE(x, y) z.x+z=y < LT(x, y) LE(s(x), y) Subtraktion SUB(x 1,x 2,y) x 1 =x 2 +y (LE(x 1,x 2 ) y=0) Division DIV(x 1,x 2,y) z. LT(z,x 2 ) x 2*y+z = x 1 Divisionsrest/Modulo MOD(x 1,x 2,y) LT(y,x 2 ) z. x 2*z+y = x 1 Teilbarkeit (Prädikat) DIVIDES(x 1, x 2 ) z. x 1*z=x 2 Primzahleigenschaft (Prädikat) PRIME(x) y. (LT(y,x) LT(1,y)) DIVIDES(y,x) Repräsentierbarkeit in Q ist Turing-mächtig Alle µ-rekursiven Funktionen sind repräsentierbar in Q Anhang THEORETISCHE INFORMATIK II 5.3: 14 FUNKTIONALE & LOGISCHE PROGRAMME
16 Weitere Modelle für Berechenbarkeit Abakus Erweiterung des mechanischen Abakus: beliebig viele Stangen / Kugeln Zwei Operationen: Kugel hinzunehmen / Kugel wegnehmen Registermaschinen Direkter Zugriff auf endliche Zahl von Registern Register enthalten (unbegrenzte) natürliche Zahlen Befehle entsprechen elementarem Assembler Mini-PASCAL / mini-java Basisversion einer imperativen höheren Programmiersprache Arithmetische Operationen, Fallunterscheidung, Schleifen Operationale Semantik erklärt Bedeutung der Befehle Markov-Algorithmen Wie Typ-0 Grammatiken, aber mit fester Strategie für Regelanwendung Verarbeitet Eingabeworte, statt mit einem Startsymbol zu beginnen Alle Modelle sind ebenfalls Turing-mächtig THEORETISCHE INFORMATIK II 5.3: 15 FUNKTIONALE & LOGISCHE PROGRAMME
17 Die Churchsche These Alle Berechenbarkeitsmodelle sind äquivalent Keines kann mehr berechnen als Turingmaschinen Es ist keine Funktion bekannt, die man intuitiv als berechenbar ansieht, aber nicht mit einer Turingmaschine berechnen kann These von Alonzo Church: Die Klasse der Turing-berechenbaren Funktionen ist identisch mit der Klasse der intuitiv berechenbaren Funktionen Unbeweisbare, aber wahrscheinlich richtige Behauptung Arbeitshypothese für theoretische Argumente, die es ermöglicht, in Beweisen intuitiv formulierte Programme anstelle von konkreten Turingmaschinen zu verwenden THEORETISCHE INFORMATIK II 5.3: 16 FUNKTIONALE & LOGISCHE PROGRAMME
18 Berechenbarkeitsmodelle im Rückblick Es gibt viele äquivalente Modelle Maschinenbasierte Modelle: Turingmaschinen, Registermaschinen,... Programmiersprachenbasierte Modelle: Mini-PASCAL, Mini-Java,... Abstrakte mathematische Beschreibung: rekursive Funktionen Funktionale Programmierung: λ-kalkül Logische Programmierung: Arithmetische Repräsentierbarkeit Alle Berechenbarkeitsmodelle sind i.w. äquivalent These: Alle berechenbaren Funktionen sind Turing-berechenbar (oder rekursiv, λ-berechenbar, arithmetisch repräsentierbar,... ) Die Theorie des Berechenbaren hängt nicht vom konkreten Modell ab, sondern basiert auf allgemeinen Eigenschaften, die alle Modelle (implizit) gemeinsam haben THEORETISCHE INFORMATIK II 5.3: 17 FUNKTIONALE & LOGISCHE PROGRAMME
19 ANHANG THEORETISCHE INFORMATIK II 5.3: 18 FUNKTIONALE & LOGISCHE PROGRAMME
20 Repräsentierbarkeit in Q ist Turing-mächtig (I) Definiere Min-rekursive Funktionen Definition rekursiver Funktionen ohne primitive Rekursion R min : Menge der min-rekursiven Funktionen Addition, Nachfolger, Projektions- oder Konstantenfunktion sowie Alle Funktionen, die aus min-rekursiven Funktionen durch Komposition oder Minimierung entstehen Wichtiger Sonderfall für Vergleiche mit anderen Modellen R min R: min-rekursive Funktionen sind µ-rekursiv Offensichtlich, da Additition µ-rekursiv ist R R min : µ-rekursive Funktionen sind min-rekursiv Beschreibe Abarbeitung des Stacks einer primitiven Rekursion Suche nach erstem erzeugten Stack der Länge 1 (Details aufwendig) THEORETISCHE INFORMATIK II 5.3: 19 FUNKTIONALE & LOGISCHE PROGRAMME
21 Repräsentierbarkeit in Q ist Turing-mächtig (II) Alle min-rekursiven Funktionen sind repräsentierbar Nachfolgerfunktion s: S(x, y) y=s(x) Projektionsfunktionen prm n : PRn m(x 1,..,x n,y) y=x m Konstantenfunktion c n m : Cn m(x 1,..,x n,y) y=m Addition add: ADD(x 1,x 2,y) y=x 1 +x 2 Komposition f (g 1,.., g n ): H( x, z) y 1,..,y n.(g 1 ( x, y 1 ).. G n ( x,y n ) F(y 1,..,y n, z)) H repräsentiert f (g 1,.., g n ), wenn F, G 1,..G n Repräsentationen von f, g 1,.., g n Minimierung µ[f]: H( x, y) w. LE(w,y) [F ( x,y,0) w=y] H repräsentiert µ[f], wenn F Repräsentation von f THEORETISCHE INFORMATIK II 5.3: 20 FUNKTIONALE & LOGISCHE PROGRAMME
ALP I Rekursive Funktionen
ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive
Einführung in die Programmierung
Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:
Kapitel 5: Applikative Programmierung
Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht
Rekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
Der λ-kalkül. Frank Huch. Sommersemester 2015
Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der
Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected]
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected] Interpreter für funktionale Sprache
Algorithmen und Programmierung
Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen
Syntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
Binäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
5.4 Die Prädikatenlogik 1.Stufe als Semantikformalismus
5.4 Die Prädikatenlogik 1.Stufe als Semantikformalismus 5.4.1 Einführung Einführung Verwendet wird die Sprache der Prädikatenlogik erster Stufe mit Identität (ohne Funktionskonstanten) mit dem folgenden
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
Entwicklung eines korrekten Übersetzers
Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung
Logische Strukturen 7. Vorlesung
Logische Strukturen 7. Vorlesung Martin Dietzfelbinger 18. Mai 2010 Kapitel 2 Prädikatenlogik Was ist das? Logik und Strukturen Natürliches Schließen Normalformen Herbrand-Theorie Prädikatenlogische Resolution
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
Repetitorium zur Informatik IV
Repetitorium zur Informatik IV Christoph Kreitz 6. 10. September 1993 Zusammenfassung Diese Wiederholung geht nicht nach didaktischen Gesichtspunkten vor sondern faßt systematisch in Stichworten die wichtigsten
Theoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen
Prädikatenlogik 1. Stufe (kurz: PL1) Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen notwendig: Existenz- und Allaussagen Beispiel: 54 Syntax der Prädikatenlogik erster Stufe (in der
6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen
6. Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N
SWP Prüfungsvorbereitung
20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c
Theoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 12: Termersetzungssysteme [email protected] Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A ist eine
Brückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 1 Logik,, Doris Bohnet Universität Hamburg - Department Mathematik Mo 6.10.2008 Zeitplan Tagesablauf: 9:15-11:45 Vorlesung Audimax I 13:00-14:30 Übung Übungsräume
8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
Rekursive und primitiv-rekursive Funktionen
Rekursive und primitiv-rekursive Funktionen Patrik Lengacher 02. Mai 2012 Dieses Handout richtet sich nach Kapitel 6.1 in [R]. Grundsätzlich wird dieselbe Notation wie in den vorhergehenden Vorträgen verwendet.
Einführung in die Informatik Grammars & Parsers
Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
2.4 Kontextsensitive und Typ 0-Sprachen
Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur
Interpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Gruppentheorie und Symmetrie in der Chemie
Gruppentheorie und Symmetrie in der Chemie Martin Schütz Institut für theoretische Chemie, Universität Stuttgart Pfaffenwaldring 55, D-70569 Stuttgart Stuttgart, 26. April 2002 Mathematische Definition
4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
Semantik von Formeln und Sequenzen
Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt
00. Einiges zum Vektorraum R n
00. Einiges zum Vektorraum R n In diesem einleitenden Kapitel werden die in der LV Einführung in die mathematischen Methoden erwähnten Konzepte über Vektoren (im R 2 und R 3 ) im Rahmen des n-dimensionalen
Logik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: [email protected] 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:
Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
Theoretische Informatik Testvorbereitung Moritz Resl
Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen
Formale Sprachen, reguläre und kontextfreie Grammatiken
Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache
Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)
Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden
Differenzengleichungen. und Polynome
Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich [email protected] 1 Einleitung Mit linearen Differenzengleichungen
Aufgabe - Fortsetzung
Aufgabe - Fortsetzung NF: Nicht-Formel F: Formel A: Aussage x :( y : Q(x, y) R(x, y)) z :(Q(z, x) R(y, z)) y :(R(x, y) Q(x, z)) x :( P(x) P(f (a))) P(x) x : P(x) x y :((P(y) Q(x, y)) P(x)) x x : Q(x, x)
Axiomatische Beschreibung der ganzen Zahlen
Axiomatische Beschreibung der ganzen Zahlen Peter Feigl JKU Linz [email protected] 0055282 Claudia Hemmelmeir JKU Linz [email protected] 0355147 Zusammenfassung Wir möchten in diesem Artikel die ganzen
Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.
Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik Seminar Entscheidungsverfahren für logische Theorien Tobias Hebel Koblenz, am 18.02.2005 Inhaltsverzeichnis 1 Einleitung... 3 2 Grundlagen...
2 Mengen und Abbildungen
2.1 Mengen Unter einer Menge verstehen wir eine Zusammenfassung von Objekten zu einem Ganzen. Die Objekte heiÿen Elemente. Ist M eine Menge und x ein Element von M so schreiben wir x M. Wir sagen auch:
Handout zu Beweistechniken
Handout zu Beweistechniken erstellt vom Lernzentrum Informatik auf Basis von [Kre13],[Bün] Inhaltsverzeichnis 1 Was ist ein Beweis? 2 2 Was ist Vorraussetzung, was ist Behauptung? 2 3 Beweisarten 3 3.1
Einführung in Berechenbarkeit, Komplexität und formale Sprachen
Johannes Blömer Skript zur Vorlesung Einführung in Berechenbarkeit, Komplexität und formale Sprachen Universität Paderborn Wintersemester 2011/12 Inhaltsverzeichnis 1 Einleitung 2 1.1 Ziele der Vorlesung...................................
Zusammenfassung Grundzüge der Informatik 4
Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1
Logic in a Nutshell. Christian Liguda
Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung
Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 1. ALPHABETE, WÖRTER, SPRACHEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2011
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2011 1. ALPHABETE, WÖRTER, SPRACHEN Theoretische Informatik (SoSe 2011) 1. Alphabete, Wörter, Sprachen 1 / 25 Vorbemerkung:
Theoretische Informatik 1
Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Konjunktive und disjunktive Normalformen
Konjunktive und disjunktive Normalformen Nachdem gesprochen wurde, wie man Boolesche Terme unter einer Belegung der Variablen interpretiert und dass somit jeder Boolesche Term eine Boolesche Funktion repräsentiert,
Algorithmen und Datenstrukturen 1 Kapitel 4.1
Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät [email protected] Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an
5 Logische Programmierung
5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen
Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen
Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist
Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung
Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive
Theoretische Informatik
Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis
Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke
Matrizen, Determinanten, lineare Gleichungssysteme
Matrizen, Determinanten, lineare Gleichungssysteme 1 Matrizen Definition 1. Eine Matrix A vom Typ m n (oder eine m n Matrix, A R m n oder A C m n ) ist ein rechteckiges Zahlenschema mit m Zeilen und n
Prüfungsprotokoll Kurs 1825 Logik für Informatiker. Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015
Prüfungsprotokoll Kurs 1825 Logik für Informatiker Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015 1. Aussagenlogik Alphabet und AS gegeben, wie sind die Aussagenlogischen
16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
11.1 Kontextsensitive und allgemeine Grammatiken
Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert
Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation
Grundlagen der Programm- und Systementwicklung Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Technische Universität München Institut für Informatik Software &
Theoretische Informatik I
Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften
Ausarbeitung des Interpreter Referats
Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache
5. Aussagenlogik und Schaltalgebra
5. Aussagenlogik und Schaltalgebra Aussageformen und Aussagenlogik Boolesche Terme und Boolesche Funktionen Boolesche Algebra Schaltalgebra Schaltnetze und Schaltwerke R. Der 1 Aussagen Information oft
Rekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
Die Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010
Klausur Formale Systeme Fakultät für Informatik Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 A1 (15) A2 (10) A3 (10) A4
Halbgruppen, Gruppen, Ringe
Halbgruppen-1 Elementare Zahlentheorie Einige Bezeichnungen Halbgruppen, Gruppen, Ringe Die Menge N 0 der natürlichen Zahlen 0, 1, 2, Die Menge N = N 1 der von Null verschiedenen natürlichen Zahlen Die
Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
Funktionale Programmierung (in Clojure)
Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen
2. Repräsentationen von Graphen in Computern
2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen
Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln
Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg
Hilbert-Kalkül (Einführung)
Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle
Sudoku. Warum 6? Warum 6?
. / Sudoku Füllen Sie die leeren Felder so aus, dass in jeder Zeile, in jeder Spalte und in jedem x Kästchen alle Zahlen von bis stehen.. / Warum?. / Warum?. / Geschichte der Logik Syllogismen (I) Beginn
26 Hierarchisch strukturierte Daten
Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester
Fachhochschule Nordwestschweiz (FHNW) Hochschule Technik Lösungen Serie 10 (Lineare Abbildungen)
Fachhochschule Nordwestschweiz (FHNW) Hochschule Technik Lösungen Serie (Lineare Abbildungen) Dozent/in: R. Burkhardt Büro:.6 Klasse: Semester: Datum: HS 8/9. Aufgabe Zeige, dass die folgenden Abbildungen
Induktive Definitionen
Induktive Definitionen Induktive Definition: Konstruktive Methode zur Definition einer Menge M von Objekten aus Basisobjekten mittels (Erzeugungs-) Regeln Slide 1 Rekursion über den Aufbau: Konstruktive
Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.
I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten
Syntax (= Satzgefüge), vgl. auch Grammatik
1 Natürliche Sprachen Natürliche Sprachen bezeichnen wie das Wort "Sprache" ausdrückt zunächst das Gesprochene. Das Schweizerdeutsch etwa ist eine typische natürliche Sprache. Mit der Erfindung der Aufzeichnung
C.3 Funktionen und Prozeduren
C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens
Berechenbarkeit und Komplexität
Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter
Kontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen
Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1
Kapitel 1.0 Aussagenlogik: Einführung Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1 Ziele der Aussagenlogik In der Aussagenlogik analysiert man die Wahrheitswerte zusammengesetzter
Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel
Motivation Formale Grundlagen der Informatik 1 Kapitel 19 & Die ist eine Erweiterung der Aussagenlogik. Sie hat eine größere Ausdrucksstärke und erlaub eine feinere Differenzierung. Ferner sind Beziehungen/Relationen
1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
Lineare Gleichungssysteme
Christian Serpé Universität Münster 14. September 2011 Christian Serpé (Universität Münster) 14. September 2011 1 / 56 Gliederung 1 Motivation Beispiele Allgemeines Vorgehen 2 Der Vektorraum R n 3 Lineare
1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren
1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften
