Task #181 Preuve Zenon non explicable
Opened by Philippe Ayrault (phil) - 15 Nov 2008 Last edited by François Pessaux (francois) - 10 Jun 2009
Task Type
Bug Report
Category
Zenon
Status
Assigned
Assigned To
Damien Doligez (doligez)
Operating System
All
Severity
Medium
Reported Version
Current
Due in Version
Undecided
Percent Complete
Details
J'ai un soucis, il me semble que j'arrive à prouver une propriété avec Zenon alors que je n'ai pas fourni de preuve. Je joins un programme avec 2 variantes et les 2 traces de compilation.
Philippe
Compilation de la premiere version:
focalize -I /home/phil/Tools/FoCal/focal/focalize/stdlib -I /home/phil/Tools/FoCal/focal/focalize/extlib/algebra -I /home/phil/Lip6/These/FoCal/Utils_focalize pb.foc
zvtov -new -zenon /home/phil/Tools/FoCal/focal/zenon/zenon -zz -max-time -zz 3m pb.zv
File "pb.foc", line 16, characters 0-38:
Warning: defined symbol basics.syntactic_equal is used with wrong arity
### proof failed
File "pb.foc", line 12, characters 0-12:
### proof failed
File "pb.foc", line 20, characters 0-13:
### proof failed
Il y a un warning que je ne comprends pas.
et les 3 propriétés ne sont pas prouvées.
Compilation de la seconde version (inversion des lignes en commentaire)
focalize -I /home/phil/Tools/FoCal/focal/focalize/stdlib -I /home/phil/Tools/FoCal/focal/focalize/extlib/algebra -I /home/phil/Lip6/These/FoCal/Utils_focalize pb.foc
zvtov -new -zenon /home/phil/Tools/FoCal/focal/zenon/zenon -zz -max-time -zz 3m pb.zv
File "pb.foc", line 16, characters 0-38:
### proof failed
File "pb.foc", line 12, characters 0-12:
### proof failed
Le message d'erreur a disparu, et la troisième proprité a été prouvé alors que je n'ai fourni aucune preuve mais 2 fois la même preuve précédemment fausse de la même propriété (diff_green_blue) !!
Question subsidiaire ; comment faire ses preuves en Zenon ?
Le programme :
use "basics";;
open "basics";;
species Requests inherits Basic_object =
signature blue : Self;
signature red : Self;
signature green : Self;
property diff_blue_red :
~ blue = red
;
property diff_green_blue :
~ basics#syntactic_equal( green, blue)
;
property diff_green_red :
~ green = red
;
end;;
species Imp_request inherits Requests =
rep = int;
let blue = 1;
let red = 2;
let green = 3;
proof of diff_blue_red =
by definition of basics#syntactic_equal
;
proof of diff_green_blue =
by definition of basics#syntactic_equal
;
(* Ligne à inverser
proof of diff_green_blue =
*)
proof of diff_green_red =
by
;
end;;
Comment by François Pessaux - Friday, 21 Nov 2008, 10:19am
Bon,en fait il y a beaucoup de choses à dire dans tout ça:
1) "et la troisième proprité a été prouvé alors que je n'ai fourni aucune preuve mais 2 fois la même preuve précédemment fausse de la même propriété"
Non, la 3ème propriété n'a PAS été prouvée puisque tu l'as supprimée ! Ta preuve de 'diff_green_red' n'existe PLUS. Donc elle n'est pas résolue par Zenon.
2) Le seul bug que l'on peu reprocher au compilo c'est qu'il ne t'ai pas râlé dessus car tu as donné dans la même espèce 2 preuves d'une même propriété.
3) L'histoire de "Warning: defined symbol basics.syntactic_equal...", là par contre, je pense que c'est Damien qui serait le mieux placer pour en parler.
Comment by François Pessaux - Friday, 21 Nov 2008, 11:39am
Donc, un message d'erreur est désormais rajouté lorsque l'on trouve plusieurs "proof of" d'une même propriété dans une espèce (dans sno corps, pas par héritage bien sûr).
Comment by Damien Doligez - Tuesday, 23 Dec 2008, 2:39pm
Le warning a disparu, j'ai du le corriger a un moment donne.
Pour la question subsidiaire, il faut attendre que Zenon fasse l'arithmetique, et c'est pas gagne...
MoSpray is Powered by Flyspray
Handled for MAMBO by CaneBlu.com
SPI © 2004-2008
Contact Webmaster
powered by Joomla
designed by CM, with help of the
TiTi Dev Team