Time: Tuesday and Thursday, 9:30-10:45
Place: 1103 Siebel Center
Professor: José Meseguer
Office Hours: after class
In problem 1, it is helpful to comment out the Multiset sort and the operations involving it. This should avoid many of the spurious errors generated by
the ITP. In problem 4, the sorts State and Nat conflict with the model checker sorts with the same name. Those sorts may be renamed as needed to avoid syntax errors. Finally, in problem 6, the if statement without a body in the Listener class causes a parser error. This error may be fixed by adding an extra {} after the if statement. Thanks to Robert Blake for identifying these errors.
The JavaFAN slides have been updated. You may download the latest version from the lecture notes at the bottom of the page. Additionally, on the ITP exercises, Maude may print out many advisories. These are harmless, and can safely be ignored. If you want, you can disable them, by typing the command “set show advisories off .” before running ITP commands.
The final is now available, and is due at 5pm on Tuesday, Dec. 11. The final will require using the Maude Inductive Theorem Prover — both the original one, and the version from homework 6 with support for Java. Additionally, the final will require using JavaRL which can be downloaded from http://fsl.cs.uiuc.edu/index.php/Rewriting_Logic_Semantics_of_Java. An introduction to JavaRL can be found in the lecture notes for 12/04. The files for the final are listed below:
The theoretical exercises in homework 6 have been updated a second time in the download below. Please download the homework again to get the updates.
The theoretical exercises in homework 6 have been updated in the download below. Please download the homework again to get the updates.
Download as PDF. Due on Nov. 27th. Exercise 4
requires the Maude ITP as used in previous homeworks while exercises 5 and 6
require a special version of the ITP that understands the Java semantics. This
version of the ITP requires Maude 2.1.1, which is available for download from here and also
installed on the CSIL machines at
/home/class/fa07/cs476/bin/maude-2.1.1. In addition, you should
download the ITP archive cs476_hw6.tar.gz available below along
with the Maude modules for exercise 4:
Download as PDF. Due on Nov. 6th. You should download the most recent version of the ITP before doing the exercises in this homework. The homework references the following modules and ITP goals:
Download as PDF. Due on Oct. 23rd. The homework references the following module and ITP goal:
The version of the Maude SCC on the course webpage has been updated from an obsolete older version. If you encounter errors when running the SCC, you should redownload the latest version.
The version of Maude used for sufficient completeness
checking has been updated. You may now run the
SCC with Maude 2.3 using the command
/home/class/fa07/cs476/bin/maude
rather than
/home/class/fa07/cs476/bin/maude-2.2.
See the Maude SCC description for more details.
Download as PDF. Due on Oct. 9. This homework references several Maude modules available below:
Download as PDF. Due on Sep. 25.
Examines formal methods for demonstrating correctness and other properties of programs; includes an overview of predicate calculus. Topics include: invariant assertions, Hoare axiomatics, well-founded orderings for proving termination, structural induction, computational induction, data structures, and parallel programs.
All of the software used in this course is based on Maude, a reflective programming language based on term rewriting. In addition to Maude itself, we will use several tools written in Maude. In order to make things simpler for students, all of the software used in this course is installed on the CSIL Linux machines. If you prefer, you can also download and install the software on a PC.
/home/class/fa07/cs476/bin/maude and also available for download./home/class/fa07/cs476/lib/maude-2.3/full-maude.maude
and also available for download.
If it is placed in the same directory as the maude executable (as it is on the
csil machines), then it may be loaded by typing “load full-maude”
within Maude./home/class/fa07/cs476/lib/maude-2.3/crchc2a.maude
and also available for download.
If it is placed in the same directory as the maude executable (as it is on the
csil machines), then it may be loaded by typing “load crchc2a”
within Maude after loading Full Maude./home/class/fa07/cs476/bin/maude.
Otherwise, you must download the executable from the website. Once you have the
proper Maude version, download scc.maude. After
installing this file into the same directory as the Maude executable, load
the module you with to check, type “load scc” to
load the scc, and type “(scc ModuleName .)” to check the module
with the given name . See the tool website for more detailed instructions.
Note that the SCC tool uses core Maude modules — not Full Maude modules.
You need to remove the parenthesis around Maude modules before loading them.
All the assignments should be solved by each student individually. Although it is of course allowable to discuss contents of the course among students, such discussions should not include approaches to solve homework problems. Any such collaboration in homework would constitute a violation of the university's academic integrity.
| No | Date | Last Updated | Slides | |||||
| 1 | 08/23/12 | 08/28/07 | lec01_aug_23.pdf
| |||||
| 2 | 08/28/12 | 08/28/07 | lec02_aug_28.pdf
| |||||
| 3 | 08/30/12 | 08/28/07 | lec03_aug_30.pdf
| |||||
| 4 | 09/04/12 | 09/06/07 | lec04_sep_04.pdf
| |||||
| 5 | 09/06/12 | 09/06/07 | lec05_sep_06.pdf
| |||||
| 6 | 09/11/12 | 09/06/07 | lec06_sep_11.pdf
| |||||
| 7 | 09/13/12 | 09/17/07 | lec07_sep_13.pdf
| |||||
| 8 | 09/20/12 | 09/24/07 | lec08_sep_20.pdf
| |||||
| 9 | 09/25/12 | 09/24/07 | lec09_sep_25.pdf
| |||||
| 10 | 09/27/12 | 10/21/07 | lec10_sep_27.pdf
| |||||
| 11 | 10/02/12 | 10/21/07 | lec11_oct_02.pdf
| |||||
| 12 | 10/04/12 | 10/03/07 | lec12_oct_04.pdf
| |||||
| 14 | 10/11/12 | 10/09/07 | lec14_oct_11.pdf
| |||||
| 15 | 10/16/12 | 10/10/07 | lec15_oct_16.pdf
| |||||
| 16 | 10/18/12 | 10/18/07 | lec16_oct_18.pdf
| |||||
| 17 | 10/23/12 | 10/23/07 | lec17_oct_23.pdf
| |||||
| 18 | 10/25/12 | 10/23/07 | lec18_oct_25.pdf
| |||||
| 19 | 10/30/12 | 10/23/07 | lec19_oct_30.pdf
| |||||
| 20 | 11/01/12 | 11/01/07 | lec20_nov_01.pdf
| |||||
| 21 | 11/06/12 | 11/06/07 | lec21_nov_06.pdf
| |||||
| 22 | 11/08/12 | 11/06/07 | lec22_nov_08.pdf
| |||||
| 23 | 11/13/12 | 11/06/07 | lec23_nov_13.pdf
| |||||
| 24 | 11/15/12 | 11/12/07 | lec24_nov_15.pdf
| |||||
| 25 | 11/27/12 | 11/12/07 | lec25_nov_27.pdf
| |||||
| 26 | 11/29/12 | 11/28/07 | lec26_nov_29.pdf |
|||||
| 12/04/07 | 12/09/07 | javafan.pdf
| ||||||
| 27 | 12/06/12 | 12/03/07 | lec27_dec_06.pdf
|