Sémantique et Preuve de Programmes
lundi 14h-17h salle TD5

created october 25, 2002
last version december 13, 2002

Contents


Mediathèque

Back to Top.

Session 1: Monday October 7, 2002 - Room TD 5

Introduction to the course. Purpose of the course: learn how to formalize knowledge, in a typed higher order logic such as PVS.

Evaluation will be based upon

As an introduction to formal specification and proof methods, we study the PVS specification and proof of correctness and completeness of a simple program for computing a solution to "le compte est bon" problem:
~gloess/pvs/2.4/count_ok/2.4.count_ok.12mar2002.dump.dump
This example (to be restored into a ~user/pvs/count_ok/ directory) also illustrates PVS ground evaluator. This is a classical Scheme or Common LISP exercise.

One student asked whether it would be possible to prove that the count_ok function is optimal, meaning that it always yields an optimal solution.

Answer: we would have to specify what "optimal" means. For example "optimal" could mean "the shortest possible solution" (shortest length). The count_ok function as it is is probably not optimal.
PVS language (slides 1--9).

Back to Top.


Session 2: Monday October 14, 2002 - Room TD 5

PVS language (slides 10--27), up to well founded relations and recursive functions.

Rapid look at the "imperative program verification library", showing the proof of correctness of the "sqrt" example. This big library demonstrates the expressive power of PVS, which allowed us to actually define program correctness, develop and prove Hoare calculus, and corresponding strategies that provide a semi-automatic proof method.

Back to Top.


Session 3: Monday October 21, 2002 - Room TD 5

We first take a closer look at the PVS proof of the theorem
There is no bijection from A to [A -> bool] (in classical math, from A to 2A).
that was done in "Ateliers" class. We compare three proofs, see:
~gloess/pvs/2.4/2.4.sets.21oct2002.bij.dump
We then go back to recursive functions and well founded induction: We then study inductive sets: We finally take a closer look at imperative program verification library, with emphasis on specification method: Back to Top.

Session 4: Monday October 28, 2002 - Room TD 5

Répartition de bibliothèques PVS à étudier par petit groupes (en vue de l'évaluation): aller vers evaluation pour la liste.

Fixpoint theory and PVS inductive sets.

Back to Top.


Session 5: Monday November 4, 2002 - Room TD 5

We study a PVS formalization of well founded recursion.

Then last year Alose project results are presented.

Thus, last year project main result was a fixpoint semantics of Alose (in the style of Prolog fixpoint semantics): all lemmas and proof obligations were completely proved.

This year, we'll aim at providing Alose with an operational semantics (a semantics that can be evaluated using PVS ground evaluator), and proving the equivalence between this operational semantics and the former fixpoint semantics.

Some additional work toward this goal was done by Paul Y Gloess, in april 2002:


Back to Top.


Session 6: Monday November 18, 2002 - Room TD 5

Previous session was dedicated to a presentation of Alose, and its PVS declarative (fixpoint) semantics (as defined last year), and of the library of confluent relations (subsequently introduced) that will now turn out to be useful.

The present goal (this year) - only two sessions are left! - is twofold:

After doing some general purpose tests with PVS  ground evaluator, we concluded that: Results Back to Top.


Session 7: Monday December 2, 2002 - Room TD 5

We first completed and improved PVS operational semantics (oinference theory) and added some tests for the PVS ground evaluator in the oinference_eval theory: We then take another look at ofixpoint operational fixpoint theory: We finally formalize our main goal, which is to prove the correctness of Alose operational forward checking w.r.t. Alose declarative forward checking semantics: Resulting PVS dump:
~gloess/pvs/2.4/alose/2.4.alose.3december2002.dump.dump
Finally, I give a sketch of a manual proof of the above correctness theorem (sunday afternoon work in Lacanau Ocean): All hand-written proofs.

Back to Top.


Session 8: Evaluation Monday December 16, 2002 - Room TD 5

Voici une liste de bibliothèques ou théories PVS à étudier par petits groupes de 3 élèves, ou 6 élèves (2 groupes de 3), selon l'importance du sujet.

Le travail demandé à chaque élève est de l'ordre de 3 à 4 heures (hors soutenance orale de 30 minutes par groupe de 3):

La soutenance a pour but de faire comprendre à l'auditoire médusé le rôle de la bibliothèque étudiée. On n'attachera pas trop d'importance à la présentation: elle peut se faire au tableau et à la craie, sans transparents.

Une liste de sujets d'étude est proposée ci-dessous: il est demandé à l'ensemble des élèves (et au représentant en particulier) de me proposer par mail une répartition nominative, d'ici lundi 21 janvier 2002. Un autre sujet peut être étudié, avec mon accord.
 
 
Intitulé
Documents
Nombre de groupes de 3 élèves
Trinôme
combinations, C(p, n)
~gloess/pvs/combinations/combinations.30january2001.combinations.dump
sous PVS 2.3 uniquement
1
Anoun Houda
Elaimani Laila
Amoudi Mariem
compiler
~gloess/pvs/2.4/compiler/2.4.compiler.24jan2002.dump.dump
1
Doolaeghe Bruno
Andriambololona Mahery
Georges Nicolas
les ensembles finis
/opt/pvs/2.?/lib/finite_sets/
2
Lansade Frédéric
Galdos Caroline
Baratta Romain
Puyou Marion
Aubert Flavien
les vecteurs de bits
/opt/pvs/2.?/lib/bitvectors/
2
Kim DANG
Gauthier MATHIEU
Fabien PAQUEREAU
Alexandre RIBEIRO
Julien SAZATORNIL
Cyril VRILLAUD
fixpoint and Scott induction
(inductive sets)
mucalculus theory in PVS prelude
(use Meta-x<view-prelude-file> command from PVS)
~gloess/pvs/2.4/nasa/fixpoints/p24_fixedpoints.dmp
~gloess/pvs/2.4/scott/2.4.scott.6feb2002.induction.dump
1 or 2
permutations sur les listes
~gloess/pvs/permutations/permutations.18_april_2000.list_permutations.dump
1
Chatain Thomas
Arab Rachid
Dufour Armelle
properties of well founded relations
voir commentaires dans http://dept-info.labri.u-bordeaux.fr/~gloess/pvs/
et utiliser la dernière version (11 avril 2002) dans
~gloess/pvs/2.4/wf/2.4.wf.11april2002.wf_properties.dump
1
PVS model checker
voir documentation PVS
2

Back to Top.


© Copyright 2001-3000 Paul Y Gloess