Strukturierte Spezifikation: Freie Datentypen
|
|
- Britta Kuntz
- vor 6 Jahren
- Abrufe
Transkript
1 Strukturierte Spezifikation: Freie Datentypen 113
2 Wie spezifiziert man Datentypen? Vorgehen: Definiere benötigte Sorten Letzte Vorlesung: Datentypen auf Rechnern sind generiert Definiere Konstruktoren und Generiertheitsklauseln Definiere weitere Operationen und ihre Axiome Problem: Wie geeignete, richtige Axiome finden? Formal richtig : Sie sollten für den gewünschten Datentyp stimmen (keine Inkonsistenz!), und sollten ihn möglichst eindeutig charakterisieren. 114
3 Freie und nichtfreie Datentypen nat nat???? by???? by integer???? by set???? by set???? by stack???? by bintree???? by graph???? by list???? by 115
4 Freie und nichtfreie Datentypen Beobachtung: Manche Datentypen sind frei (erzeugt): Zwei verschiedene Konstruktorterme repräsentieren auch immer zwei verschiedene Elemente. nat 0, +1 nat 0,1,+ integer 0, +1, 1 set, ins set, {.}, stack empty, push bintree mkleaf, mkbranch graph, +node, +edge list [], + 115
5 Freie und nichtfreie Datentypen Beobachtung: Manche Datentypen sind frei (erzeugt): Zwei verschiedene Konstruktorterme repräsentieren auch immer zwei verschiedene Elemente. nat freely generated by 0, +1 nat generated by 0,1, = 0 integer generated by 0,+1, = 0 set generated by, ins ins(a,ins(a, )) = ins(a, ) set generated by, {.}, {a} {a} = {a} stack freely generated by empty, push bintree freely generated by mkleaf, mkbranch graph generated by, +node, +edge +node n +node n = +node n list freely generated by [], + 115
6 Axiome für freie Datentypen Beispiel: Konstante c, einstellige Funktion f, zweistellige Funktion g Verschiedenheit der Konstruktoren c, f und g: c f(x), f(x) g(y,z), c g(x,y) Injektivität der Konstruktoren: f(x) = f(y) x = y, g(x,y) = g(u,v) x = u y = v Satz: Die Spezifikation mit diesen Axiomen ist monomorph und konsistent, sie charakterisiert also genau einen Datentyp. KIV: Schreibe freely generated by, Axiome werden generiert. 116
7 Freie Erzeugtheitsklauseln Freie Erzeugtheitsklauseln A = S freely generated by C : A = S generated by C Für zwei verschiedene Terme t,t T s (C,X \ X s ) mit s S gibt es Variablenbelegungen v,v, so dass [[t]] A,v [[t ]] A,v Insbesondere sind Terme mit verschiedenen Konstruktoren immer verschieden. 117
8 Freie Datentypen (Beispiel 1) Beispiel 1: Wochentage Weekday1 = specification sorts weekday; constants Mon, Tue, Wed, Thu, Fri, Sat, Sun : weekday; induction weekday freely generated by Mon, Tue, Wed, Thu, Fri, Sat, Sun; variables w : weekday; end specification Generierte Axiome: Die Konstanten Mon, Tue, Wed,... sind paarweise verschieden: Mon Tue, Mon Wed, Mon Thu, Mon Fri,
9 Freie Datentypen (Beispiel 1) Induktionsregel für die Sorte weekday Γ Mon w Mon w... Γ Sun w Γ Sun w Beweis durch Fallunterscheidung nach dem Tag Verallgemeinerung: Aufzählungstypen 119
10 Freie Datentypen (Beispiel 2) Beispiel 2: Die natürlichen Zahlen Nat3 = specification sorts nat; constants 0 : nat; functions +1 : nat nat; variables n : nat; induction nat freely generated by 0, +1; end specification Neu: Axiome jetzt generiert. 120
11 Freie Datentypen (Beispiel 3) Beispiel 3: Paare Pair1 = specification sorts elem1; elem2; pair; functions mkpair : elem1 elem2 pair; induction pair freely generated by mkpair; variables a : elem1; b : elem2; p : pair; end specification Generiertes Axiom: mkpair(a 1,b 1 ) = mkpair(a 2,b 2 ) a 1 = a 2 b 1 = b 2 121
12 Freie Datentypen (Beispiel 3) Induktionsregel für die Sorte pair Γ mkpair(a,b) p mkpair(a,b) p Γ Expandiert Variable p zu mkpair(a, b) Verallgemeinerung: Tupel 122
13 Freie Datentypen (Beispiel 4) Beispiel 4: Listen List2 = specification sorts list, elem; functions [] : list;. +. : elem list list; variables a, b: elem; l, l 1, l 2 : list; induction list freely generated by [], +; end specification 123
14 Freie Datentypen (Beispiel 4) Generierte Axiome Spezifikation generiert: [] a + l, a + l 1 = b + l 2 a = b l 1 = l 2 Induktionsregel für die Sorte list y. Γ,Γ a+l l Γ a+l l Γ [] l [] l y = free(γ ) \ {l} 124
15 Data Specification (Motivation) Häufige Situation: Freie Erzeugbarkeit mit Konstruktoren c Selektoren, die aus c(x 1,...x n ) die x i selektieren Testprädikate ist mit Konstruktor c gebildet Ordnung: ist Unterterm von Größenfunktion: Anzahl nichtkonstanter Konstruktoren Eigenes Syntaxkonstrukt data specification vermeidet unnötige Schreibarbeit. 125
16 Data Specification (Beispiel 1) Beispiel 1: Wochentage Weekday2 = data specification weekday = Mon Tue Wed Thu Fri Sat Sun; variables w : weekday; end data specification 126
17 Data Specification (Beispiel 2) Beispiel 2: natürliche Zahlen Nat4 = data specification nat = (. 1 : nat); variables n : nat nat; order predicates. <. : nat nat; end data specification Neue Axiome: n +1 1 = n; (: 0 1 ist unspezifiziert :) n < n; m<n n<k m<k; n < 0; m < n +1 (m = n m < n) 127
18 Data Specification (Beispiel 3) Beispiel 3: Paare Pair2 = data specification using Elem1, Elem2; pair = mkpair (..1 : elem1;..2 : elem2 ) variables p : pair; end data specification Neue Axiome : mkpair(a,b).1 = a; mkpair(a,b).2 = b 128
19 Data Specification (Beispiel 3) Beispiel 4: Listen List3 = data specification using Nat, Elem; list =. +. (..first : elem;..rest : list) with consp [] with nilp; variables l : list; (: ist Unterterm für Listen = ist Endstück :) order predicates.. : list list; size functions length : list nat; end data specification 129
20 Selektoren als partielle Funktionen Problem: Was tun, wenn ein Selektor auf den falschen Summand angewandt wird? Hier: Was sind [].first und [].rest?.first und.rest sollten für [] garnicht definiert sein Partielle Funktionen In KIV: []. first und [].rest sind unspezifiziert (i. e. kein Axiom) Semantik: [].rest ist in jeder Algebra (Datenstruktur) irgendeine andere Liste Echte Implementierung muss irgendeine Liste zurückgeben Pragmatik: Formeln mit [].rest sollten nicht vorkommen. Wenn doch, muss die Sequenz ohne die Formeln beweisbar sein. Bem.: Alternativen sind möglich aber komplizierter (Fehlerelemente, echte Partialität, etc.) 130
21 Data Specification (Beispiel 3) Neue Axiome für List3: nilp([]); nilp(a + l); consp([]); consp(a + l); (a + l).first = a; (: kein Axiom für [].first :) (a + l).rest = l; (: kein Axiom für [].rest :) l []; l (a + l 1 ) l = l 1 l l 1 ; (: beweisbar, aber der Einfachheit halber generiert :) l l; l 1 l 2 l 2 l 3 l 1 l 3 ; length([]) = 0; length(a + l) = length(l) +1; 131
22 Data Specification allgemein Definition (Datendefinition) Eine Datendefinition D hat die Form (optionales in eckigen Klammern): s = c 1 (sel 1,1 : s 1,1 ;...;sel 1,n1 : s 1,n1 ) [with p 1 ]... c k (sel k,1 : s k,1 ;...;sel k,nk : s k,nk ) [with p k ]; [order predicate..;][size function sz;] Überladen: sel i,j = sel i,j erlaubt, falls s i,j = s i,j, ansonsten alle Operationen paarweise verschieden. 132
23 Eigenschaften von Data Specifications Satz: Alle Data Specifications sind immer konsistent. Sie sind immer monomorph bis auf unspezifizierte Selektoren. Intuition bei Listen ist also: Wir haben exakt den Datentyp der Listen beschrieben. Wir haben lediglich für die Realisierung auf einem Rechner offen gelassen, was für ein Element bzw. was für eine Liste [].first und [].rest zurückgeben. 133
24 Strukturierte Spezifikation: Anreicherung um nichtrekursive und rekursive Definitionen 134
25 Strukturierte Spezifikationen Motivation Spezifikationen werden sehr schnell sehr groß Strukturierung erforderlich 1. Übersichtlichkeit & Verständlichkeit 2. Wiederverwendung von Komponenten 3. Unabhängige Entwicklung von Komponenten 4. Strukturierung und Wiederverwendung von Beweisen 135
26 Strukturierte Spezifikationen in KIV KIV zeigt strukt. Spezifikationen als Spezifikationsgraph an In KIV enthält jeder Knoten neben der Spezifikation außerdem eine Theorembasis Die Theorembasis enthält eine Menge von Theoremen (Sequenzen) über der Gesamtsignatur Für jede Sequenz kann ein Beweis vorhanden sein, der zeigt, daß die Sequenz aus SP und anderen Theoremen folgt (keine zyklischen Abhängigkeiten) Theoreme aus darunterliegenden Spezifikation werden mit insert spec-lemma statt insert lemma angewandt KIV hat ein Korrektheitsmanagement, um Abhängigkeiten zwischen Beweisen zu verwalten 136
27 Strukturierte Spezifikationen: Vereinigung und Anreicherung Vereinigung Wirft Signaturen + Axiome zusammen Syntax: union specification <SPEC1> + <SPEC2> +... end union specification Zu vermeiden: Nichtdisjunkte Vereinigung (Gefahr der Inkonsistenz!) Anreicherung Addiert neue Signaturen + Axiome Syntax: enrich <SPEC1>, <SPEC2>,... with <signature> <induction> <axioms> end enrich Implizit: Ausgangsspezifikation der Anreicherung ist die Vereinigung von <SPEC1>, <SPEC2>,
28 Anreicherung: Vorgehen Neue Axiome hinzuzunehmen macht eine Spezifikation sehr schnell inkonsistent (siehe Versuch 3!) Gewünscht: Nur konsistenzerhaltende Anreicherungen Formaler Begriff: Konsistenzerhaltend = Hierarchiepersistent Neue Operationen sollten monomorphieerhaltend sein: Wenn genau ein Datentyp spezifiziert, sollte die Operation ebenfalls eindeutig festgelegt sein Formaler Begriff: Monomorphieerhaltend = Eindeutig Vorgehen: Anreicherung nur durch rekursive und nichtrekursive Definitionen für neue Operationen. Diese sind hierarchiepersistent und eindeutig. 138
29 Nichtrekursive Definitionen (Motivation) Grundidee: Definition als Abkürzung einer grossen Formel Prädikat: p(x) ϕ (p kommt in Formel ϕ nicht vor) Funktion: f(x) = t (f kommt im Term t nicht vor) 139
30 Beispiel: Anreicherung um nichtrek. Prädikat NatDiv = enrich Nat with predicates : nat nat; axioms m n k. k * m = n; end enrich Die Anreicherung NatDiv ist hierarchiepersistent und eindeutig 140
31 Beispiel: Anr um nichtrek. Prädikat (mit FU) NatPrime = enrich NatDiv with predicates prime : nat; axioms prime(0); prime(1); n 2 (prime(n) m. m n m = 1 m = n); end enrich Die Anreicherung NatPrime ist hierarchiepersistent und eindeutig (FU nach n = 0, n = 1, n 2 ist vollständig) 141
32 Beispiel: Anreicherung um nichtrek. Konstante Nat12 = enrich Nat with constants 1 : nat; 2 : nat; axioms 1 = 0 +1; 2 = ; end enrich Die Anreicherung Nat12 ist hierarchiepersistent und eindeutig (beachte: in KIV sind die Zahlen schon vordefiniert) 142
33 Weitere Beispiele für nichtrekursive Definitionen m n k. m + k = n m < n m n m n m > n n < m even(n) m. n = m + m odd(n) even(n) m < n min(m,n) = m, m < n min(m,n) = n x 0 abs(x) = x, x < 0 abs(x) = x last(l + (a + [])) = a (: unvollst. Def :) a l l,l. l + a + l = l isprefix(l,l ) l. l + l = l nodups(l) l 1,l 2,l 3,a. l = l 1 + a + l 2 + a + l 3 143
34 Nichtrekursive Definitionen allgemein Prädikat: p(x) ϕ (p kommt in Formel ϕ nicht vor) Funktion: f(x) = t (f kommt im Term t nicht vor) Prädikat mit 2 vollständigen Fällen: ε (q(x,y) ϕ 1 ), ε (q(x,y) ϕ 2 ) Funktionen mit 3 unvollständigen Fällen: ε δ f(x,y) = t 1, ε δ f(x,y) = t 2, ε δ f(x,y) = t 3 Satz: Die Hinzunahme einer neuen Operation (Funktion oder Prädikat) mit nichtrekursiver Definition ist immer hierarchiepersistent. Wenn die Fälle vollständig sind, ist die Erweiterung sogar eindeutig. 144
35 Rekursive Definitionen (Motivation) Datentypen bestehen aus (der Semantik von) Konstruktortermen Rekursive Definitionen geben Definition durch Reduktion auf kleinere Konstruktorterme Entsprechen einem rekursiven Programm, das den Term abläuft Length = enrich List with functions length : list nat; axioms length([]) = 0; length(a + l) = length(l) +1; end enrich Satz: Die Hinzunahme einer neuen Operation mit rekursiver Definition zu einem freien Datentyp ist immer hierarchiepersistent. Wenn die Fälle vollständig sind, ist die Erweiterung immer eindeutig. 145
36 Beispiel: Anreicherung um rek. Definition Append = enrich List with functions. +. : list list list; axioms [] + l = l; (a + l) + l = a + (l + l ); end enrich Append ist hierarchiepersistent und eindeutig (+ ist überladen: Sowohl Element vor Liste hängen (rot und schwarz), als auch 2 Listen zusammenhängen (blau)) 146
37 Beispiel: Anreicherung um rek. Prädikat (FU) Sorted = enrich List with predicates sorted : list axioms ordered([]), ordered(a + []), ordered(a + b + l) a < b ordered(b + l) end enrich Ordered ist hierarchiepersistent und eindeutig, da die FU vollständig ist (jede Liste ist entweder = [],a + [],a + b + l) 147
38 Strukturierte Spezifikationen: Umbenennung und Parameter 148
39 Strukturierte Spezifikationen: Umbenennung Umbenennung: Benennt die Operationen einer Spezifikation um Nützlich um 2 Kopien zu erhalten Syntax: rename <SPEC> by morphism <renaming1>;... <renamingn>; end rename renaming = <sort/op/var> <sort/op/var>; Identische Umbenennungen weglassen (werden beim Ansehen der Spezifikation aber angezeigt) Nicht 2 Symbole auf dasselbe abbilden: Injektiv umbenennen Entweder alle Variablen oder keine umbenennen 149
40 Beispiel Umbenennung: Listen zu Stacks rename List by morphism list stack; [] empty; (: Typangabe für überladenes Symbol :) + :: (elem list list) push; (: pop nicht mehr postfix, Schreibweise stattdessen pop(x), default ist in/prae/postfix uebernehmen :).rest pop prio 0; (: top soll nun praefix sein :).first top.; (: eigentlich keine Stack-Operation, nur um Overloading zu zeigen :) + :: (list list list) concat prio 0; x st; y st0; z st1; end rename 150
41 Strukturierte Spezifikationen: Generische Spezifikation Generische Spezifikation: Syntax: generic specification parameter <SPEC> using <SPEC1>,..., <SPECn> target <signature> <induction> <axioms> end generic specification Wie Anreicherung (von <SPEC>, <SPEC1>,..., <SPECn>), nur wird von <SPEC> explizit gesagt, dass es sich um einen Parameter handelt Vereinigung und Anreicherung übernimmt den (oder die) Parameter der Unterspezifikationen Variante: generic data specification: Wie data specification nur mit Parameter 151
42 Strukturierte Spezifikationen: Aktualisierung (1) Aktualisierung: Instanziert Parameter (oder einen Parameter) einer Spezifikation Beispiel: Listen beliebiger Elemente Listen von Zahlen Syntax: actualize <SPEC> with <ASPEC1>,...,<ASPECn> by morphism <renaming1>;... <renamingn>; end actualize renaming = <sort/op/var> <sort/op/var>; Die Vereinigung von <ASPEC1>,...,<ASPECn> heisst aktuelle Spezifikation Identische Umbenennungen weglassen Entweder alle Variablen oder keine umbenennen 152
43 Strukturierte Spezifikationen: Aktualisierung (2) Aktualisierung: Der Parameter muss in die aktuelle Spez. abgebildet werden Abbildung darf nicht-injektiv sein: pair(elem1, elem2) pair(nat, nat) Der Nicht-Parameter-Teil darf nur injektiv und disjunkt zur aktuellen Spezifikation umbenannt werden, z. B. list natlist Die instanzierten Axiome des Parameters müssen Axiome in der aktuellen Spezifikation sein Verallgemeinerung instantiated specification: Axiome werden bewiesen mapping statt morphism erlaubt es, eine Sorte auf ein Tupel von Sorten abzubilden 153
44 Aktualisierung: Beispiel (1) Order = specification sorts elem; constants d : elem; predicates : elem elem; variables a, b, c : elem; axioms a a; a b b c a c; a d; (: d ist minimal :) end specification List-Ord = generic data specification parameter Order using Nat list = []. +. (..first : elem;..rest : list); size functions length : list nat; end generic data specification 154
45 Aktualisierung: Beispiel (2) NatList = actualize List-Ord with Nat by morphism list natlist; elem nat; <; d 0; a n; b n0; c n1; end actualize Die instanzierten Axiome (u. a. n < 0) sind (modulo Umbenennung) in Nat vorhanden. Die Listenoperationen (+,.rest etc.) werden nicht umbenannt (sie bekommen nur die neuen Sorten als Argumente). 155
Strukturierte Spezifikationen: Umbenennung und Parameter
Strukturierte Spezifikationen: Umbenennung und Parameter 149 Strukturierte Spezifikationen: Umbenennung Umbenennung: Benennt die Operationen einer Spezifikation um Nützlich um 2 Kopien zu erhalten Syntax:
MehrFormale Spezifikationund Induktion
Formale Spezifikationund Induktion 91 Was ist ein SW-System mathematisch? 1. Sicht: Operational Ein SW-System ist ein Automat mit Zustand, Zustandsübergängen und mit Abläufen. 2. Sicht: Algebraisch Ein
MehrFormale Spezifikationund Induktion
Formale Spezifikationund Induktion 1 Was ist ein SW-System mathematisch? 1. Sicht: operational Ein SW-System ist ein Automat mit Zustand, Zustandsübergängen und mit Abläufen. 2. Sicht: algebraisch Ein
MehrFormale 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
MehrΣ = (z; c : z, f : z z) Σ = (z; c : z, f : z z) ( ; 17, x -x) ( ; 17, pred) ( ; true, neg) ( ; 0, suc) ({a,b} + ; a, xa xb und xb xa)
METHODEN UND MODELLE DES SYSTEMENTWURFS 3. Algebraische Spezifikation mit CASL 3.1 Spezifikationen 3.2 CASL 3.1 SPEZIFIKATIONEN JAN SÜRMELI u.hu-berlin.de/mms-13 ZUR ERINNERUNG 2 DAS ZIEL 3 Signatur charakterisiert
MehrNoethersche Induktion
Noethersche Induktion 166 Noethersche Relationen Definition (Noethersche Relationen) Sei A A. Die Relation heißt noethersch (oder wohlfundiert, engl. well-founded) wenn es keine unendlichen -Ketten gibt:...
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 8 Abstrakte Datentypen A&P (WS 14/15): 08 Abstrakte Datentypen 1 Überblick Abstrakte Datentypen Signaturen und Algebren Spezifikation von ADTs Umsetzung von ADTs
MehrProgrammieren in Haskell Programmiermethodik
Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie
Rev. 2749 1 [28] Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom 04.11.2014: Typvariablen und Polymorphie Christoph Lüth Universität Bremen Wintersemester 2014/15 2 [28] Fahrplan Teil
MehrSemantik 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
MehrHASKELL KAPITEL 8. Bäume
HASKELL KAPITEL 8 Bäume Baum rekursiv definierte Datenstruktur nicht linear vielerlei Varianten: Struktur der Verzweigung, Ort der gespeicherten Information (Knoten, Kanten, Blätter ) 2 Binärbaum Jeder
Mehr4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik
Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März
Mehr2.3 Spezifikation von Abstrakten Datentypen
Abstrakte Datentypen (ADT) 2.3 Spezifikation von Abstrakten Datentypen Sichtbare Schnittstelle: Typbezeichner Signaturen der Operationen Spezifikation der Operationen Abstraktionsbarriere Implementierung
MehrDeklarative Semantik
7. Deklarative Semantik 7-1 Deklarative Semantik Bisher: Prolog als Programmiersprache. Operationale Semantik : Wie wird ein Programm ausgeführt? Welche Antworten werden berechnet? Jetzt: Prolog als logischer
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick
MehrFrage, Fragen und nochmals Fragen
Frage, Fragen und nochmals Fragen Berthold Hoffmann Universität Bremen and DFKI Bremen hof@informatik.uni-bremen.de In diesem Text stehen einige Fragen, die man sich zu den Folien der Veranstaltung Funktionales
MehrProgrammieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.
Universität Bielefeld AG Praktische Informatik 10. Dezember 2014 Wiederholung: Schema: f :: [σ] -> τ f [] = e 1 f (a : as) = e 2 where s = f as wobei e 1 und e 2 Ausdrücke vom Typ τ sind und e 2 die Variablen
Mehr12. Interpretation von PVS-Theorien
12. Interpretation von PVS-Theorien Vorspann zu allgemeinen Begriffen: Konsistenz usw. Äquivalenz und Quotienten Theorie-Interpretation Maschinelles Beweisen mit PVS 12 1 Vorspann: Interpretation, Modell,
Mehr2008W. Vorlesung im 2008W Institut für Algebra Johannes Kepler Universität Linz
Logik Institut für Algebra Johannes Kepler Universität Linz Vorlesung im http://wwwalgebrauni-linzacat/students/win/ml Inhalt Logik Logik Aussagen Die mathematische Logik verwendet mathematische Methoden,
MehrGrundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen
Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrKapitel 1.1. Aussagenlogik: Syntax. Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1
Kapitel 1.1 Aussagenlogik: Syntax Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1 Übersicht 1.1.1 Die Sprache der Aussagenlogik 1.1.2 Explizite vs. implizite Definitionen 1.1.3
Mehr26 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
MehrAlgebraische Kurven. Vorlesung 24. Tangenten bei Parametrisierungen. (Q)) die Richtung der Tangente von C in P.
Prof. Dr. H. Brenner Osnabrück SS 2012 Algebraische Kurven Vorlesung 24 Tangenten bei Parametrisierungen Satz 24.1. Es sei K ein unendlicher Körper und ϕ: A 1 K A n K eine durch n Polynome ϕ = (ϕ 1 (t),...,ϕ
MehrFallstudie: Nim Spiel
Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod
Mehr3 Terme und Algebren 3.1 Terme
3 Terme und Algebren 3.1 Terme Mod - 3.1 In allen formalen Kalkülen benutzt man Formeln als Ausdrucksmittel. Hier betrachten wir nur ihre Struktur - nicht ihre Bedeutung. Wir nennen sie Terme. Terme bestehen
MehrTheorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007
Seite 1 Theorem Proving Prädikatenlogik Seite 2 Gliederung Warum Theorembeweisen? Wie funktioniert Theorembeweisen? Wie kann mir das Werkzeug KIV dabei helfen? Seite 3 Warum Theorembeweisen? Wie kann man
MehrFunktionale Spezifikation
Modellbildung erfolgt zu einem bestimmten Zweck Zwecke müssen exakt definiert werden eine Möglichkeit: funktionale Spezifikation Anwendungen: Vertragsgrundlage Korrektheitsnachweis Wiederverwendung (interface)
MehrSequentielle Programme, Hoare-Logik und Dynamische Logik
Sequentielle Programme, Hoare-Logik und Dynamische Logik 170 Was ist ein SW-System mathematisch? 1. Sicht: operational Ein SW-System ist ein Automat mit Zustand, Zustandsübergängen und mit Abläufen. 2.
Mehrmathematik und informatik
Prof. Dr. Martin Erwig Kurs 01852 Fortgeschrittene Konzepte funktionaler Programmierung LESEPROBE mathematik und informatik Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere
Mehr5 Lineare Algebra (Teil 3): Skalarprodukt
5 Lineare Algebra (Teil 3): Skalarprodukt Der Begriff der linearen Abhängigkeit ermöglicht die Definition, wann zwei Vektoren parallel sind und wann drei Vektoren in einer Ebene liegen. Daß aber reale
MehrProgrammieren in C++ Überladen von Methoden und Operatoren
Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer
MehrPrädikatenlogiken. Mathematische Logik. Vorlesung 7. Alexander Bors. 6. & 27. April A. Bors Logik
Prädikatenlogiken Mathematische Logik Vorlesung 7 Alexander Bors 6. & 27. April 2017 1 Prädikatenlogiken Überblick 1 Formale Prädikatenlogiken erster Stufe (Quelle: Ziegler, pp. 3 24) (Abgeleitete) Axiome
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
MehrPraktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen
Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11
Mehr3 Exkurs: Der λ-kalkül
3 Exkurs: Der λ-kalkül Alonso Churchs λ-kalkül (ca. 1940) ist der formale Kern jeder funktionalen Programmiersprache. Der λ-kalkül ist eine einfache Sprache, mit nur wenigen syntaktischen Konstrukten und
MehrMathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016
und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
MehrMengen. (Nicht-) Elemente einer Menge { 3, 4 } { 1, { 2 }, { 3, 4 }, { 5 } } 3 { 1, { 2 }, { 3, 4 }, { 5 } }
Mengen Definition (Intuitive Mengenlehre) Eine Menge ist die Zusammenfassung von Elementen unserer Anschauung zu einem wohldefinierten Ganzen. (Georg Cantor) Notation 1. Aufzählung aller Elemente: { 1,
MehrFunktionale 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 &
MehrMengen. Eigenschaften. Spezielle Mengen (1) Prominente Mengen. ! Mengenzugehörigkeit
Mengen! Definition (Intuitive Mengenlehre) Eine Menge ist die Zusammenfassung von Elementen unserer Anschauung zu einem wohldefinierten Ganzen. (Georg Cantor)! Notation 1. Aufzählung aller Elemente: {
MehrEinführung in die mathematische Logik
Prof. Dr. H. Brenner Osnabrück SS 2016 Einführung in die mathematische Logik Vorlesung 12 Wir haben bisher nur von Axiomensystemen im Sinne einer beliebigen Ausdrucksmenge Γ L S gesprochen, die im Allgemeinen
MehrDie Prädikatenlogik erster Stufe: Syntax und Semantik
Die Prädikatenlogik erster Stufe: Syntax und Semantik 1 Mathematische Strukturen und deren Typen Definition 1.1 Eine Struktur A ist ein 4-Tupel A = (A; (R A i i I); (f A j j J); (c A k k K)) wobei I, J,
Mehr17 Lineare Abbildungen
Chr.Nelius: Lineare Algebra II (SS2005) 1 17 Lineare Abbildungen Wir beginnen mit der Klärung des Abbildungsbegriffes. (17.1) DEF: M und N seien nichtleere Mengen. Eine Abbildung f von M nach N (in Zeichen:
Mehr1 Mathematische Grundbegriffe
1 1 Mathematische Grundbegriffe 1.1 Relationen und Funktionen Seien A 1,..., A n Mengen. Ein n-tupel über A 1,..., A n ist eine Folge (a 1,..., a n ) von Objekten a i A i, für i = 1,..., n. Zwei n-tupel
Mehr2 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:
MehrTheoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.8 Aussagenlogik Der Sequenzen-Kalkül 99. Sequenzen
Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.8 Aussagenlogik Der Sequenzen-Kalkül 99 Sequenzen Zum Abschluss des Kapitels über Aussagenlogik behandeln wir noch Gentzens Sequenzenkalkül.
Mehr5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:
MehrProgrammieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
MehrKapitel III Ringe und Körper
Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem
MehrA N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )
Institut für Analysis und Scientific Computing TU Wien W. Auzinger WS 05/6 A N A L Y S I S I F Ü R T P H, U E (03.088). Übungstest (FR, 6..05) (mit Lösung ) Aufgabe. a ) Wandeln Sie die periodische Dezimalzahl
MehrAnwendungen der Logik, SS 2008, Martin Goldstern
Anwendungen der Logik, SS 2008, Martin Goldstern Total geordnete Körper Ein total geordneter Körper ist ein Körper (K, +,, 0, 1, ) mit einer totalen (=linearen) Ordnung, die mit den Operationen verträglich
MehrFormale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz
Formale Grundlagen Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Definition Sei A eine Menge und ɛ A A A eine zweistellige
MehrEinführung in die mathematische Logik
Prof. Dr. H. Brenner Osnabrück SS 2014 Einführung in die mathematische Logik Vorlesung 7 Sprachen erster Sufe Die in der letzten Vorlesung erwähnten Konstruktionsmöglichkeiten für Aussagen sind im Wesentlichen
MehrTeil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen
Teil VI: Prozeduren Feld-Parameter & Typen 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen Offene ARRAY-Parameter Motivation Problem : geg.: mehrere deklarierte Felder unterschiedlicher Längen,
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 18: Logik Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/35 Überblick Formeln in Prädikatenlogik erster Stufe Theorien und
MehrTheorembeweiserpraktikum SS 2016
Institut für Programmstrukturen und Datenorganisation Lehrstuhl Programmierparadigmen Am Fasanengarten 5 76131 Karlsruhe http://pp.ipd.kit.edu/ Theorembeweiserpraktikum SS 2016 http://pp.ipd.kit.edu/lehre/ss2016/tba
MehrMusterlösung zur Klausur Grundwissen Schulmathematik am
Musterlösung zur Klausur Grundwissen Schulmathematik am 24.2.2012 Aufgabe 1 (10 Punkte) Zeigen Sie: Für alle n N ist n 3 3n 2 +2n durch 6 teilbar. svorschläge Beweis durch Induktion nach n n = 1. Es ist
MehrAbschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Boolsche Algebra 3.3 Induktion und Rekursion Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 46 / 708 Überblick
MehrTyp-Polymorphismus. November 12, 2014
Typ-Polymorphismus Universität Bielefeld AG Praktische Informatik November 12, 2014 Das Haskell Typ-System Wir beginnen mit einer Wiederholung des Bekannten: In allen Programmiersprachen sind Typ-Konzepte
Mehr6.2 µ-rekursive Funktionen R p (N) (partiell rekursive Funktionen)
6.2 µ-rekursive Funktionen R p (N) (partiell rekursive Funktionen) Primitiv rekursive Funktionen P(N) Die bisher betrachteten Operationen auf Funktionen bilden totale Funktionen wieder in totalen Funktionen
MehrWas 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
MehrFormale Systeme, WS 2013/2014. Lösungen zu Übungsblatt 5
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt Dr. V. Klebanov, Dr. M. Ulbrich, C. Scheben Formale Systeme, WS 2013/2014 Lösungen zu Übungsblatt 5 Dieses
MehrDer untypisierte Lambda-Kalkül
Der untypisierte Lambda-Kalkül Der Lambda-Kalkül wurde zur Beschreibung des mathematischen Begriffs Funktion entwickelt. Die Menge aller Lambda-Ausdrücke Exp ist folgendermaßen definiert: x Exp wenn x
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 4: Wörter Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik
MehrEinführung in die Logik
Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3
MehrÜberblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Boolsche Algebra
Überblick 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 72 / 179 Beweisprinzip der vollständigen Induktion
MehrProgrammierung und Modellierung
Programmierung und Modellierung Benutzerdefinierte Datentypen Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 1. Aufzählungstypen 2. Typen mit zusammengesetzten
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie
16:02:01 2017-01-17 1 [37] Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom 08.11.2016: Typvariablen und Polymorphie Christoph Lüth Universität Bremen Wintersemester 2016/17 PI3 WS 16/17
MehrSWP Funktionale Programme
SWP Funktionale Programme Berhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {bernhard.aichernig,alexander.felfernig}@ist.tugraz.at Institute for Software Technology Inhalt Einfache
MehrNormalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform
2 Normalformen 2.1 Äquivalenz und Folgerung Definition 2.1 Äquivalenz, Folgerung). Seien ϕ, ψ FO[σ]. a) ϕ und ψ heißen äquivalent kurz: ϕ ψ, bzw. ϕ = ψ), wenn für alle zu ϕ und ψ äquivalent passenden σ-interpretationen
Mehr1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python
1 def Anweisung Sommersemester 2007 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung Beispiel: TuNix def def funktionsname([])
MehrKap. 3 Relationenmodell mit relationaler Algebra
Kap. 3 Relationenmodell mit relationaler Algebra Kap. 3.1. Trägermenge Seien D 1, D 2,..., D k Domänen: (Typen, Arten, Sorten, Wertmengen) z.b. string integer real Boolean DateTime BLOB, TIFF-image, HTML-Doc,
MehrLogik I. Symbole, Terme, Formeln
Logik I Symbole, Terme, Formeln Wie jede geschriebene Sprache basiert die Prädikatenlogik erster Stufe auf einem Alphabet, welches aus den folgenden Symbolen besteht: (a) Variabeln wie zum Beispiel v 0,v
MehrFunktionen in Python
October 19, 2006 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung def def funktionsname([]) : [ Dokumentationsstring
Mehr5. Äquivalenzrelationen
5. Äquivalenzrelationen 35 5. Äquivalenzrelationen Wenn man eine große und komplizierte Menge (bzw. Gruppe) untersuchen will, so kann es sinnvoll sein, zunächst kleinere, einfachere Mengen (bzw. Gruppen)
MehrVorlesung Diskrete Strukturen Rechnen mit 0 und 1
Vorlesung Diskrete Strukturen Rechnen mit 0 und 1 Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2009/10 1 Bernhard Ganter, TU Dresden Modul Einführung
MehrMengen und Abbildungen
1 Mengen und bbildungen sind Hilfsmittel ( Sprache ) zur Formulierung von Sachverhalten; naive Vorstellung gemäß Georg Cantor (1845-1918) (Begründer der Mengenlehre). Definition 1.1 Eine Menge M ist eine
MehrGrundlagen der Programmierung 2 (2.A)
Grundlagen der Programmierung 2 (2.A) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 5. Mai 2011 Listen und Listenfunktionen Listen modellieren Folgen von gleichartigen,
MehrSS Juli Übungen zur Vorlesung Logik Blatt 11
SS 2011 06. Juli 2011 Übungen zur Vorlesung Logik Blatt 11 Prof. Dr. Klaus Madlener Abgabe bis 13. Juli 2011 10:00 Uhr 1. Aufgabe: [Axiomatisierung, Übung] 1. Definieren Sie eine Formel A n der Prädikatenlogik
MehrBäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe
Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe S. Staab, Informatik für IM II; Folien nach D. Saupe, sowie W. Küchlin, A.
MehrBinärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T:
Binäre Bäume Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T: BinTree [T: TYPE]: DATATYPE empty: empty? node (key: T, left:bibtree, right:bibtree):
MehrWS 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
MehrTeil 4: Lernen rekursiver Funktionen
Theorie des Algorithmischen Lernens Sommersemester 2007 Teil 4: Lernen rekursiver Funktionen Version 1.0 Gliederung der LV Teil 1: Motivation 1. Was ist Lernen 2. Das Szenario der Induktiven Inf erenz
MehrWiederholungsblatt zur Gruppentheorie
Wiederholungsblatt zur Gruppentheorie von Christian Elsholtz, TU Clausthal, WS 1999/2000 Um Ihnen zu helfen, die Gruppentheorie zu wiederholen, stelle ich hier einige wichtige Beispiele und einige Lösungen
MehrVollständige Induktion
Angenommen, wir wollen zeigen, dass eine Aussage P(n) für alle n N wahr ist. Anders ausgedrückt: Es gilt n N : P(n) Hierzu können wir die Technik der vollständigen Induktion verwenden. Wir zeigen, dass
MehrDatenstrukturen und Algorithmen. Vorlesung 8
Datenstrukturen und Algorithmen Vorlesung 8 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap Schriftliche Prüfung Informationen
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrGrundkurs Mathematik I
Prof. Dr. H. Brenner Osnabrück WS 2016/2017 Grundkurs Mathematik I Vorlesung 9 In theory, theory and praxis are the same, in praxis they aren t Die Multiplikation auf den natürlichen Zahlen Zur Definition
Mehr1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen
1 Datenstrukturen 1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen 1 1.3 Bäume Hierarchische Datenstruktur Zusammenfassung von Gruppen (z.b. Bund / Länder /
MehrWS 2011/2012. Robert Giegerich Dezember 2013
WS 2011/2012 Robert 1 AG Praktische Informatik 11. Dezember 2013 1 robert@techfak.uni-bielefeld.de Vorschau Themen heute: Funktionen höherer Ordnung (Fortsetzung) künstliche Striktheit mehr zu fold für
MehrLösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }
Zur Einleitung: Lineare Gleichungssysteme Wir untersuchen zunächst mit Methoden, die Sie vermutlich aus der Schule kennen, explizit einige kleine lineare Gleichungssysteme. Das Gleichungssystem I wird
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrTypklassen. Natascha Widder
Typklassen Natascha Widder 19.11.2007 Motivation Typklassen fassen Typen mit ähnlichen Operatoren zusammen ermöglichen überladenen Funktionen Definition Typklassen Deklarationsschema class Name Platzhalter
MehrKapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
MehrHaskell zur Constraint-Programmierung HaL8
Haskell zur Constraint-Programmierung HaL8 Alexander Bau 2. Mai 2013 Wir benutzen eine Teilmenge von Haskell zur Spezifikation von Constraint- Systemen über Haskell-Datentypen. Ein Constraint-Compiler
MehrOperationen. auch durch. ausgedrückt. ist die Trägermenge der Operation. Mathematik I für Informatiker Algebren p.1/21
Operationen Eine Operation auf einer Menge ist eine Abbildung ist dabei die Menge aller -Tupel mit Einträgen aus. Man nennt auch durch die Stelligkeit der Operation ; dies wird ausgedrückt. Die Menge ist
MehrMathe <> Deutsch. Die 7 verwirrendsten Mathe-Floskeln einfach erklärt! Math-Intuition.de
Mathe Deutsch Die 7 verwirrendsten Mathe-Floskeln einfach erklärt! Inhalt hinreichend & notwendig kanonisch wohldefiniert beliebig paarweise trivial o.b.d.a & o.e. hinreichend & notwendig Bei jeder
MehrAllgemeine Algebren. Bernhard Ganter. Institut für Algebra TU Dresden D Dresden
Allgemeine Algebren Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de Operationen Eine Operation auf einer Menge A ist eine Abbildung f : A n A. A n ist dabei
MehrBeispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare
Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))
Mehr