Commit 7f59fa34 authored by Martin Clochard's avatar Martin Clochard

update proof sessions

parent f181fd76
......@@ -7,7 +7,7 @@
<file name="../matrices.mlw">
<theory name="MatrixGen" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Matrix" sum="862099dd531bba3a8ce8aca77f580ae7">
<theory name="Matrix" sum="ba7eca602ee03df2a98f7a686c251c65">
<goal name="set_def1">
<proof prover="2"><result status="valid" time="0.00" steps="10"/></proof>
</goal>
......@@ -21,17 +21,17 @@
<proof prover="2"><result status="valid" time="0.00" steps="22"/></proof>
</goal>
</theory>
<theory name="FixedMatrix" sum="81d1f6ecddc981db1f906002ad2c6515">
<theory name="FixedMatrix" sum="5d486d0188577a056ee4b579fa3069c2">
<goal name="rows_and_cols_nonnegative">
<proof prover="2"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
</theory>
<theory name="SquareFixedMatrix" sum="8866fe956f3cb17788b7229e8763a520">
<theory name="SquareFixedMatrix" sum="d58222172e1753dccc191aaf22a115ae">
<goal name="r_and_c_nonnegative">
<proof prover="2"><result status="valid" time="0.00" steps="2"/></proof>
</goal>
</theory>
<theory name="MatrixArithmetic" sum="179a17c543d2ee8c5d1128db6e7ac5b9">
<theory name="MatrixArithmetic" sum="51e672c189e950ed33557df63dcd9958">
<goal name="zero_neutral">
<transf name="split_goal_wp">
<goal name="zero_neutral.1" expl="1.">
......@@ -78,25 +78,25 @@
<goal name="opposite_add">
<proof prover="0"><result status="valid" time="0.49"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get" expl="VC for mul_assoc_get">
<goal name="VC mul_assoc_get" expl="VC for mul_assoc_get">
<transf name="split_goal_wp">
<goal name="WP_parameter mul_assoc_get.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
<goal name="VC mul_assoc_get.1" expl="1. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.01" steps="22"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="30"/></proof>
<goal name="VC mul_assoc_get.2" expl="2. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.04" steps="30"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get.3" expl="3. assertion">
<proof prover="2"><result status="valid" time="0.06" steps="52"/></proof>
<goal name="VC mul_assoc_get.3" expl="3. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.05" steps="52"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get.4" expl="4. precondition">
<proof prover="2"><result status="valid" time="0.05" steps="35"/></proof>
<goal name="VC mul_assoc_get.4" expl="4. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.05" steps="35"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get.5" expl="5. assertion">
<proof prover="2"><result status="valid" time="0.04" steps="34"/></proof>
<goal name="VC mul_assoc_get.5" expl="5. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="34"/></proof>
</goal>
<goal name="WP_parameter mul_assoc_get.6" expl="6. postcondition">
<proof prover="2"><result status="valid" time="0.02" steps="12"/></proof>
<goal name="VC mul_assoc_get.6" expl="6. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.01" steps="12"/></proof>
</goal>
</transf>
</goal>
......@@ -110,46 +110,46 @@
</goal>
</transf>
</goal>
<goal name="WP_parameter mul_distr_right_get" expl="VC for mul_distr_right_get">
<goal name="VC mul_distr_right_get" expl="VC for mul_distr_right_get">
<transf name="split_goal_wp">
<goal name="WP_parameter mul_distr_right_get.1" expl="1. assertion">
<proof prover="2"><result status="valid" time="0.06" steps="317"/></proof>
<goal name="VC mul_distr_right_get.1" expl="1. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.15" steps="274"/></proof>
</goal>
<goal name="WP_parameter mul_distr_right_get.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.10" steps="46"/></proof>
<goal name="VC mul_distr_right_get.2" expl="2. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.03" steps="46"/></proof>
</goal>
<goal name="WP_parameter mul_distr_right_get.3" expl="3. postcondition">
<proof prover="2"><result status="valid" time="0.06" steps="112"/></proof>
<goal name="VC mul_distr_right_get.3" expl="3. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.13" steps="112"/></proof>
</goal>
</transf>
</goal>
<goal name="mul_distr_right">
<transf name="split_goal_wp">
<goal name="mul_distr_right.1" expl="1.">
<proof prover="2"><result status="valid" time="0.05" steps="295"/></proof>
<proof prover="2"><result status="valid" time="0.05" steps="297"/></proof>
</goal>
<goal name="mul_distr_right.2" expl="2.">
<proof prover="2"><result status="valid" time="0.01" steps="23"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mul_distr_left_get" expl="VC for mul_distr_left_get">
<goal name="VC mul_distr_left_get" expl="VC for mul_distr_left_get">
<transf name="split_goal_wp">
<goal name="WP_parameter mul_distr_left_get.1" expl="1. assertion">
<proof prover="2"><result status="valid" time="0.19" steps="329"/></proof>
<goal name="VC mul_distr_left_get.1" expl="1. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.10" steps="286"/></proof>
</goal>
<goal name="WP_parameter mul_distr_left_get.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.05" steps="46"/></proof>
<goal name="VC mul_distr_left_get.2" expl="2. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.04" steps="46"/></proof>
</goal>
<goal name="WP_parameter mul_distr_left_get.3" expl="3. postcondition">
<proof prover="2"><result status="valid" time="0.05" steps="45"/></proof>
<goal name="VC mul_distr_left_get.3" expl="3. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.03" steps="45"/></proof>
</goal>
</transf>
</goal>
<goal name="mul_distr_left">
<transf name="split_goal_wp">
<goal name="mul_distr_left.1" expl="1.">
<proof prover="2"><result status="valid" time="0.04" steps="289"/></proof>
<proof prover="2"><result status="valid" time="0.04" steps="288"/></proof>
</goal>
<goal name="mul_distr_left.2" expl="2.">
<proof prover="2"><result status="valid" time="0.01" steps="23"/></proof>
......@@ -179,20 +179,58 @@
</transf>
</goal>
</theory>
<theory name="BlockMul" sum="a0d8b3f3a9391a77a23d88b4d4a63f23">
<goal name="WP_parameter block_mul_ij" expl="VC for block_mul_ij">
<proof prover="2"><result status="valid" time="0.47" steps="452"/></proof>
<theory name="BlockMul" sum="4b4a8b669c6aee7d1b50429c51fc5e29">
<goal name="VC block_mul_ij" expl="VC for block_mul_ij">
<transf name="split_goal_wp">
<goal name="VC block_mul_ij.1" expl="1. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.08" steps="79"/></proof>
</goal>
<goal name="VC block_mul_ij.2" expl="2. variant decrease">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="VC block_mul_ij.3" expl="3. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.01" steps="8"/></proof>
</goal>
<goal name="VC block_mul_ij.4" expl="4. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="VC block_mul_ij.5" expl="5. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.01" steps="8"/></proof>
</goal>
<goal name="VC block_mul_ij.6" expl="6. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.20" steps="118"/></proof>
</goal>
<goal name="VC block_mul_ij.7" expl="7. postcondition">
<proof prover="0"><result status="valid" time="1.48"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mul_split" expl="VC for mul_split">
<proof prover="2"><result status="valid" time="0.29" steps="363"/></proof>
<goal name="VC mul_split" expl="VC for mul_split">
<transf name="split_goal_wp">
<goal name="VC mul_split.1" expl="1. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="5"/></proof>
</goal>
<goal name="VC mul_split.2" expl="2. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="6"/></proof>
</goal>
<goal name="VC mul_split.3" expl="3. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="5"/></proof>
</goal>
<goal name="VC mul_split.4" expl="4. assertion">
<proof prover="2" timelimit="1"><result status="valid" time="0.20" steps="317"/></proof>
</goal>
<goal name="VC mul_split.5" expl="5. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.02" steps="33"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mul_block_cell" expl="VC for mul_block_cell">
<goal name="VC mul_block_cell" expl="VC for mul_block_cell">
<transf name="split_goal_wp">
<goal name="WP_parameter mul_block_cell.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="28"/></proof>
<goal name="VC mul_block_cell.1" expl="1. precondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.03" steps="28"/></proof>
</goal>
<goal name="WP_parameter mul_block_cell.2" expl="2. postcondition">
<proof prover="2"><result status="valid" time="0.12" steps="136"/></proof>
<goal name="VC mul_block_cell.2" expl="2. postcondition">
<proof prover="2" timelimit="1"><result status="valid" time="0.13" steps="136"/></proof>
</goal>
</transf>
</goal>
......
......@@ -312,12 +312,6 @@ module Symb
predicate (-->) (x y:'a) = "rewrite" x = y
meta rewrite_def predicate (-->)
predicate (--->) (x y:expr) =
x.e_body --> y.e_body /\
x.e_rows --> y.e_rows /\
x.e_cols --> y.e_cols
meta rewrite_def predicate (--->)
predicate e_vld (env:env) (e:expr) =
e.e_rows >= 0 /\ e.e_cols >= 0 /\
LOCAL.lm_vld env.ev_f e.e_rows e.e_cols e.e_body
......@@ -344,7 +338,7 @@ module Symb
writes { env }
ensures { env.ev_c --> old env.ev_c + 1 }
ensures { env.ev_f --> extends (old env.ev_f) (old env.ev_c) m }
ensures { result ---> symb_mat m (old env.ev_c) }
ensures { result --> symb_mat m (old env.ev_c) }
ensures { e_vld env result }
= let id = env.ev_c in
env.ev_f <- extends env.ev_f id m; env.ev_c <- id + 1;
......@@ -357,7 +351,7 @@ module Symb
let ghost symb_opp (env:env) (e:expr) : expr
requires { e_vld env e }
ensures { e_vld env result }
ensures { result ---> symb_opp e }
ensures { result --> symb_opp e }
ensures { e_mdl env result = opp (e_mdl env e) }
= let (r,c) = (e.e_rows,e.e_cols) in
LOCAL.lm_mdl_same env.ev_f r c e.e_body;
......@@ -375,7 +369,7 @@ module Symb
requires { e_vld env e1 /\ e_vld env e2 }
requires { e1.e_rows = e2.e_rows /\ e1.e_cols = e2.e_cols }
ensures { e_vld env result }
ensures { result ---> symb_add e1 e2 }
ensures { result --> symb_add e1 e2 }
ensures { e_mdl env result = add (e_mdl env e1) (e_mdl env e2) }
= let (r,c) = (e1.e_rows, e1.e_cols) in
LOCAL.lm_mdl_same env.ev_f r c e1.e_body;
......@@ -393,7 +387,7 @@ module Symb
requires { e_vld env e1 /\ e_vld env e2 }
requires { e1.e_rows = e2.e_rows /\ e1.e_cols = e2.e_cols }
ensures { e_vld env result }
ensures { result ---> symb_sub e1 e2 }
ensures { result --> symb_sub e1 e2 }
ensures { e_mdl env result = sub (e_mdl env e1) (e_mdl env e2) }
= symb_add env e1 (symb_opp env e2)
......@@ -406,7 +400,7 @@ module Symb
requires { e_vld env e1 /\ e_vld env e2 }
requires { e1.e_cols = e2.e_rows }
ensures { e_vld env result }
ensures { result ---> symb_mul e1 e2 }
ensures { result --> symb_mul e1 e2 }
ensures { e_mdl env result = mul (e_mdl env e1) (e_mdl env e2) }
= let (r,k,c) = (e1.e_rows,e1.e_cols,e2.e_cols) in
LOCAL.lm_mdl_same env.ev_f r k e1.e_body;
......
......@@ -3,185 +3,85 @@
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="1" steplimit="0" memlimit="1000"/>
<file name="../matrices_ring_simp.mlw">
<theory name="Symb" sum="aa56815b148e133d02ca363f67192b13">
<goal name="LOCAL.WP_parameter l_mdl_ok" expl="VC for l_mdl_ok">
<proof prover="2"><result status="valid" time="0.03" steps="109"/></proof>
<theory name="Symb" sum="a198129a81430b3cb64fea46b424b98e">
<goal name="LOCAL.VC l_mdl_ok" expl="VC for l_mdl_ok">
<proof prover="2"><result status="valid" time="0.04" steps="110"/></proof>
</goal>
<goal name="LOCAL.WP_parameter m_mdl_ok" expl="VC for m_mdl_ok">
<proof prover="2"><result status="valid" time="0.03" steps="47"/></proof>
<goal name="LOCAL.VC m_mdl_ok" expl="VC for m_mdl_ok">
<proof prover="2"><result status="valid" time="0.03" steps="39"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_mdl_ok" expl="VC for lm_mdl_ok">
<proof prover="2"><result status="valid" time="0.04" steps="120"/></proof>
<goal name="LOCAL.VC lm_mdl_ok" expl="VC for lm_mdl_ok">
<proof prover="2"><result status="valid" time="0.04" steps="124"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_mdl_same" expl="VC for lm_mdl_same">
<proof prover="2"><result status="valid" time="0.08" steps="185"/></proof>
<goal name="LOCAL.VC lm_mdl_same" expl="VC for lm_mdl_same">
<proof prover="2"><result status="valid" time="0.06" steps="179"/></proof>
</goal>
<goal name="LOCAL.WP_parameter l_compare_zero" expl="VC for l_compare_zero">
<proof prover="2"><result status="valid" time="0.03" steps="88"/></proof>
<goal name="LOCAL.VC l_compare_zero" expl="VC for l_compare_zero">
<proof prover="2"><result status="valid" time="0.04" steps="83"/></proof>
</goal>
<goal name="LOCAL.WP_parameter m_collapse_ok" expl="VC for m_collapse_ok">
<transf name="split_goal_wp">
<goal name="WP_parameter m_collapse_ok.1" expl="1. postcondition">
<proof prover="0"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.2" expl="2. postcondition">
<proof prover="0"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.3" expl="3. precondition">
<proof prover="2"><result status="valid" time="0.01" steps="10"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.4" expl="4. assertion">
<proof prover="2"><result status="valid" time="0.16" steps="376"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.5" expl="5. postcondition">
<proof prover="2"><result status="valid" time="0.22" steps="395"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.6" expl="6. postcondition">
<proof prover="0"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.7" expl="7. postcondition">
<proof prover="2"><result status="valid" time="0.31" steps="424"/></proof>
</goal>
<goal name="WP_parameter m_collapse_ok.8" expl="8. postcondition">
<proof prover="0"><result status="valid" time="0.06"/></proof>
</goal>
</transf>
<goal name="LOCAL.VC m_collapse_ok" expl="VC for m_collapse_ok">
<proof prover="0"><result status="valid" time="0.33"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_collapse_ok" expl="VC for lm_collapse_ok">
<proof prover="2"><result status="valid" time="0.09" steps="520"/></proof>
<goal name="LOCAL.VC lm_collapse_ok" expl="VC for lm_collapse_ok">
<proof prover="2"><result status="valid" time="0.21" steps="549"/></proof>
</goal>
<goal name="LOCAL.WP_parameter cat_rev_ok" expl="VC for cat_rev_ok">
<proof prover="2"><result status="valid" time="0.09" steps="436"/></proof>
<goal name="LOCAL.VC cat_rev_ok" expl="VC for cat_rev_ok">
<proof prover="2"><result status="valid" time="0.19" steps="484"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_dump_ok" expl="VC for lm_dump_ok">
<proof prover="2"><result status="valid" time="0.16" steps="608"/></proof>
<goal name="LOCAL.VC lm_dump_ok" expl="VC for lm_dump_ok">
<proof prover="2"><result status="valid" time="0.22" steps="591"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_merge_ok" expl="VC for lm_merge_ok">
<transf name="split_goal_wp">
<goal name="WP_parameter lm_merge_ok.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.3" expl="3. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="10"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.4" expl="4. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="10"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.5" expl="5. postcondition">
<proof prover="2"><result status="valid" time="0.02" steps="14"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.6" expl="6. postcondition">
<proof prover="2"><result status="valid" time="0.28" steps="329"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.7" expl="7. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.8" expl="8. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="8"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.9" expl="9. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="25"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.10" expl="10. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="13"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.11" expl="11. variant decrease">
<proof prover="2"><result status="valid" time="0.03" steps="36"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.12" expl="12. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="17"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.13" expl="13. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="31"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.14" expl="14. postcondition">
<proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
</goal>
<goal name="WP_parameter lm_merge_ok.15" expl="15. postcondition">
<proof prover="0"><result status="valid" time="3.07"/></proof>
</goal>
</transf>
<goal name="LOCAL.VC lm_merge_ok" expl="VC for lm_merge_ok">
<proof prover="2" timelimit="5"><result status="valid" time="3.29" steps="6371"/></proof>
</goal>
<goal name="LOCAL.WP_parameter cat_ok" expl="VC for cat_ok">
<proof prover="2"><result status="valid" time="0.12" steps="563"/></proof>
<goal name="LOCAL.VC cat_ok" expl="VC for cat_ok">
<proof prover="2"><result status="valid" time="0.17" steps="548"/></proof>
</goal>
<goal name="LOCAL.WP_parameter m_mul_ok" expl="VC for m_mul_ok">
<proof prover="2"><result status="valid" time="0.11" steps="369"/></proof>
<goal name="LOCAL.VC m_mul_ok" expl="VC for m_mul_ok">
<proof prover="2"><result status="valid" time="0.09" steps="261"/></proof>
</goal>
<goal name="LOCAL.WP_parameter m_distribute_ok" expl="VC for m_distribute_ok">
<proof prover="2"><result status="valid" time="0.08" steps="467"/></proof>
<goal name="LOCAL.VC m_distribute_ok" expl="VC for m_distribute_ok">
<proof prover="2"><result status="valid" time="0.12" steps="542"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_distribute_ok" expl="VC for lm_distribute_ok">
<proof prover="2"><result status="valid" time="0.19" steps="479"/></proof>
<goal name="LOCAL.VC lm_distribute_ok" expl="VC for lm_distribute_ok">
<proof prover="2"><result status="valid" time="0.42" steps="831"/></proof>
</goal>
<goal name="LOCAL.WP_parameter lm_opp_ok" expl="VC for lm_opp_ok">
<transf name="split_goal_wp">
<goal name="WP_parameter lm_opp_ok.1" expl="1. postcondition">
<proof prover="2"><result status="valid" time="0.02" steps="7"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.2" expl="2. postcondition">
<proof prover="2"><result status="valid" time="0.03" steps="22"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.3" expl="3. variant decrease">
<proof prover="2"><result status="valid" time="0.03" steps="19"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.4" expl="4. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="13"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.5" expl="5. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="13"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.6" expl="6. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="97"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.7" expl="7. postcondition">
<proof prover="2"><result status="valid" time="0.03" steps="34"/></proof>
</goal>
<goal name="WP_parameter lm_opp_ok.8" expl="8. postcondition">
<proof prover="0"><result status="valid" time="0.13"/></proof>
</goal>
</transf>
<goal name="LOCAL.VC lm_opp_ok" expl="VC for lm_opp_ok">
<proof prover="2" timelimit="5"><result status="valid" time="1.57" steps="3415"/></proof>
</goal>
<goal name="extends_rw">
<proof prover="2"><result status="valid" time="0.02" steps="4"/></proof>
</goal>
<goal name="WP_parameter symb_env" expl="VC for symb_env">
<goal name="VC symb_env" expl="VC for symb_env">
<proof prover="2"><result status="valid" time="0.02" steps="4"/></proof>
</goal>
<goal name="WP_parameter symb_reg" expl="VC for symb_reg">
<proof prover="2"><result status="valid" time="0.07" steps="61"/></proof>
<goal name="VC symb_reg" expl="VC for symb_reg">
<proof prover="2"><result status="valid" time="0.04" steps="63"/></proof>
</goal>
<goal name="WP_parameter symb_opp" expl="VC for symb_opp">
<proof prover="2"><result status="valid" time="0.03" steps="19"/></proof>
<goal name="VC symb_opp" expl="VC for symb_opp">
<proof prover="2"><result status="valid" time="0.04" steps="25"/></proof>
</goal>
<goal name="WP_parameter symb_add" expl="VC for symb_add">
<proof prover="2"><result status="valid" time="0.10" steps="97"/></proof>
<goal name="VC symb_add" expl="VC for symb_add">
<proof prover="2"><result status="valid" time="0.10" steps="166"/></proof>
</goal>
<goal name="WP_parameter symb_sub" expl="VC for symb_sub">
<proof prover="2"><result status="valid" time="0.04" steps="36"/></proof>
<goal name="VC symb_sub" expl="VC for symb_sub">
<proof prover="2"><result status="valid" time="0.04" steps="33"/></proof>
</goal>
<goal name="WP_parameter symb_mul" expl="VC for symb_mul">
<proof prover="2"><result status="valid" time="0.03" steps="28"/></proof>
<goal name="VC symb_mul" expl="VC for symb_mul">
<proof prover="2"><result status="valid" time="0.05" steps="50"/></proof>
</goal>
<goal name="WP_parameter harness" expl="VC for harness">
<goal name="VC harness" expl="VC for harness">
<transf name="split_goal_wp">
<goal name="WP_parameter harness.1" expl="1. precondition">
<goal name="VC harness.1" expl="1. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.1.1" expl="1. precondition">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter harness.1.1.1" expl="1. precondition">
<goal name="VC harness.1.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="VC harness.1.1.1" expl="1. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.1.1.1.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="WP_parameter harness.1.1.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="32"/></proof>
</goal>
</transf>
<goal name="VC harness.1.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="51"/></proof>
</goal>
</transf>
</goal>
......@@ -189,21 +89,17 @@
</goal>
</transf>
</goal>
<goal name="WP_parameter harness.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.06" steps="98"/></proof>
<goal name="VC harness.2" expl="2. precondition">
<proof prover="2"><result status="valid" time="0.05" steps="98"/></proof>
</goal>
<goal name="WP_parameter harness.3" expl="3. precondition">
<goal name="VC harness.3" expl="3. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.3.1" expl="1. precondition">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter harness.3.1.1" expl="1. precondition">
<goal name="VC harness.3.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="VC harness.3.1.1" expl="1. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.3.1.1.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="WP_parameter harness.3.1.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="35"/></proof>
</goal>
</transf>
<goal name="VC harness.3.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="55"/></proof>
</goal>
</transf>
</goal>
......@@ -211,27 +107,23 @@
</goal>
</transf>
</goal>
<goal name="WP_parameter harness.4" expl="4. precondition">
<proof prover="2"><result status="valid" time="0.07" steps="115"/></proof>
<goal name="VC harness.4" expl="4. precondition">
<proof prover="2"><result status="valid" time="0.07" steps="109"/></proof>
</goal>
<goal name="WP_parameter harness.5" expl="5. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="64"/></proof>
<goal name="VC harness.5" expl="5. precondition">
<proof prover="2"><result status="valid" time="0.03" steps="41"/></proof>
</goal>
<goal name="WP_parameter harness.6" expl="6. precondition">
<proof prover="2"><result status="valid" time="0.06" steps="102"/></proof>
<goal name="VC harness.6" expl="6. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="80"/></proof>
</goal>
<goal name="WP_parameter harness.7" expl="7. precondition">
<goal name="VC harness.7" expl="7. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.7.1" expl="1. precondition">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter harness.7.1.1" expl="1. precondition">
<goal name="VC harness.7.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="VC harness.7.1.1" expl="1. precondition">
<transf name="compute_specified">
<goal name="WP_parameter harness.7.1.1.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="WP_parameter harness.7.1.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.02" steps="43"/></proof>
</goal>
</transf>
<goal name="VC harness.7.1.1.1" expl="1. precondition">
<proof prover="2"><result status="valid" time="0.04" steps="63"/></proof>
</goal>
</transf>
</goal>
......@@ -239,27 +131,35 @@
</goal>
</transf>
</goal>
<goal name="WP_parameter harness.8" expl="8. precondition">
<proof prover="2"><result status="valid" time="0.07" steps="146"/></proof>
<goal name="VC harness.8" expl="8. precondition">
<proof prover="2"><result status="valid" time="0.06" steps="129"/></proof>
</goal>
<goal name="WP_parameter harness.9" expl="9. precondition">
<proof prover="2"><result status="valid" time="0.06" steps="78"/></proof>
<goal name="VC harness.9" expl="9. precondition">
<transf name="compute_specified">
<goal name="VC harness.9.1" expl="1. precondition">
<transf name="introduce_premises">
<goal name="VC harness.9.1.1" expl="1. precondition">
<transf name="compute_specified">