Attention une mise à jour du service Gitlab va être effectuée le mardi 18 janvier (et non lundi 17 comme annoncé précédemment) entre 18h00 et 18h30. Cette mise à jour va générer une interruption du service dont nous ne maîtrisons pas complètement la durée mais qui ne devrait pas excéder quelques minutes.

Commit c05bb5fe authored by MARCHE Claude's avatar MARCHE Claude
Browse files

claude

parent 1cbd210d
......@@ -9,6 +9,9 @@ manual.pdf: manual.tex version.tex
manual.html: manual.tex version.tex
$(HEVEA) manual.tex
manual.bib: manual.aux
aux2bib manual.aux > manual.bib
clean:
rm -f $(addprefix manual, .wdvi .raux .log .aux . bbl .blg\
.ind .ilg .idx .html .toc)
......
@comment{{This file has been generated by bib2bib 1.95}}
@comment{{Command line: bib2bib -c '$key="paskevich09rr" or $key="ayad10ijcar" or $key="filliatre07cav" or $key="conchon08smt" or 1=2' /home/cmarche/biblio/abbrevs.bib /home/cmarche/biblio/demons.bib /home/cmarche/biblio/demons2.bib /home/cmarche/biblio/demons3.bib /home/cmarche/biblio/team.bib /home/cmarche/biblio/crossrefs.bib /home/cmarche/biblio/crossrefs2.bib}}
@string{sv = {Springer}}
@string{SV = "Springer"}
@string{lnai = {Lecture Notes in Artificial Intelligence}}
@string{lncs = {Lecture Notes in Computer Science}}
@string{lncs = "Lecture Notes in Computer Science"}
@InProceedings{conchon08smt,
author = {Fran\c{c}ois Bobot and Sylvain Conchon and \'Evelyne Contejean
@inproceedings{conchon08smt,
author = {Fran\c{c}ois Bobot and Sylvain Conchon and \'Evelyne Contejean
and St\'ephane Lescuyer},
title = {{Implementing Polymorphism in SMT solvers}},
booktitle = {SMT 2008: 6th International Workshop on Satisfiability Modulo},
title = {{Implementing Polymorphism in SMT solvers}},
booktitle = {SMT 2008: 6th International Workshop on Satisfiability Modulo},
pages = {1--5},
year = 2008,
editor = {Clark Barrett and Leonardo de Moura},
volume = 367,
year = 2008,
editor = {Clark Barrett and Leonardo de Moura},
volume = 367,
series = {ACM International Conference Proceedings Series},
topics = "team,lri",
topics = {team,lri},
type_digiteo = {conf_autre},
type_publi = "colloque",
type_publi = {colloque},
x-equipes = {demons PROVAL},
x-type = {article},
x-support = {actes_aux},
......@@ -31,19 +33,9 @@
isbn = {978-1-60558-440-9}
}
@TechReport{paskevich09rr,
author = {Andrei Paskevich},
title = {Algebraic types and pattern matching in the logical language of the {Why} verification platform},
institution = {INRIA},
year = 2009,
topics= {team},
hal = {http://hal.inria.fr/inria-00439232/en/},
number = {RR-7128}}
@InProceedings{filliatre07cav,
author = {Jean-Christophe Filli\^atre and Claude March\'e},
title = {The {Why/Krakatoa/Caduceus} Platform for Deductive Program
@inproceedings{filliatre07cav,
author = {Jean-Christophe Filli\^atre and Claude March\'e},
title = {The {Why/Krakatoa/Caduceus} Platform for Deductive Program
Verification},
crossref = {cav07},
pages = {173--177},
......@@ -58,16 +50,46 @@
x-cle-support = {CAV}
}
@techreport{paskevich09rr,
author = {Andrei Paskevich},
title = {Algebraic types and pattern matching in the logical language of the {Why} verification platform},
institution = {INRIA},
year = 2009,
topics = {team},
hal = {http://hal.inria.fr/inria-00439232/en/},
note = {\url{http://hal.inria.fr/inria-00439232/en/}},
number = {RR-7128}
}
@inproceedings{ayad10ijcar,
author = {Ali Ayad and Claude March\'e},
title = {Multi-Prover Verification of Floating-Point Programs},
crossref = {ijcar10},
url = {http://www.lri.fr/~marche/ayad10ijcar.pdf},
topics = {team},
type_publi = {icolcomlec}
}
@proceedings{ijcar10,
title = {International Joint Conference on Automated Reasoning},
booktitle = {Fifth International Joint Conference on Automated Reasoning},
year = 2010,
editor = {J{\"u}rgen Giesl and Reiner H{\"a}hnle},
address = {Edinburgh, Scotland},
month = jul,
series = lnai,
publisher = sv
}
@Proceedings{cav07,
editor = {Werner Damm and Holger Hermanns},
title = {Computer Aided Verification},
@proceedings{cav07,
editor = {Werner Damm and Holger Hermanns},
title = {Computer Aided Verification},
booktitle = {19th International Conference on Computer Aided Verification},
publisher = SV,
series = lncs,
volume = 4590,
address = {Berlin, Germany},
month = jul,
year = {2007}
publisher = sv,
series = lncs,
volume = 4590,
address = {Berlin, Germany},
month = jul,
year = {2007}
}
......@@ -89,8 +89,8 @@ We gratefully thank all the people who contributed to this document:
\input{./apidoc.tex}
\bibliographystyle{abbrv}
%\bibliography{manual}
\input{biblio-demons}
\bibliography{manual}
%\input{biblio-demons}
\end{document}
......
......@@ -441,10 +441,13 @@ module Helpers = struct
a
let add_goal_row mth name t db_goal =
let parent = mth.theory_row in
let row = goals_model#append ~parent () in
let goal = { parent = Theory mth;
let add_goal_row parent name t db_goal =
let parent_row = match parent with
| Theory mth -> mth.theory_row
| Transf mtr -> mtr.transf_row
in
let row = goals_model#append ~parent:parent_row () in
let goal = { parent = parent;
task = t ;
goal_row = row;
goal_db = db_goal;
......@@ -457,7 +460,10 @@ module Helpers = struct
goals_model#set ~row ~column:icon_column !image_file;
goals_model#set ~row ~column:index_column (Row_goal goal);
goals_model#set ~row ~column:visible_column true;
mth.goals <- goal :: mth.goals;
begin match parent with
| Theory mth -> mth.goals <- goal :: mth.goals
| Transf mtr -> mtr.subgoals <- goal :: mtr.subgoals
end;
goal
......@@ -493,35 +499,19 @@ module Helpers = struct
let subgoal_name =
goal_name ^ "." ^ (string_of_int count)
in
let subtask_row =
goals_model#append ~parent:row ()
in
let sum = task_checksum subtask in
let subtask_db = Db.add_subgoal db_transf subgoal_name sum in
(* TODO: call add_goal_row *)
let goal = { Model.parent = Model.Transf tr;
Model.task = subtask ;
Model.goal_row = subtask_row;
Model.goal_db = subtask_db;
Model.external_proofs = Hashtbl.create 7;
Model.transformations = [];
Model.proved = false;
}
let goal =
add_goal_row (Model.Transf tr) subgoal_name subtask subtask_db
in
goals_model#set ~row:subtask_row
~column:Model.index_column (Model.Row_goal goal);
goals_model#set ~row:subtask_row
~column:Model.visible_column true;
goals_model#set ~row:subtask_row
~column:Model.name_column subgoal_name;
goals_model#set ~row:subtask_row
~column:Model.icon_column !image_file;
(goal :: acc, count+1))
([],1) subgoals
in
tr.Model.subgoals <- List.rev goals;
goals_view#expand_row (goals_model#get_path parent)
let add_theory_row mfile th db_theory =
let tname = th.Theory.th_name.Ident.id_string in
let parent = mfile.file_row in
......@@ -540,6 +530,7 @@ module Helpers = struct
mfile.theories <- mth :: mfile.theories;
mth
let add_theory mfile th =
let tasks = Task.split_theory th None None in
let tname = th.Theory.th_name.Ident.id_string in
......@@ -552,7 +543,7 @@ module Helpers = struct
let name = id.Ident.id_string in
let sum = task_checksum t in
let db_goal = Db.add_goal db_theory name sum in
let goal = add_goal_row mth name t db_goal in
let goal = add_goal_row (Theory mth) name t db_goal in
goal :: acc)
[]
(List.rev tasks)
......@@ -605,30 +596,9 @@ end
(* read previous data from db *)
(*********************************)
let rec reimport_root_task mth tname goals t : bool =
(* re-imports DB informations of a task in theory mth (named tname)
goals is a table of DB goals known to be a possible match for t.
returns true whenever the task t is known to be proved *)
let gname =
(Task.task_goal t).Decl.pr_name.Ident.id_string
in
let sum = task_checksum t in
let db_goal,goal_obsolete =
try
let dbg = Util.Mstr.find gname goals in
let db_sum = Db.task_checksum dbg in
let goal_obsolete = sum <> db_sum in
if goal_obsolete then
begin
eprintf "Goal %s.%s has changed@." tname gname;
Db.change_checksum dbg sum
end;
dbg,goal_obsolete
with Not_found ->
let dbg = Db.add_goal mth.Model.theory_db gname sum in
dbg,false
in
let goal = Helpers.add_goal_row mth gname t db_goal in
let rec reimport_any_goal parent gname t db_goal goal_obsolete =
let goal = Helpers.add_goal_row parent gname t db_goal in
let proved = ref false in
let external_proofs = Db.external_proofs db_goal in
Db.Hprover.iter
......@@ -682,6 +652,34 @@ let rec reimport_root_task mth tname goals t : bool =
if !proved then Helpers.set_proved ~propagate:false goal;
!proved
let reimport_root_goal mth tname goals t : bool =
(* re-imports DB informations of a goal in theory mth (named tname)
goals is a table, indexed by names of DB goals formerly known to be
a in theory mth. returns true whenever the task t is known to be
proved *)
let gname =
(Task.task_goal t).Decl.pr_name.Ident.id_string
in
let sum = task_checksum t in
let db_goal,goal_obsolete =
try
let dbg = Util.Mstr.find gname goals in
let db_sum = Db.task_checksum dbg in
let goal_obsolete = sum <> db_sum in
if goal_obsolete then
begin
eprintf "Goal %s.%s has changed@." tname gname;
Db.change_checksum dbg sum
end;
dbg,goal_obsolete
with Not_found ->
let dbg = Db.add_goal mth.Model.theory_db gname sum in
dbg,false
in
reimport_any_goal (Model.Theory mth) gname t db_goal goal_obsolete
(* reimports all files *)
let () =
let files = Db.files () in
List.iter
......@@ -718,7 +716,7 @@ let () =
let tasks = List.rev (Task.split_theory th None None) in
let theory_proved = ref true in
List.iter
(fun t -> theory_proved := reimport_root_task mth tname goals t && !theory_proved)
(fun t -> theory_proved := reimport_root_goal mth tname goals t && !theory_proved)
tasks;
(* TODO: what to do with remaining tasks in Db ???
for the moment they remain in the db, but they are not shown
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment