Softwareprodukte sind in den
vergangenen Jahren ein integraler Bestandteil unseres alltäglichen
Lebens geworden. Anwendungen reichen von Steuerungsmodulen in
Alltagsprodukten, e-Commerce, Telephonnetzen, bis hin zu
Automobilkonstruktion und Luftfahrtkontrolle. Die wachsende Komplexität
und umfassendere Verwendung dieser Produkte macht es erforderlich,
Methoden zu entwickeln, welche die Zuverlässigkeit von Software
besonders in sicherheitskritischen Anwendungen sicherstellen. Aus
konzeptioneller Sicht ist der Entwurf von Software im wesentlichen ein
logischer Schlussfolgerungsprozess, der Wissen über Algorithmen, den
Anwendungsbereich und Programmiertechniken verwendet und zu einem
Grossteil schematisiert werden kann. Durch den Einsatz logisch-formaler
Methoden kann die Zuverlässigkeit dieses Prozesses erheblich gesteigert
werden.
Im Rahmen der Vorlesung Automatisierte Logik und Programmierung
werden die Grundlagen logisch-formaler Programmentwicklung besprochen.
Die Formalisierung von Logik, Berechenbarkeit und Datentypen in der
intutionistischen Typentheorie bildet das theoretische Fundament. Die
Automatisierung logischer Schlüsse wird anhand des interaktiven
Beweissystems Nuprl demonstriert. Aufgrund des Umfangs der Thematik wird
die Veranstaltung auf 2 Semester verteilt.
Im ersten Teil (Moodle Kurs 2022) wurde die
intuitionistische Typentheorie als theoretisches Fundament vorgestellt.
Thema dieses zweiten Teils sind Aufbau, Automatisierung und Anwendung
von Beweissystemen.