Logica voor Informatica
|
|
|
- Fedde Brouwer
- 6 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Logica voor Informatica 13 Programma verificatie Wouter Swierstra University of Utrecht 1
2 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment van) predikatenlogica kunnen programmeren. Maar talen als C# zijn heel anders hebben we dan nog wel iets aan al deze logica? 2
3 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment van) predikatenlogica kunnen programmeren. Maar talen als C# zijn heel anders hebben we dan nog wel iets aan al deze logica? Logica speelt een centrale rol als je programma s correct wil bewijzen. 2
4 C#? Een taal als C# bevat heel veel verschillende features: objecten en methoden; inheritance; abstracte klassen; een rijke standaard library; Om al deze zaken mathematisch precies te maken is uitermate ingewikkelde. Als we over programma verificatie praten, is het eenvoudiger om ons te beperken tot een mini-taal die de kern van imperatieve talen, zoals C, C#, Java en Python, beschrijft. 3
5 Impertaal: de moeder der imperatieve programmeertalen Imperatieve programmeertalen zoals Java bestaan uit een serie opdrachten. Onze mini-taal bestaat uit de volgende soorten opdrachten: assignments/toekenningen x := 3 if-then en if-then-else statements; while statements; sequentiele compositie het na elkaar uitvoeren van twee opdrachten c en d, meestal geschreven c ; d Daarnaast nemen we aan dat we de gebruikelijke logische (and, or, not, enz) en aritmetische operatoren (plus, keer, enz.) tot onze beschikking hebben. 4
6 Impertaal: een voorbeeld begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end Vraag: Wat doet dit programma? 5
7 Semantiek van Impertaal Wat is het resultaat van het uitvoeren van een Impertaal programma? 6
8 Semantiek van Impertaal Wat is het resultaat van het uitvoeren van een Impertaal programma? Deze programma s wijzigen de geheugen ( state of toestand ) van een computer. We modelleren dit geheugen vaak als een bedeling Var Int die de waardes van alle variabelen representeert. Gegeven een initiele toestand S en een programma P, kunnen we het programma uitvoeren. Dit resulteert in een nieuwe toestand S of belandt in een oneindige lus, deelt door nul, enz. 6
9 Semantiek van Imperatieve Programmeertalen -> begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 x =? p =? i =? 7
10 Semantiek van Imperatieve Programmeertalen begin -> x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 x =? x = 3 p =? p =? i =? i =? 8
11 Semantiek van Imperatieve Programmeertalen begin x := 3; -> p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 S 2 x =? x = 3 x = 3 p =? p =? p = 0 i =? i =? i =? 9
12 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; -> i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 S 2 S 3 x =? x = 3 x = 3 x = 3 p =? p =? p = 0 p = 0 i =? i =? i =? i = 1 10
13 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 1 S 2 S 3 S 4 x = 3 x = 3 x = 3 x = 3 p =? p = 0 p = 0 p = 1 i =? i =? i = 1 i = 1 11
14 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 2 S 3 S 4 S 5 x = 3 x = 3 x = 3 x = 3 p = 0 p = 0 p = 1 p = 1 i =? i = 1 i = 1 i = 2 12
15 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 3 S 4 S 5 S 6 x = 3 x = 3 x = 3 x = 3 p = 0 p = 1 p = 1 p = 3 i = 1 i = 1 i = 2 i = 2 13
16 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 4 S 5 S 6 S 7 x = 3 x = 3 x = 3 x = 3 p = 1 p = 1 p = 3 p = 3 i = 1 i = 2 i = 2 i = 3 14
17 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 5 S 6 S 7 S 8 x = 3 x = 3 x = 3 x = 3 p = 1 p = 3 p = 3 p = 6 i = 2 i = 2 i = 3 i = 3 15
18 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 6 S 7 S 8 S 9 x = 3 x = 3 x = 3 x = 3 p = 1 p = 3 p = 6 p = 6 i = 2 i = 3 i = 3 i = 4 16
19 Semantiek van Imperatieve Programmeertalen begin -> end x := 3; p := 0; i := 1; zolang i <= x doe begin end p := p + i i := i+1; Het programma is nu klaar met als eindtoestand S 10 S 7 S 8 S 9 S 10 x = 3 x = 3 x = 3 x = 3 p = 3 p = 6 p = 6 p = 6 i = 3 i = 3 i = 4 i = 4 17
20 Specificatie Een formele specificatie is een mathematische precieze beschrijving van het gewenste gedrag van een programma. We laten dan vaak die niet-functionele requirements buiten beschouwing over de snelheid van het programma, de taal die wordt gebruikt, de kosten van ontwikkeling, enz. In plaats daarvan, kijken we alleen naar de centrale vraag: Doet dit programma wat het moet doen? 18
21 Specificatie Toen Informatica als vakgebied nog in de kinderschoenen stond, was het een enorme uitdaging. De traditionele mathematisch logica houdt zich bezig met wiskundige structuren en die zijn heel anders dan computer programmas.q In het bijzonder, worden computer programma s uitgevoerd en wijzigen zij de huidige toestand. Dus moest men op zoek naar nieuwe logica s om over dit soort zaken te kunnen redeneren. 19
22 Specificatie Wat is een specificatie van programma geschreven in Impertaal? 20
23 Specificatie Wat is een specificatie van programma geschreven in Impertaal? Elk programma wijzigt de initiele toestand en termineert (mogelijk) in een eindtoestand. Een mogelijke specificatie van een programma is dan twee predicaten, ϕ en ψ over de begin en eindtoestand: Als je mag aanemen dat ϕ geldt van de begintoestand, dan moet het programma garanderen dat ψ geldt van de eindtoestand. 20
24 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie Partiële Correctheid { x = 3} Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. x := x + 1 { x = 4} 21
25 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie Partiële Correctheid { x = A y = B} Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. z := x; x := y; y := z; { x = B y = A} 22
26 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie { } Partiële Correctheid Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. p := 0; i := 1; zolang i >= 1 doe p := p + i i := i+1; { p = 500 } 23
27 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-condition Program post-condition { } Partiële Correctheid Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. {p = 6} x := 3; p := 0; i := 1; zolang i <= x { p := p + i i := i+1; } 24
28 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-condition Program post-condition Programma Constructie of Programma Calculatie Gegeven de pre- en postcondities, schrijf een programma dat voldoet aan deze specificatie. {x 10} π {x = 10} 25
29 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Wat zijn de geschikte keuzes van axiomas? 26
30 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Wat zijn de geschikte keuzes van axiomas? In het algemeen, proberen we voor elke programma-constructie (if,while, assignment, enz) een bijbehorende axioma te vinden. 26
31 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} 27
32 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} Maar ook, voor alle N {x = N} x := x + 1 {x = N + 1} 27
33 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} Maar ook, voor alle N {x = N} x := x + 1 {x = N + 1} Dus wat is de regel in zijn algemeenheid? 27
34 Voorbeelden { [t/v]ϕ } v := t { ϕ } Voorbeeld axioma instanties: { y = 3 } x := 3 { y = x } { x = N + 1 } x := x 1 { x = N } { x + y = V } z := x + y { z = V } Waarom zijn deze wel geldig? Waarom is de substitutie aan de verkeerde kant? 28
35 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Afleidingsregels van Floyd-Hoare logica heeft de volgende vorm: S 1. S n S 29
36 Eerste regel: assignments De regel voor assignments kennen we al: { [t/v]ϕ } v := t { ϕ } Maar wat zijn de regels voor: if-then-else while sequentiele compositie en een aantal andere toegestane regels de kunnen helpen bij het boekhouden van bewijzen. 30
37 Floyd-Hoare Logica Afledingsregel (versterking preconditie): ϕ ψ {ψ} π {χ} {ϕ} π {χ} Voorbeeld: 1. { x + y = V } z := x + y { z = V } toek. Ax. 2. ((x + y = V ) (x 0)) (x + y = V ) logic 3. { (x + y = V ) (x 0) } z := x + y { z = V } Vers. Prec. 1&2 31
38 Floyd-Hoare Logica Afledingsregel (verzwaking postconditie): ψ χ {ϕ} π {ψ} {ϕ} π {χ} Voorbeeld: 1. { x + y = V } z := x + y { z = V } logic 2. (z = V ) (z V ) definitie 3. { x + y = V } z := x + y { z V } verz. post. 1&2 32
39 Floyd-Hoare Logica Afledingsregel (opeenvolgingregel): {ϕ} π 1 {ψ} {ψ} π 2 {χ} {ϕ} π 1 ; π 2 {χ} Voorbeeld: 1. { x } x := x + 1 { x 20 } toek. Ax. 2. { x 20 } y := x { y 20 } toek. Ax. 3. { x < 20} x := x + 1 ; y := x { y 20 } opeenv. 1&2 33
40 Floyd-Hoare Logica Afledingsregel ( Als-dan regel): (ϕ σ) χ {ϕ σ} π {χ} {ϕ} als σ dan π {χ} Voorbeeld: 1. {((0 x 5) (x 5) } y := x { 0 x 5 } 2. ((0 x 5) (x > 5)) (0 x 5) 3. {0 x 5} als x 5 dan y := x { 0 x 5 } als-dan 1&2 34
41 Floyd-Hoare Logica Afledingsregel ( Als-dan-anders regel): {ϕ σ} π 1 {ψ} {ϕ σ} π 2 {ψ} {ϕ} als σ dan π 1 anders π 2 {ψ} Voorbeeld: 1. {0 x 5 (x < 5)} x := x + 1 {0 x 5} 2. {0 x 5 (x 5) } x := 0 { 0 x 5 } 3. {0 x 5} als x < 5 dan x := x + 1 anders x := 0 { 0 x 5 } als-dan-anders 1&2 35
42 Floyd-Hoare Logica Afledingsregel ( zolang-doe regel): {ϕ σ} π {ϕ} {ϕ} zolang σ doe π {ϕ σ} Voorbeeld: 1. {x > 5} x := x 1 {x 5} toek. Ax. 2. (x > 5 x 5) x > 5 logic 3. {x > 5 x 5} x := x 1 {x 5} vers. pre. 1&2 4. {x 5} zolang x > 5 doe x := x 1 {x 5 x 5} zolang 3 36
43 Wat ontbreekt? De Impertaal is lang geen C# of Java methodes; recursie; effecten zoals printen, exceptions, concurrency, random numbers, enz. objecten; pointers, null-pointers, en geheugenmodel; over-erving (inheritance); lambdas en hogere orde functies; Maar het idee staat als een huis er zijn geschikte regels voor al zulke taalconstructies. 37
44 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? 38
45 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? Daarvoor hebben we eerst een semantiek nodig voor Impertaal 38
46 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? Daarvoor hebben we eerst een semantiek nodig voor Impertaal Die kun je, bij voorbeeld, geven door een relatie: S, π S, π te definieren die zegt dat het programma π in toestand S één statement kan uitvoeren om naar een nieuwe toestand S te gaan, met als overgebleven programma π. Zo n relatie heet ook wel een small step operational semantics. 38
47 Gezondheid en volledigheid Met behulp van deze semantiek herhaaldelijk stappen blijven uitvoeren tot je programma termineert. We schrijven dan S, π S als na het uitvoer van het programma π in begintoestand S het eindtoestand S heeft. Gezondheid zegt dat als { ϕ }π{ ψ } dan S S zodanig dat S, π S geldt ϕ(s) ψ(s ) Volledigheid zegt dat als S S zodanig dat S, π S, waar we voor willekeurig ϕ en ψ kunnen laten zien dat ϕ(s) ψ(s ) dan bestaat er een afleiding { ϕ }π{ ψ } 39
48 Dynamische Logica De taal van de dynamische logica bestaat uit: [π]ϕ : na de executie van programma π geldt π ϕ : noodzakkelijkerwijs ϕ na de executie van programma π geldt mogelijkerwijs ϕ Programma π kan een Impertaal programma zijn. Eigenschap ϕ kan een uitdrukking zijn van predikaten- of propositielogica. Correctheidsbewering {ϕ} π {ψ} in dynamische logica: ϕ [π]ψ Terminatie kan uitgedrukt worden: π 40
49 Dynamische Logica Programma π { } begin x:=3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end State = (x,p,i) (*,*,*)->(5,*,*)->(5,0,*)-> (5,0,1)->(5,1,1)->(5,1,2)-> (5,3,2)->(5,3,3)->(5,6,3)-> (5,6,4)->(5,10,4)->(5,10,5)-> (5,15,5)->(5,15,6). [π](p = 15) {p = 15} 41
50 Overzicht en afronding 42
51 Logica overzicht Propositielogica en predikatenlogica syntax; semantiek, modellen, normaalvormen en tableaux; bewijssystemen: Hilbert en natuurlijke deductie; Verzamelingenleer, oneindigheid, relaties en functies Toepassingen van de logica Prolog Programma verificatie 43
52 Slide Wat nu? Vrijdag laatste werkcollege en minitoets; Ik heb de oefentoets van vorig jaar online gezet (met en zonder antwoorden); Vrijdag geef ik geen college ik wil geen nieuwe stof behandelen en jullie de gelegenheid geven te richten op het leren van de nieuwste stof. Dan rest nog alleen de eindtoets 44
53 Eindtoets De eindtoets zal over alle stof gaan die in het vak is behandeld. De nadruk zal liggen op de stof van de afgelopen weken (wat nog niet getoetst is op de tussentoets), maar ga er niet vanuit dat er geen enkele vraag over de eerste hoofdstukken zal zijn. De toets wordt weer digitaal afgenomen. 45
54 Caracal evaluaties Na afloop van het vak krijgen jullie altijd een evaluatieformulier toestuurd. Vul deze ajb in! Wat ging er goed? Wat moet er beter? Hoe kunnen we zorgen dat het vak volgend jaar nog beter verloopt? Om dit soort vragen te beantwoorden is jullie feedback onmisbaar. 46
55 Verdere afronding Na afloop van de toets krijgen jullie een van mij met je volledige cijferoverzicht. Mocht er iets niet kloppen, laat het mij dan gerust weten. Mocht je lager dan een 5.5 staan, heb je het vak niet gehaald. 47
56 Verdere afronding Na afloop van de toets krijgen jullie een van mij met je volledige cijferoverzicht. Mocht er iets niet kloppen, laat het mij dan gerust weten. Mocht je lager dan een 5.5 staan, heb je het vak niet gehaald. Maar met een 4.0 of hoger, kun je in april de herkansing maken. Deze zal weer gaan over alle stof. Het cijfer van de herkansing bepaalt, samen met de cijfers voor de minitoetsen, je eindcijfer. 47
57 Vragen? 48
58 Tot slot Bedankt en veel succes op het tentamen! 49
Logica voor Informatica
Logica voor Informatica 10 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vorige keer Syntax van predikatenlogica Alfabet Termen Welgevormde formulas (wff) 2 Alfabet van de predikatenlogica
Logic for Computer Science
Logic for Computer Science 07 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vrijdag Aanstaande vrijdag is geen hoorcollege of werkcollege. De tussentoets is uitgesteld tot volgende week dinsdag.
Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.
HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Logic for Computer Science
Logic for Computer Science 06 Normaalvormen en semantische tableaux Wouter Swierstra University of Utrecht 1 Vorige keer Oneindige verzamelingen 2 Vandaag Wanneer zijn twee formules hetzelfde? Zijn er
Logica voor Informatica
Logica voor Informatica 12 Normaalvormen Wouter Swierstra University of Utrecht 1 Vandaag We hebben gezien dat er verschillende normaalvormen zijn voor de propositionele logica. Maar hoe zit dat met de
Logica voor Informatica. Propositielogica. Bewijssystemen voor propositielogica. Mehdi Dastani
Logica voor Informatica Propositielogica Bewijssystemen voor propositielogica Mehdi Dastani mmdastani@uunl Intelligent Systems Utrecht University Deductie Tot nu toe voornamelijk semantisch naar logica
Zelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
Logica 1. Joost J. Joosten
Logica 1 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 158, 030-2535579 [email protected] www.phil.uu.nl/ jjoosten (hier moet een tilde
Honours projecten BSc Informatica: twee voorstellen
Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam
Semantiek (2IT40) Bas Luttik. HG 7.14 tel.: Hoorcollege 8 (7 juni 2007)
Bas Luttik [email protected] http://www.win.tue.nl/~luttik HG 7.14 tel.: 040 247 5152 Hoorcollege 8 (7 juni 2007) Functionele talen Idee: een programma definieert reeks (wiskundige) functies. Programma
Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2
Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2 2.1 Geef de volgende zinnen weer in propositionele notatie: i Als de bus niet komt, komen de tram en de trein We voeren de volgende
Programmeermethoden NA. Week 3: Controlestructuren
Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py
Een spoedcursus python
Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het
Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3
Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3 3.1 Stel ϕ, ψ α, β γ, en ψ, α, γ χ. Indien nu bovendien bekend wordt dat χ onwaar is, maar ψ en β waar, wat weet u dan over ϕ? oplossing:
Module 3: Scratch programmeren: is het logisch of is het niet logisch?
Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2
VAN HET PROGRAMMEREN. Inleiding
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Abstraheren van modellen
Abstraheren van modellen Geert Delanote 7 maart 2005 [email protected] Software Development Methodology 1 Inhoudstafel Motivatie Denkpistes Software Development Methodology 2 Motivatie Verslag
Logica voor Informatica. Logica Toepassingen. PROLOG: Logische Programmeertaal. Mehdi Dastani
Logica voor Informatica Logica Toepassingen PROLOG: Logische Programmeertaal Mehdi Dastani [email protected] Intelligent Systems Utrecht University Programmeren met Logica Propositielogica is niet geschikt
Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief
Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Herman Geuvers Radboud Universiteit Nijmegen Technische Universiteit Eindhoven 1 Helden van de wiskunde:
Programmeren in Java 3
2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang
{ specificatie (contract) en toelichting }
Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software
Voortgezette Logica, Week 2
Voortgezette Logica, Week 2 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 164, 030-2535575 [email protected] www.phil.uu.nl/ jjoosten (hier
Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie
Theorie Beantwoord onderstaande vragen (elke vraag staat op 3 punten) door de antwoordzinnen KORT aan te vullen. 1. Wat doe je wanneer je de risico's projecteert (afschat)? Welke categorieën van risico's
Automaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Beschrijven van reguliere talen Jeroen Keiren [email protected] VU University Amsterdam 5 Februari 2015 Talen Vorig college: Talen als verzamelingen Eindige automaten:
Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1
2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ College 1 5 spelers,2 dobbelstenen Probleem met dobbelspel Per ronde werpt elke speler 1 Tom Verhoeff Technische Universiteit Eindhoven
Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
Logica voor AI. Inleiding modale logica en Kripke semantiek. Antje Rumberg. 14 november 2012
Logica voor AI Inleiding modale logica en Kripke semantiek Antje Rumberg [email protected] 14 november 2012 1 Logica voor AI Deel 1: Modale logica semantiek en syntax van verschillende modale logica
VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
{ auteur, toelichting }
Programmeren Blok A Trilogie van (programmeer)talen http://www.win.tue.nl/ wstomv/edu/ip0/ College Syntaxis (vormleer): Hoe ziet t eruit, hoe schrijf je t? Tom Verhoeff Technische Universiteit Eindhoven
Predikatenlogica in Vogelvlucht
in Vogelvlucht Albert Visser Filosofie, Faculteit Geesteswetenschappen, Universiteit Utrecht 10 oktober, 2013 1 Overview 2 Overview 2 Overview 2 Overview 3 In de propositielogica behandelen we de interne
Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica :
HOOFDSTUK 4. LOGICA Opgaven Propositionele logica en predikatenlogica 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica : a) Als de maan ichtbaar is en het niet sneeuwt, al
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Knowledge, chance, and change Kooi, Barteld
Knowledge, chance, and change Kooi, Barteld IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite from it. Please check the document version below. Document
Inleiding Wiskundige Logica
Inleiding Wiskundige Logica Yde Venema 2017/2018 c YV 2018 Institute for Logic, Language and Computation, University of Amsterdam, Science Park 904, NL 1098XH Amsterdam E-mail: yvenema@uvanl Voorwoord
Modulewijzer Tirdat01
Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4
Algoritmen en programmeren: deel 1 - overzicht
Algoritmen en programmeren: deel 1 - overzicht Ruud van Damme Creation date: 15 maart 2005 Update: 3: september 2006, 5 november 2006, 7 augustus 2007 Overzicht 1 Inleiding 2 Algoritmen 3 Programmeertalen
Ontwerp van Algoritmen: opgaven weken 3 en 4
0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima
Automaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren [email protected] VU University Amsterdam Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Variabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?
Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.
Logisch en Functioneel Programmeren voor Wiskunde D
Logisch en Functioneel Programmeren voor Wiskunde D Wouter Swierstra Doaitse Swierstra Jurriën Stutterheim Technical Report UU-CS-2011-033 Sept 2011 Department of Information and Computing Sciences Utrecht
Java Les 3 Theorie Herhaal structuren
Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een
1 Inleiding in Functioneel Programmeren
1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp
Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University
Logica voor Informatica Propositielogica Syntax & Semantiek Mehdi Dastani [email protected] Intelligent Systems Utrecht University Wat is Logica? Afleiden van conclusies uit aannames Jan Sara Petra Schuldig
Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani
Logica voor Informatica Propositielogica Normaalvormen en Semantische tableaux Mehdi Dastani [email protected] Intelligent Systems Utrecht University Literals Een literal is een propositieletter, of de
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Handout Natuurlijke Deductie
Handout Natuurlijke Deductie Peter van Ormondt 4 februari 2017 1 Inleiding In Van Benthem et al (2016, Hoofdstuk 2), hebben we redeneringen bestudeerd door te kijken naar de semantiek of betekenis van
Logica in het (V)WO. Barteld Kooi
Logica in het (V)WO Barteld Kooi Wie ben ik? Bijzonder hoogleraar logica en argumentatietheorie Ik geef al meer dan tien jaar colleges logica aan de RuG voor de opleidingen wijsbegeerte, wiskunde, (alfa-)informatica,
UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS
UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie
Logica als een oefening in Formeel Denken
Logica als een oefening in Formeel Denken Herman Geuvers Institute for Computing and Information Science Radboud Universiteit Nijmegen Wiskunde Dialoog 10 juni, 2015 Inhoud Geschiedenis van de logica Propositielogica
Modelleren en Programmeren: Prolog
Modelleren en Programmeren: Prolog Marijn Schraagen 8 januari 2016 Introductie Basiselementen Rekenen Recursie Introductie Prolog vs. Java Java is procedureel en imperatief Code beschrijft stap voor stap
colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser
colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp
Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.
Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. De puntenverdeling is 2 punten per theorie-vraag en 8 punten per oefening. Het totaal is 40. Vraag 1. Er bestaan verschillende
Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)
Tegenvoorbeeld TI1300: Redeneren en Logica College 3: Bewijstechnieken & Propositielogica Tomas Klos Definitie (Tegenvoorbeeld) Een situatie waarin alle premissen waar zijn, maar de conclusie niet Algoritmiek
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
TENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
Getallensystemen, verzamelingen en relaties
Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,
BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2
Studiewijzer BACHELOR KUNSTMATIGE INTELLIGENTIE Vak : Opleiding : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : 2015-2016 semester 1, periode 2 Coördinator(en) : dr. Maarten van Someren
Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen
Eerste programmeertaal Leren programmeren vs. een programmeertaal leren In Nijmegen: Algol68 als basis voor o.a. Modula-2 en C Voor Codi/Boxmeer: Pascal, Java, HTML/PHP Niet helemaal tevreden over Java
BEGINNER JAVA Inhoudsopgave
Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire
Practicumopgave 3: SAT-solver
Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel
Automaten. Informatica, UvA. Yde Venema
Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................
Programmeren met Arduino-software
Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en
Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie
Kennisrepresentatie & Redeneren Piter Dykstra Instituut voor Informatica en Cognitie www.math.rug.nl/~piter [email protected] 30 april 2007 INLEIDING Kennisrepresentatie & Redeneren Week1: Introductie
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
10. Controleopdrachten
Computeralgebra met Maxima 10. Controleopdrachten 10.1. Functies en operatoren voor lijsten/vectoren/arrays Een van de eenvoudigste maar belangrijkste lusachtige functies is de makelist opdracht. Voor
Inleiding programmeren
Inleiding programmeren Docent: José Lagerberg Assistenten: Robin de Vries, Jordy Perlee, Dimitri Belfor, Stephen Swatman, Erik Kooistra, Daan Kruis, Daniel Louwrink Cursusinformatie: https://staff.fnwi.uva.nl/j.m.lagerberg
Digitale Systemen (ET1 410)
Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel
Logica 1. Joost J. Joosten
Logica 1 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 158, 030-2535579 [email protected] www.phil.uu.nl/ jjoosten (hier moet een tilde
Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?
2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ 5 spelers, 2 dobbelstenen Probleem met dobbelspel College 1 Per ronde werpt elke speler 1 Kees Hemerik Tom Verhoeff Technische Universiteit
Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3
Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................
In deze les. Eerste orde logica. Elementen van EOL. Waarom eerste orde logica? Combinatie met logica. Variabelen en Kwantoren
In deze les Eerste orde logica Bart de Boer Waarom EOL? Syntax en semantiek van EOL Opfrisser Gebruik van EOL EOL in de Wumpus-wereld Waarom eerste orde logica? Eerste orde logica kan alles uitdrukken
Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie
Logica voor AI Responsiecollege Antje Rumberg [email protected] 12 december 2012 1 De taal L m van de modale propositielogica ϕ ::= p ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ Blokje en ruitje ϕ: het is noodzakelijk
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Small Basic Programmeren Text Console 2
Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:
De klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming
Recursieve talen De klasse van recursief opsombare talen is gesloten onder en. Echter, het is niet zo dat L recursief opsombaar is voor alle recursief opsombare talen L. Dit bewijzen we met behulp van
TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN
TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D. Datum: Donderdag 8 juli 4. Tijd: 14. 17. uur. Plaats: MA 1.44/1.46 Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je
