Erinevus lehekülje "Software Synthesis and Verification" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
(Uus lehekülg: ''''Ainekood''': ITI0130 <br> '''Link''': http://courses.cs.ttu.ee/pages/ITI0021<br> '''Õppejõud''': prof. Jüri Vain<br> '''Kontakt''': juri.vain ätt ttu.ee, ICT-418, Vastuv...')
 
 
(ei näidata 6 kasutaja 250 vahepealset redaktsiooni)
1. rida: 1. rida:
'''Ainekood''': ITI0130 <br>
+
'''Course code''': ITI8531 <br>
'''Link''': http://courses.cs.ttu.ee/pages/ITI0021<br>
+
'''Link''': http://courses.cs.ttu.ee/pages/ITI0130<br>
  
'''Õppejõud''': prof. Jüri Vain<br>
+
'''Lecturer''': prof. Jüri Vain <br>
'''Kontakt''': juri.vain ätt ttu.ee, ICT-418, Vastuvõtu aeg: kolmapäeval kl. 16:00 - 17:00 eelneval kokkuleppel e-maili kaudu<br>
+
'''Contact''': juri.vain ätt ttu.ee, ICT-418 <br>
  
 +
<!-- '''Lecturer''': Leonidas Tsiopoulos <br>
 +
'''Contact''': leonidas.tsiopoulos ätt ttu.ee, ICT-418 <br>
  
Kursus varasematel aastatel: [http://vana.cs.ttu.ee/tiki-index.php?page=ITI0020 2013]<br>
+
'''Lecturer''': Maksym Bortin <br>
 +
'''Contact''': maksym.bortin ätt ttu.ee, room B404 in the Cybernetics Building <br>
  
 +
'''Lab assistant''':
 +
Evelin Halling <br>
 +
'''Contact''': evelin.halling ätt ttu.ee <br>
 +
-->
  
==Teated 2014==
 
  
* Loeng: Kolmapäeval kl. 14:00 - 15:30 ruumis CYB - VEENUS (õppejõud prof. Jüri Vain)
+
Previous courses: [http://vana.cs.ttu.ee/tiki-index.php?page=ITI0060 2014]
* Praktikumid:
+
<br>
** Neljapäeval kl. 14:15-15:45 ruumis ICT-402 (IAPB54, õppejõud Evelin Halling) ja ruumis ICT-404 (IAPB55, õppejõud Tiina Zingel)
 
** Neljapäeval kl. 16:00-17:30 ruumis ICT-401 (IAPB51 ja IAPB52, õppejõud prof. Jüri Vain ja Evelin Halling) ja ruumis ICT-404 (IAPB53, õppejõud Tiina Zingel)
 
* '''Eksam'''
 
** '''07.01.2015, kell 14.00 Akadeemia tee 15A ruumis ICT-411'''
 
** '''21.01.2015, kell 14.00 Akadeemia tee 15A ruumis ICT-411 (NB! vastu tulles paljudele soovidele on viimase eksami aeg nihutatud 14-ndalt 21-le jaanuarile)'''
 
* '''Programmeerimistööde kaitsmine'''
 
** '''07.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403'''
 
** '''21.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403'''
 
  
==Hindamiskriteeriumid==
 
  
* Hindelise arvestuse eelduseks on praktikumitööde ja kodutöö esitamine ning koondhindeks on testide keskhinne.
+
==Time and place==
* Praktikumi- ja kodutööd tuleb esitada Moodle's ja kaitsta praktikumi ajal TTÜ arvutiklassis. E-postiga saadetud töid ei arvestata.
 
* Arvestusel osalemine ei ole kohustuslik nendele, kes on edukalt kaitsnud praktikumitööd ja kodutöö ning sooritanud 3 testi igaüks tulemusega 51% ja enam.
 
* Järeltööd testidele 1-3 toimuvad semestri viimaste loengute aegadel.
 
* Järeltööde sooritamise tingimused:
 
** Esimesel katsel tuleb teha järeltööd konkreetselt nendele testidele, mille tulemus oli alla 51%.
 
** Kui ka järeltöö ebaõnnestub, tuleb sooritada koondtöö kursuse kogu materjali peale.
 
  
* Arvestuse hinnet tõstab see, kui kodutööna valminud kabeprogramm saavutab viimase praktikumi ajal toimuval võistlusel I-III koha: I koht +3 palli; II koht +2 palli; III koht +1pall.
+
Lectures: Thursdays 10:00, ICT-315 <br>
 +
Labs: Thursdays 12:00, ICT-404 - Jüri Vain
  
* '''Testide ja praktikumide jooksvad tulemused asuvad Moodles.'''
+
'''New!'''<br>
 +
* Due to CORONA restrictions course is entirely running over Teams channel "Software synthesis and Verification"
 +
'''Exams: (To Be Updated) '''
 +
*  ... <br>
 +
** Exam is for those who have not passed any of the tests or want to improve their final mark
 +
<!--* ... '''
  
==Loengud==
+
-->
* [[Media:ITI0021_lecture1_2014.pdf|Loeng 1]]: Mis on loogiline programmeerimine?
 
* [[Media:ITI0021_lecture2_1_2014.pdf|Loeng 2-1]]: Alusmõisteid loogikast I: Lausearvutus
 
* [[Media:ITI0021_lecture2_2_2014.pdf|Loeng 2-2]]: Alusmõisteid loogikast II: Predikaatarvutus
 
* [[Media:ITI0021_lecture3_2014.pdf|Loeng 3]]: Resolutsioon ja unifitseerimine
 
* [[Media:Loeng_4.pdf|Loeng 4]]:Loogilise programmeerimise keel Prolog
 
* Test 1 (1.10.2014): Loengute 1-4 materjalile
 
* [[Media:Loeng_5.pdf|Loeng 5]]:Loogilise programmeerimise andmestrutuurid
 
* [[Media:ITI0021_Loeng_7.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine Prologis
 
* [[Media:ITI0021_Loeng_8.pdf|Loeng 7]]: DCG grammatika reeglid ja loomuliku keele parsimine
 
* Test 2 (29.10.2014): Listioperatsioonide programmeerimine rekursiooni abil
 
* [[Media:ITI0021_Loeng_9.pdf|Loeng 9]]: Loogikate LA ja CTL interpreteerimine
 
* [[Media:ITI0021_Lecture_10.pdf|Loeng 10]]: Constraint Logic Programming
 
* Test 3 (26.11.2014): Loengute 6-9 materjal
 
* Järeltöö I (03.12.2014)
 
* Järeltöö II (10.12.2014)
 
  
<!-- * Loeng 4: Test 1: Loogilise programmeerimise põhimõisted
+
==Lecture plan - To be updated for Module II and III==
* Loogilise programmeerimise andmestruktuurid
+
* [[Media:ITI8531_Lecture_1_18_Intro.pdf|Lecture 1]]: Introduction
* Hulgateooria ja algebra mõistete programmeerimine Prologis
+
* [[Media:ITI8531_Lecture_2_2022_transition_systems.pdf|Lecture 2]]: Modelling state transition systems
* DCG grammatika reeglid ja loomuliku keele parsimine
+
* [[Media:ITI8531_Lecture_3_2022_CTL.pdf|Lecture 3]]: Temporal logic CTL*
* Loeng 9: Listioperatsioonide programmeerimine rekursiooni abil (harjutus Test2-ks)
+
* [[Media:ITI8531_Lecture_4_18_modelchecking.pdf|Lecture 4]]: CTL model checking
* Loeng 10: Test 2: Listioperatsioonide programmeerimine rekursiooni abil
+
* [[Media:ITI8531_Lecture_5_22_symb_modelchecking.pdf|Lecture 5]]: Symbolic model checking
* Predikaat- ja temporaalloogika valemite interpreteerimine
+
* [[Media:ITI8531_Lecture_6_22_TA_and_TCTL.pdf|Lecture 6]]: Model checking TCTL
* Prologi integreerimine teiste programmeerimiskeelte ja keskkondadega
+
* Practicing for Test 1: Model checking  [[Media:ITI8531_Exercises_1_2016.pdf|Exercises]]: (05.03.2019)
* Kitsendustega loogiline programmeerimine
+
* Test 1: Model checking ('''12.03.2019''')
* Loeng 14: Test 3: Loengute 6-8,11-13 materjal
+
* [[Media:ITI8531_Lecture_6.1_18_Specifications.pdf|Lecture 6]]: Program specifications (19.03.2019)
* Loeng 15: Testide 1 ja 2 järeltööd
+
* [[Media:ITI8531_Lecture_6.2_18_verification.pdf|Lecture 7]]: Proving partial correctness of programs (19.03.2019)
* Loeng 16: Koondjäreltöö * -->
+
* [[Media:ITI8531_Lecture_7_18_proving (2).pdf|Lecture 8]]: Proof techniques (1): derived rules, backwards proof, annotations (26.03.2019)
 +
* [[Media:ITI8531_Lecture_8_18_total_correctness.pdf|Lecture 9]]: Proving total correctness of while-programs (26.03.2019)
 +
* [[Media:ITI8531_Lecture_9_2017_parallel_programs.pdf|Lecture 10]]: Verifying nondeterministic and parallel programs  (02.04.2019)
 +
* Practicing for Test 2: Deductive verification of non-deterministic and parallel programs (04.04.2019 at lab time)
 +
** [[Media:ITI8531_Genzen_1st_order_calculus.pdf|Genzen 1st order calculus]]: Genzen 1st order sequent calculus (proof rules)
 +
* Test 2: Deductive verification of sequential, non-deterministic and parallel programs ('''09.04.2019,at 12.00''')
 +
* [[Media:Software Synthesis - Overview of Temporal Synthesis - Lecture 11.pdf|Lecture 11]]: Software synthesis I (16.04.2019)
 +
* [[Media:Software Synthesis - Introduction to Acacia - Lecture 12.pdf|Lecture 12]]: Software synthesis II (23.04.2019)
 +
* [[Media:Software Synthesis - LTL Synthesis and Acacia II - Lecture 13.pdf|Lecture 13]]: Software synthesis III (30.04.2019)
 +
* [[Media:Software Synthesis - LTL Synthesis with Acacia part III - Lecture 14.pdf|Lecture 14]]: Software synthesis IV (7.05.2019)
 +
* [[Media:Software Synthesis - Lecture V - Recap.pdf|Lecture 15]]: Software synthesis (recap) and practicing for test  (14.05.2019)
 +
* Test 3: Software synthesis ('''16.05.2019''')
 +
* Retake of Test 2, 2nd task: ('''21.05.2019 at 12.00 (New!)''')
 +
** [[Media:Test_2_2019_lahendus.pdf|Eample_Solution]]: ('''Example solution of Task2 (NEW!)''')
  
==Praktikumid==
+
==Labs - To be updated from lab 4 onwards==
* Praktikum 1: Tutvumine loogilise programmeerimise keskkonnaga [http://www.swi-prolog.org/ SWI-Prolog]
+
* Exercise Environment for Module II:
** [[Media:ITI0021_Praktikum_1_juhend.pdf|Praktikumi 1 juhend]]
+
** Download and install the environment: [[Media:HoareLogic.tar| Hoare Logic environment]]
** Näidismaterjal: [[Media:ITI0021_Praktikum_1.pdf|Objektid ja nende omadused]]  
+
* Lab 1: Introduction to modelling in UPPAAL
* Praktikum 2: Prologi teadmusbaasi koostamine
+
** Slides: [[Media:UPPAAL Tutorial.pdf|UPPAAL introduction]]
** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi 2 juhend]]
+
** Model: [[Media:LightController.xml|Light Controller Model]]
** Näidismaterjal: [[Media:ITI0021_Praktikum_2.pl|Teadmusbaas]]
+
** Query: [[Media:LightControllerQuery.q|Light Controller Query]]
* Praktikum 3: Rekursiooni programmeerimine: sügavuti otsing suunatud graafil
+
** For More reading, refer below links:
** [[Media:ITI0021_Praktikum_3_juhend.pdf|Praktikumi 3 juhend]]
+
*** [http://www.uppaal.org/ UPPAAL website]
** Näidismaterjal: [[Media:ITI0021_Praktikum_3_Marsruutide_leidmine.pl|Teadmusbaas]]
+
*** [http://www.it.uu.se/research/group/darts/uppaal/small_tutorial.pdf Small tutorial on UPPAAL]
* Praktikum 4: Listioperatsioonide programmeerimine
+
*** [http://www.it.uu.se/research/group/darts/papers/texts/new-tutorial.pdf Tutorial on UPPAAL]
** [[Media:ITI0021_Praktikum_4_juhend.pdf|Praktikumi 4 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_4_Listid.pl|Listid]]
 
* Praktikum 5: Klasside hierarhia ja pärismisreeglite programmeerimine
 
** [[Media:ITI0021_Praktikum_5_juhend.pdf|Praktikumi 5 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_5_Klassid.pl|Klassid ja pärimine]]
 
* Praktikum 6: Hulgateooria ja algebra mõistete programmeerimine
 
** [[Media:ITI0021_Praktikum_6_juhend.pdf|Praktikumi 6 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_6.pl|Hulgad ja relatsioonid]]
 
* Praktikum 7: Loomuliku keele parsimine
 
** [[Media:ITI0021_Praktikum_7_juhend.pdf|Praktikumi 7 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_7.pl|Parseri näide]]
 
* Praktikum 8: Faktide hulgal otsingu programmeerimine
 
** [[Media:ITI0021_Praktikum_8_juhend.pdf|Praktikumi 8 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_8_kabe.pl|Otsing kabe näitel]]
 
* Praktikum 9: Tõeväärtuse leidmine lause- ja predikaatarvutuses
 
** [[Media:ITI0021_Praktikum_9_juhend.pdf|Praktikumi 9 juhend]]
 
** Näidismaterjal: [[Media:ITI0021_Praktikum_9_LA_solverN.pl|Lausearvutuse solver]]
 
* Praktikum 10: Temporaalloogika valemite interpreteerimine
 
** [[Media:ITI0021_Praktikum_10_juhend.pdf|Praktikumi 10 juhend]]
 
* Praktikum 11. Iseseisev töö koduülesandega: Kabe programmeerimine (20.11.14)
 
* Praktikum 12: Iseseisev töö koduülesandega: Kabe programmeerimine (27.11.14)
 
==Kodutöö 2014==
 
* Kodutööks on kabeprogrammi programmeerimine Prologis
 
* Kabe
 
** [[Media: Kodutöö_kabe_2013.pdf |Tööülesande kirjeldus]]
 
** Reeglid: [http://en.wikipedia.org/wiki/Russian_checkers|Russian checkers]
 
** Programm [[Media:arbiiter.pl |Arbiiter juhib mängu]]
 
** Programm [[Media:kabeprogramm.pl | Näidisprogramm]]<br>
 
'''Kodutöö esitamise tähtaeg on eelviimane ja viimane praktikum, mil toimub kabeturniir (programmikood panna moodle-sse)'''
 
  
 +
* Lab 2: Validation (simulation) and verification (automatic model-checking) in UPPAAL
 +
** Slides: [[Media:New_Lab2_MODEL_CHECKING.pdf|Model Checking introduction]]
 +
** Model: [[Media:Atm_system.xml|ATM System Model]]
 +
** Query: [[Media:Atm_system_query.q|ATM System Query]]
  
==Lisamaterjalid==
+
* Lab 3: Understanding of Clocks and State Space Explosion in UPPAAL
* [http://www.learnprolognow.org/lpnpage.php?pageid=top Learn Prolog Now]
+
** Slides: [[Media:Lab3_Lab_Lecture.pdf|Uppaal Modelling Language]]
* [http://www.youtube.com/watch?v=09zlcS49zL0 Web Testing with Logic Programming - Daniel Gregoire]
+
** Model: [[Media:Jobber.xml|JobShop Model with three possible scenarios]]
 +
** Query: [[Media:Jobber_Query1.q|JobShop Query]]
 +
 
 +
* Lab 4: Assignment I: Reader-Writer (unreliable) communication protocol
 +
** Slides: [[Media:ITI0130_Lab2_2015.pdf|Example and explanation]]
 +
 
 +
* Lab 5: Assignment II: Leader election protocol
 +
** Slides: [[Media:ITI0130_Lab3_IEEE1394.pdf|Explanation]]
 +
** [http://perso.ens-lyon.fr/pierre.lescanne/ENSEIGNEMENT/REECRITURE/ABRIAL/sldp.ieee1394.pdf The Leader Election Protocol (IEEE 1394)]
 +
** [http://link.springer.com/article/10.1023%2FA%3A1008764923992 Verification of a Leader Election Protocol: Formal Methods Applied to IEEE 1394]
 +
** Reference solution: [[Media:FASDS.pdf|Chapter 12, page 172]]
 +
 
 +
* Lab 13:
 +
** [http://web.iitd.ac.in/~sumeet/slide3.pdf LTL]
 +
* Lab 14:
 +
** [[Media:ITI8531_LTL_exercises.pdf|Exercises]]
 +
** [http://goal.im.ntu.edu.tw/wiki/doku.php GOAL tool]
 +
** [http://www.lsv.fr/~gastin/ltl2ba/ LTL2BA]
 +
* Lab 15
 +
** [[Media:ITI8531_LTL_assignments.pdf|LTL Assignment]]
 +
** [[Media:Software Synthesis and Verification LTL Assignment-Updated Spec.pdf|Updated Spec for LTL Synthesis Assignment]]
 +
** [[Media:Guidelines for Lab Exercise Report for Synthesis with Acacia.pdf|Guidelines for Assignment]]
 +
** [[Media:Acacia Installation Commands.pdf|Acacia Tool Installation Commands]]
 +
** [[Media:Acacia_Manual.pdf|Acacia Tool Installation Guidelines and Manual for Command Line Options]]
 +
 
 +
<!--
 +
* Lab 4-5: Implementation of Mutual Exclusion Algorithms in UPPAAL
 +
** Slides: [[Media:Lecture_5.pdf|The Mutual Exclusion Problem and Algorithms]]
 +
** Model: [[Media:Attempt1_Model.xml|First Attempt Algorithm Model]]
 +
** Query: [[Media:Attempt1_query.q|First Attempt Query]]
 +
 
 +
* Lab 6: Lab Assignment: ATM System, JobShop, Implementation of Mutual Exclusion Algo.
 +
** Slides: [[Media:Lab_Assignments.pdf|Tasks and explanation]]
 +
 
 +
* Lab 7-8: Assignment: Reader-Writer (unreliable) communication protocol
 +
** Slides: [[Media:ITI0130_Lab2_2015.pdf|Example and explanation]]
 +
 
 +
* Lab 9: Assignment: Elevator Control
 +
** Slides: [[Media:ElevatorControl_V1_29062017.pdf|Example and explanation]]
 +
** Slides: [[Media:ModellingRequirement.pptx|Modelling Requirements]]
 +
 
 +
* Lab 10: Final Assessment on 17 May 2018
 +
** Lab defending of all given assignment.
 +
-->
 +
 
 +
<!--
 +
* Lab 4: Assignment 1: Coffee Machine
 +
** Slides: [[Media:ITI0130_Lab1_Coffee_machine_2015.pdf|Example and explanation]]
 +
** Model: [[Media:ITI0130_Coffee.xml|Coffee machine]]
 +
** Query: [[Media:ITI0130_Coffee.q|Coffee machine]]
 +
 
 +
* Lab 6: Assignment 3: Leader election protocol
 +
** Slides: [[Media:ITI0130_Lab3_IEEE1394.pdf|Explanation]]
 +
** [http://perso.ens-lyon.fr/pierre.lescanne/ENSEIGNEMENT/REECRITURE/ABRIAL/sldp.ieee1394.pdf The Leader Election Protocol (IEEE 1394)]
 +
** [http://link.springer.com/article/10.1023%2FA%3A1008764923992 Verification of a Leader Election Protocol: Formal Methods Applied to IEEE 1394]
 +
** Reference solution: [[Media:FASDS.pdf|Chapter 12]]
 +
* Lab 7: Lab Exam
 +
** Homework defenses
 +
 
 +
 
 +
* Lab 7: KeY Introduction
 +
** Installation: [[Media:ITI0130_Lab7_2016_KeY.pdf|KeY Installation]]
 +
** Bank example: [[Media:ITI0130_Lab7_2016_Bank.zip|Bank example]]
 +
** Bank JML: [[Media:ITI0130_Lab7_2016_Bank_JML.zip|Bank JML]]
 +
 
 +
 
 +
* Lab 5: Design-by-Contract
 +
** [https://github.com/nhatminhle/cofoja Contracts for Java (Cofoja)]
 +
** [https://code.google.com/p/cofoja/w/list Cofoja wiki page]
 +
** [[Media:ITI0130_Lab5_cofoja_setup.pdf|Installation instructions]]
 +
** [[Media:ITI0130_Lab5_FM_cofoja.zip|Sample code]]
 +
 
 +
* Lab 6: Design-by-Contract
 +
** [[Media:ITI0130_Lab5_db.zip|Database]]
 +
 
 +
* Lab 7: Design-by-Contract
 +
** [[Media:ITI0130_Lab7_db2.zip|Secure Database]]
 +
 
 +
* Lab 8: Design-by-Contract
 +
** [[Media:ITI0130_Lab7_assignment_cofoja.zip|Cofoja Assignment]]
 +
*** [[Media:ITI0130_Lab7_assignment_Instruction.pdf|Instructions]]
 +
 
 +
* Lab 9: Key Tool
 +
** [[Media:ITI0130_Lab8_Key_Instruction.pdf|Installation]]
 +
 
 +
* Lab 10: Key Tool
 +
** [[Media:ITI0130_Lab9_Key_practise.zip|Key Examples]]
 +
 
 +
* Lab 11: Key Tool
 +
** [[Media:ITI0130_Lab11_Key_practise.zip|JML]]
 +
** [[Media:ITI0130_Lab11_summax.zip|SumAndMax Example]]
 +
 
 +
* Lab 12: Key Tool
 +
** [[Media:ITI0130_Lab12_Key_assignment.zip|Key assignment]]
 +
 
 +
* Lab 13: Key Tool
 +
** [[Media:ITI0130_Lab13_Bank_example_solution.zip|Solution to Bank example]]
 +
-->
 +
 
 +
== Exercises==
 +
* [[Media:Test 1_2017for practicing.pdf|Exercises 1]]: Model checking (explicit and symbolic state)
 +
* [[Media:Exercises_2.pdf|Exercises 2]]: Partial correctness of WHILE-programs
 +
** [[Media:while_program_example_2015.pdf|Example 1]]: Partial correctness of WHILE-loop
 +
** [[Media:DEDUCTIVE_VERIFICATION_Example_2.pdf|Example 2]]: Partial correctness of FOR-loop
 +
* Partial correctness of non-deterministic and parallel programs
 +
** [[Media:Exercises__3.pdf|Exercises 3.1]]: Partial correctness of non-deterministic and parallel programs
 +
** [[Media:Test3_exercises_solutions.pdf|Exercises 3.2]]: Partial correctness of non-deterministic and parallel programs
 +
** [[Media:Harjutused_3.pdf|Exercises 3.3]]: Parallel programs with message passing
 +
 
 +
==Resources==
 +
* [http://www.fmeurope.org/ Formal Methods Europe]
 +
* [[Media: 1st_order_proof_rules.pdf|Genzen's proof system for 1st order logic]]:
 +
* [[Media: Proof_rules_of_Hoare_logic.pdf|HL proof rules for sequential and parallel programs]]:
 +
* [[Media: Invariants.pdf|Some guidlines how to find invariants]]
 +
* Mike Gordon's lecture notes on Hoare logic [http://www.lsv.ens-cachan.fr/~demri/Gordon14.pdf]

Viimane redaktsioon: 9. veebruar 2023, kell 09:58

Course code: ITI8531
Link: http://courses.cs.ttu.ee/pages/ITI0130

Lecturer: prof. Jüri Vain
Contact: juri.vain ätt ttu.ee, ICT-418


Previous courses: 2014


Time and place

Lectures: Thursdays 10:00, ICT-315
Labs: Thursdays 12:00, ICT-404 - Jüri Vain

New!

  • Due to CORONA restrictions course is entirely running over Teams channel "Software synthesis and Verification"

Exams: (To Be Updated)

  • ...
    • Exam is for those who have not passed any of the tests or want to improve their final mark

Lecture plan - To be updated for Module II and III

  • Lecture 1: Introduction
  • Lecture 2: Modelling state transition systems
  • Lecture 3: Temporal logic CTL*
  • Lecture 4: CTL model checking
  • Lecture 5: Symbolic model checking
  • Lecture 6: Model checking TCTL
  • Practicing for Test 1: Model checking Exercises: (05.03.2019)
  • Test 1: Model checking (12.03.2019)
  • Lecture 6: Program specifications (19.03.2019)
  • Lecture 7: Proving partial correctness of programs (19.03.2019)
  • Lecture 8: Proof techniques (1): derived rules, backwards proof, annotations (26.03.2019)
  • Lecture 9: Proving total correctness of while-programs (26.03.2019)
  • Lecture 10: Verifying nondeterministic and parallel programs (02.04.2019)
  • Practicing for Test 2: Deductive verification of non-deterministic and parallel programs (04.04.2019 at lab time)
  • Test 2: Deductive verification of sequential, non-deterministic and parallel programs (09.04.2019,at 12.00)
  • Lecture 11: Software synthesis I (16.04.2019)
  • Lecture 12: Software synthesis II (23.04.2019)
  • Lecture 13: Software synthesis III (30.04.2019)
  • Lecture 14: Software synthesis IV (7.05.2019)
  • Lecture 15: Software synthesis (recap) and practicing for test (14.05.2019)
  • Test 3: Software synthesis (16.05.2019)
  • Retake of Test 2, 2nd task: (21.05.2019 at 12.00 (New!))

Labs - To be updated from lab 4 onwards


Exercises

  • Exercises 1: Model checking (explicit and symbolic state)
  • Exercises 2: Partial correctness of WHILE-programs
  • Partial correctness of non-deterministic and parallel programs
    • Exercises 3.1: Partial correctness of non-deterministic and parallel programs
    • Exercises 3.2: Partial correctness of non-deterministic and parallel programs
    • Exercises 3.3: Parallel programs with message passing

Resources