Attention une mise à jour du serveur va être effectuée le lundi 17 mai entre 13h et 13h30. Cette mise à jour va générer une interruption du service de quelques minutes.

Commit fb9ff35a authored by MARCHE Claude's avatar MARCHE Claude

fix #17181

parent e26922de
This diff is collapsed.
......@@ -4,28 +4,28 @@
<why3session shape_version="4">
<prover id="0" name="CVC3" version="2.4.1" timelimit="5" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<file name="../ral.mlw">
<theory name="RAL" sum="b85ea65c6b3b2e84fb0a259ea33ee2c5">
<goal name="assoc">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<file name="../ral.mlw" expanded="true">
<theory name="RAL" sum="b85ea65c6b3b2e84fb0a259ea33ee2c5" expanded="true">
<goal name="M.assoc">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="neutral">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="M.neutral">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="assoc">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="M.M.assoc">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="neutral">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="M.M.neutral">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter zero" expl="VC for zero">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="M.WP_parameter zero" expl="VC for zero">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter op" expl="VC for op">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="M.WP_parameter op" expl="VC for op">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter measure" expl="VC for measure">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="D.WP_parameter measure" expl="VC for measure">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter sum_measure_is_length" expl="VC for sum_measure_is_length">
<proof prover="1"><result status="valid" time="0.02"/></proof>
......@@ -33,35 +33,35 @@
<goal name="WP_parameter selected_part" expl="VC for selected_part">
<proof prover="1"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="assoc">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.M.assoc">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="neutral">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.M.neutral">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="sum_def_nil">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.M.sum_def_nil">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="sum_def_cons">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.M.sum_def_cons">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.balancing_positive">
<proof prover="1" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="selection_empty">
<proof prover="1"><result status="valid" time="0.03"/></proof>
<goal name="Sel.selection_empty">
<proof prover="1" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter avl AVL M zero" expl="VC for avl AVL M zero">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.WP_parameter avl AVL M zero" expl="VC for avl AVL M zero">
<proof prover="1" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter avl AVL M op" expl="VC for avl AVL M op">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.WP_parameter avl AVL M op" expl="VC for avl AVL M op">
<proof prover="1" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter avl AVL D measure" expl="VC for avl AVL D measure">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<goal name="Sel.WP_parameter avl AVL D measure" expl="VC for avl AVL D measure">
<proof prover="1" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter avl AVL selected_part" expl="VC for avl AVL selected_part">
<proof prover="1"><result status="valid" time="0.30"/></proof>
<goal name="Sel.WP_parameter avl AVL selected_part" expl="VC for avl AVL selected_part">
<proof prover="1" timelimit="3"><result status="valid" time="0.57"/></proof>
</goal>
<goal name="WP_parameter empty" expl="VC for empty">
<proof prover="1"><result status="valid" time="0.02"/></proof>
......
......@@ -5,43 +5,43 @@
<prover id="0" name="CVC3" version="2.4.1" timelimit="1" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="1" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="0.95.2" timelimit="1" memlimit="1000"/>
<file name="../tables.mlw">
<file name="../tables.mlw" expanded="true">
<theory name="MapBase" sum="7cd93351ec4f61724437c746a929f65e">
<goal name="WP_parameter measure" expl="VC for measure">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<goal name="D.WP_parameter measure" expl="VC for measure">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Refl">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="A.O.Refl">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Trans">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="A.O.Trans">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="eq_def">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="A.O.eq_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="lt_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="A.O.lt_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter neutral_" expl="VC for neutral_">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.WP_parameter neutral_" expl="VC for neutral_">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="assoc">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="M.assoc">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="neutral">
<proof prover="0"><result status="valid" time="0.02"/></proof>
<goal name="M.neutral">
<proof prover="0" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="assoc">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="M.M.assoc">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="neutral">
<proof prover="0"><result status="valid" time="0.02"/></proof>
<goal name="M.M.neutral">
<proof prover="0" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter zero" expl="VC for zero">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="M.WP_parameter zero" expl="VC for zero">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter op" expl="VC for op">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="M.WP_parameter op" expl="VC for op">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter selected_sem" expl="VC for selected_sem">
<transf name="split_goal_wp">
......@@ -189,35 +189,35 @@
</goal>
</transf>
</goal>
<goal name="assoc">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="Sel.M.assoc">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="neutral">
<proof prover="0"><result status="valid" time="0.02"/></proof>
<goal name="Sel.M.neutral">
<proof prover="0" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="sum_def_nil">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="Sel.M.sum_def_nil">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="sum_def_cons">
<proof prover="2"><result status="valid" time="0.05"/></proof>
<goal name="Sel.M.sum_def_cons">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="2"><result status="valid" time="0.05"/></proof>
<goal name="Sel.balancing_positive">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="selection_empty">
<proof prover="2"><result status="valid" time="0.06"/></proof>
<goal name="Sel.selection_empty">
<proof prover="2" timelimit="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter avl AVL M zero" expl="VC for avl AVL M zero">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="Sel.WP_parameter avl AVL M zero" expl="VC for avl AVL M zero">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter avl AVL M op" expl="VC for avl AVL M op">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="Sel.WP_parameter avl AVL M op" expl="VC for avl AVL M op">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter avl AVL D measure" expl="VC for avl AVL D measure">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="Sel.WP_parameter avl AVL D measure" expl="VC for avl AVL D measure">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter avl AVL selected_part" expl="VC for avl AVL selected_part">
<proof prover="2"><result status="valid" time="0.12"/></proof>
<goal name="Sel.WP_parameter avl AVL selected_part" expl="VC for avl AVL selected_part">
<proof prover="2" timelimit="3"><result status="valid" time="0.22"/></proof>
</goal>
<goal name="WP_parameter m" expl="VC for m">
<proof prover="2"><result status="valid" time="0.04"/></proof>
......@@ -1744,32 +1744,32 @@
</goal>
</theory>
<theory name="Map" sum="be1f82088b4c4c13fe4f9701c07b9815">
<goal name="WP_parameter get_key" expl="VC for get_key">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<goal name="D.WP_parameter get_key" expl="VC for get_key">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.balancing_positive">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Refl">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.Refl">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Trans">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.Trans">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="eq_def">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.eq_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="lt_def">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.lt_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="Total">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.Total">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter MapBase get_key" expl="VC for MapBase get_key">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="MB.WP_parameter MapBase get_key" expl="VC for MapBase get_key">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter MapBase CO compare" expl="VC for MapBase CO compare">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="MB.WP_parameter MapBase CO compare" expl="VC for MapBase CO compare">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter m_def" expl="VC for m_def">
<transf name="split_goal_wp">
......@@ -1996,32 +1996,32 @@
</goal>
</theory>
<theory name="Set" sum="40c14ea8fa947b8e406f0b659d679ba2">
<goal name="WP_parameter get_key" expl="VC for get_key">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<goal name="D.WP_parameter get_key" expl="VC for get_key">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.balancing_positive">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Refl">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<goal name="MB.CO.Refl">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Trans">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<goal name="MB.CO.Trans">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="eq_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="MB.CO.eq_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="lt_def">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.lt_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="Total">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="MB.CO.Total">
<proof prover="2" timelimit="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter MapBase get_key" expl="VC for MapBase get_key">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="MB.WP_parameter MapBase get_key" expl="VC for MapBase get_key">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter MapBase CO compare" expl="VC for MapBase CO compare">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="MB.WP_parameter MapBase CO compare" expl="VC for MapBase CO compare">
<proof prover="2" timelimit="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter m_def" expl="VC for m_def">
<transf name="split_goal_wp">
......@@ -2168,47 +2168,47 @@
<goal name="WP_parameter compare" expl="VC for compare">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.balancing_positive">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Refl">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.CO.Refl">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Trans">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.CO.Trans">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="eq_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.CO.eq_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="lt_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.CO.lt_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Total">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.CO.Total">
<proof prover="2" timelimit="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter Map CO compare" expl="VC for Map CO compare">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="M.WP_parameter Map CO compare" expl="VC for Map CO compare">
<proof prover="2" timelimit="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="balancing_positive">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.balancing_positive">
<proof prover="2" timelimit="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="Refl">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.CO.Refl">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="Trans">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.CO.Trans">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="eq_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.CO.eq_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="lt_def">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.CO.lt_def">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="Total">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<goal name="S.CO.Total">
<proof prover="2" timelimit="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter Set CO compare" expl="VC for Set CO compare">
<proof prover="2"><result status="valid" time="0.05"/></proof>
<goal name="S.WP_parameter Set CO compare" expl="VC for Set CO compare">
<proof prover="2" timelimit="3"><result status="valid" time="0.08"/></proof>
</goal>
</theory>
</file>
......
theory T
namespace A
goal g:true
end
namespace B
goal g:false
end
end
module A
predicate p
predicate q
namespace B
let f () : unit ensures { p } = ()
end
namespace C
let f () : unit ensures { q <-> p } = ()
end
end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="CVC4" version="1.4" timelimit="3" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="0.95.2" timelimit="3" memlimit="1000"/>
<file name="../17181.mlw" expanded="true">
<theory name="T" sum="bf985426bbce7996e2481c8e25f14156" expanded="true">
<goal name="A.g" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="B.g" expanded="true">
<proof prover="0"><result status="unknown" time="0.00"/></proof>
</goal>
</theory>
<theory name="A" sum="2bae57918a7b687b2d8d2a31ec13cb69" expanded="true">
<goal name="B.WP_parameter f" expl="VC for f" expanded="true">
<proof prover="1"><result status="unknown" time="0.00"/></proof>
</goal>
<goal name="C.WP_parameter f" expl="VC for f" expanded="true">
<proof prover="0"><result status="unknown" time="0.00"/></proof>
</goal>
</theory>
</file>
</why3session>
......@@ -491,7 +491,13 @@ exception NoTask
let goal_task g = Opt.get_exn NoTask g.goal_task
let goal_task_option g = g.goal_task
let goal_expl g = Opt.get_def g.goal_name.Ident.id_string g.goal_expl
let goal_expl g =
match g.goal_expl with
| Some s -> s
| None ->
try let _,_,l = restore_path g.goal_name in
String.concat "." l
with Not_found -> g.goal_name.Ident.id_string
(************************)
(* saving state on disk *)
......@@ -564,25 +570,14 @@ let save_proof_attempt fmt ((id,tl,ml),a) =
fprintf fmt "</proof>@]"
let save_ident fmt id =
fprintf fmt "name=\"%a\"" save_string id.Ident.id_string;
(* location info is useless, and takes a lot of place *)
(*
match id.Ident.id_loc with
| None -> ()
| Some loc ->
let file,lnum,cnumb,cnume = Loc.get loc in
let file = Sysutil.relativize_filename !session_dir_for_save file in
fprintf fmt
"@ locfile=\"%a\"@ loclnum=\"%i\" loccnumb=\"%i\" loccnume=\"%i\""
save_string file lnum cnumb cnume
*)
()
(*
let save_label fmt s =
fprintf fmt "@\n@[<hov 1><label@ name=\"%a\"/>@]" save_string s.Ident.lab_string
*)
let n=
try
let (_,_,l) = Theory.restore_path id in
String.concat "." l
with Not_found -> id.Ident.id_string
in
fprintf fmt "name=\"%a\"" save_string n
module Compr = Compress.Compress_z
type save_ctxt = {
......@@ -2364,8 +2359,13 @@ let merge_theory ~ctxt ~theories env from_th to_th =
List.iter
(fun to_goal ->
try
let from_goal =
Mstr.find to_goal.goal_name.Ident.id_string from_goals in
let to_goal_name =
try
let (_,_,l) = restore_path to_goal.goal_name
in String.concat "." l
with Not_found -> to_goal.goal_name.Ident.id_string
in
let from_goal = Mstr.find to_goal_name from_goals in
Debug.dprintf debug
"[Goal checksum] goal %s: old sum = %a, new sum = %a@."
to_goal.goal_name.Ident.id_string
......
......@@ -946,7 +946,13 @@ let rec unabsurd f = match f.t_node with
let add_wp_decl km name f uc =
(* prepare a proposition symbol *)
let s = "WP_parameter " ^ name.id_string in
let lab = Ident.create_label ("expl:VC for " ^ name.id_string) in
(* set a proper explanation *)
let n =
try let _,_,l = restore_path name in
String.concat "." l
with Not_found -> name.id_string
in
let lab = Ident.create_label ("expl:VC for " ^ n) in
let label = Slab.add lab name.id_label in
let id = id_fresh ~label ?loc:name.id_loc s in
let pr = create_prsymbol id in
......
theory A
predicate p
predicate q
goal G1 : p /\ q
goal G2 : p -> q
goal G3 : p && q
end
theory Test
goal g1: true
......
......@@ -3,274 +3,294 @@
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<file name="../test_compute.why" expanded="true">
<theory name="Test" expanded="true">
<goal name="g1" sum="1ad4ea691c2d3b0a420f5b0819ebc531">
<theory name="A" sum="914ec6900afb352337828782c59db261" expanded="true">
<goal name="G1" expanded="true">
<transf name="compute_in_goal" expanded="true">
<goal name="G1.1" expl="1.">
</goal>
</transf>
</goal>
<goal name="G2" expanded="true">
<transf name="compute_in_goal" expanded="true">
<goal name="G2.1" expl="1.">
</goal>
</transf>
</goal>
<goal name="G3" expanded="true">
<transf name="compute_in_goal" expanded="true">
<goal name="G3.1" expl="1.">
</goal>
</transf>
</goal>
</theory>
<theory name="Test"<