![]() |
2G1516
2G1521
|
Formal
Methods
Formella
Metoder
|
04-05, Dept. of Microelectronics and Information Technology
NEWS - ABOUT THE COURSE - COURSE PM - REQUIREMENTS - SCHEDULE AND SLIDES -STAFF - HELP - SOURCE CODE -TOOLS - LITERATURE AND LINKS - HOWTO - MAILING LIST
Using this page:
This is where to look
for
all information regarding 2G1516 and 2G1521,
autumn term 2004.
News:
It is enough to do the following replacements if you are having trouble:
Replace each "goto Movement;" with "skip; goto Movement;"
Replace each "goto TimeRunsOut;" with "skip; goto TimeRunsOut;"
Replace "goto WaitForAdvertisement;" with "skip; goto WaitForAdvertisement;"
See also handbook of studies for 2G1516 and 2G1521 respectively.
Formal methods are about rigorous verification of systems. That is, techniques that can help bring about better confidence in the systems we develop and use, beyond what pure testing can achieve. This confidence is brought about, essentially, by analysis in terms of mathematics and logics. In the course we study some important tools and techniques that have been developed for this purpose, their foundations (i.e. how and why they work), and their applications to some concrete case studies (protocols and programs). Part of the message we want to get across is that this stuff can be actually really useful. During the course students will get exposed to four main and complementary schools in the formal methods area, namely, theorem proving, model checking, Hoare logic and weakest precondition calculus, and process algebra.>
The course consists of lectures, exercise sessions, labs, and a final exam. Lectures and exercise sessions are held on the main campus. We have scheduled 12 double lectures and 12 double exercise sessions. Labs are to be done on whatever computer facilities you have available whether personal, at Campus, or at Forum. The only scheduled slots are to get your labs accepted. Make sure you start the labs as early as possible - in most cases not much prior knowledge is required to get started, and you?ll want installation troubles and so forth out of the way well before the lab is due. Also the schedule is tight, and you will find it hard going to catch up once you?re behind.
The course comes in two versions: 2G1516 (5 credits) is the version for the D and IT lines. 2G1521 (6 credits) is the version for the Software Engineering and Distributed Systems international masters program. The difference between the courses is this: 2G1521 starts a week early with an initial refresher module mainly on set notation and first-order logic. After the refresher module the two courses are identical and share lectures, exercises, labs, exams, etc.
Lab reports/presentations and the take-home exam are pass/fail, i.e. they must be produced at the scheduled time, with acceptable quality.
|
Activity
|
Time
|
Place
|
Subject
|
Reading
|
Lecturer
|
Todo
|
|
Lecture 1
(2G1521
only)
|
30 Aug, 15-17
|
D
|
Peledch
2
|
Gurov
|
||
|
Exercise 1 (2G1521
only)
|
1 Sep, 13-15
|
532/533
|
Lect 1
|
|
Aktug/Cohen
|
|
|
Lecture 2 (2G1521
only)
|
2 Sept, 15-17
|
D
|
Peledch
3.1 - 3.7
|
Gurov
|
||
|
Exercise 2 (2G1521
only)
|
7 Sep, 8-10
|
532/533
|
FOL
exercises
|
|
Aktug/Cohen
|
|
|
Lecture 3
|
7 Sept,
10-12
|
D
|
Peled ch. 3, PVS
tutorial
|
Dam
|
||
|
Exam 1 (2G1521
only)
|
9 Sept, 8-9
|
532/533
|
Sets and FOL preamble
Closed book
|
|
-
|
|
|
Exercise 3
|
9 Sept, 9-10
|
532/533
|
Introduction
to the PVS system
|
|
Aktug/Cohen
|
|
|
Lecture 4
|
9 Sept, 10-12
|
D
|
|
Dam
|
||
|
Exercise 4
|
14 Sep, 8-10
|
532/533
|
PVS exercises
|
|
Aktug/Cohen
|
|
|
Lecture
5
|
14
Sep, 10-12
|
D
|
PVS
(continued)
|
Dam
|
|
|
|
Exercise
5
|
16
Sep, 8-10
|
532/533
|
|
|
Aktug/Cohen
|
|
|
Lecture
6
|
16
Sep 10-12
|
D
|
Peled
ch 4
|
Dam
|
||
|
Lab
1 reporting
|
17
Sep, 8-17
|
TBA
|
PVS
|
|
-
|
|
|
Exercise
6
|
21
Sep, 8-10
|
532/533
|
|
|
||
|
Lecture
7
|
21
Sep, 10-12
|
D
|
Peled
ch 5
|
Dam
|
||
|
Exercise
7
|
23
Sep, 8-10
|
532/533
|
|
|
Aktug/Cohen
|
|
|
Lecture
8
|
24
Sep, 13-15
|
D
|
Lecture 7 cont'd
|
Dam
|
|
|
|
Exercise
8
|
28
Sep, 8-10
|
532/533
|
LTL and
Buchi automata
|
|
Aktug/Cohen
|
.
|
|
Lecture
9
|
28
Sep, 10-12
|
D
|
Holtzmann
ch. 8 and 11. Peled ch 6
|
Dam
|
|
|
|
Lab
2 reporting
|
30
Sep, 8-17
|
TBA
|
SPIN
|
|
-
|
|
|
Exercise
9
|
1
Oct, 8-10
|
538/539
(Obs!)
|
|
|
Aktug/Cohen
|
|
|
Lecture
10
|
1
Oct, 10-12
|
E
(Obs!)
|
Peled ch
7-7.5
|
Dam
|
||
|
Exercise
10
|
5
Oct, 8-10
|
532/533
|
|
|
Aktug/Cohen
|
|
|
Lecture
11
|
5
Oct, 10-21
|
D
|
Floyd/Hoare logic |
Peled ch 7-7,5
|
Dam
|
|
|
Exercise
11
|
8
Oct, 8-10
|
532/533
|
|
|
Aktug/Cohen
|
|
|
Lecture
12
|
8
Oct, 10-12
|
D
|
Detlefs et al: Extended Static Checking |
Dam
|
||
|
Exercise
12
|
11
Oct, 8-10
|
532/533
|
|
|
Aktug/Cohen
|
|
|
Lecture
13
|
11
Oct, 10-12
|
D
|
CCS, bisimulations |
|
Dam
|
|
|
Lecture
14
|
12
Oct, 8-10
|
E
(Obs!)
|
CCS,
process algebra, fm in industry
|
|
Dam
|
|
|
Lab
4 reporting
|
13
Oct, 8-17
|
TBA
|
ESC/Java
|
|
|
|
|
Exam
|
18
Oct 15-20
|
431, 432, 530
|
|
|
|
|
Labs
You are free to do the labs where it suits you, on own laptops, or in some of the machine halls at Campus or at Forum. For D students, most tools are preinstalled in Stacken. Generally the tools presuppose general c.s. literacy, including unix/linux and emacs.
Mads Dam, email: mfd at imit.kth.se, phone: 790 4123, mobile: 0708 76 44 40
Course assistants:
Irem Aktug, email: irem@imit.kth.se, phone: 790 4265, office: 8th floor, Forum building,elevator C.
Mika Cohen, email mikac@imit.kth.se, phone: 790 4265, office: 8th floor, Forum building,elevator C.
Tuesday 13:00-14:00
Thursday 17:00-18:00
Course Committee:
2G1521:
Sheak Rashed Haider Noori, noori@kth.se
Kaveh Piroozram, kvram@bredband.net
2G1516:
Morten Nielsen, it01_mni@it.kth.se
Minutes:
Source Code:
Tools:
If you experience problems with ESC/Java, it may be that it is incompatible
with your version of Java. Check Task 3 in the ESC/Java lab assignment
for hints on how to get around this problem.
Here is a patched CWB 7.1 (Linux
gzipped executable, Solaris
gzipped executable) that produces the correct answer to the first command
on p. 15 of the "CWB Workout."
Literature and Links:
Concise Promela Reference by Rob Gerth,
Design
and Validation of Computer Protocols, Gerard J. Holtzmann, Prentice Hall, 1991.
Howto:
We recommend that you use Emacs to edit your CWB sources. If you do
so, we also recommend that you install the corresponding Emacs
CWB mode.
OBS: It is possible, in principle, to install CWB under Windows, but
be warned that it is not that easy. To start with, you'll need a running
SML system (SML/NJ
has a Windows port but there are other options too). Then, you should try
using any of the heap images supplied here.
If this does not work, then go get a custom
build file and follow the instructions therein.
Previous Exams:
Mailing list:
We have set up a mailing
list for general notifications among students and staff. Its address is
"formal-methods at imit.kth.se". You can find information on how
to join the mailing list here.
All mails sent to this list are stored in the list
archive.
You can use the mailing list to share a question/comment that may be
of interest to other students. Please, use the list discretionally, i.e.
avoid discussing personal issues or matters outside the subject of this
course.