Commit 70d2f1bd authored by Marc Schoolderman's avatar Marc Schoolderman
Browse files

ported to why3 0.88.3

parent c83341b2
......@@ -9,8 +9,8 @@ lemma asr_0: eq (asr zeros 1) zeros
lemma asr_1: eq (asr (of_int 1) 1) zeros
lemma asr_f: eq (asr ones 1) ones
lemma xor_0: forall w. 0 <= w < 256 -> to_uint (bw_xor (of_int w) zeros) = w
lemma xor_1: forall w. 0 <= w < 256 -> to_uint (bw_xor (of_int w) ones) = 255 - w
lemma xor_0: forall w. 0 <= w < 256 -> t'int (bw_xor (of_int w) zeros) = w
lemma xor_1: forall w. 0 <= w < 256 -> t'int (bw_xor (of_int w) ones) = 255 - w
lemma or_0: forall w. bw_or zeros w = w
......@@ -41,7 +41,7 @@ end
module KaratAvr
use import avrmodel2.AVRint
use import avrmodel.AVRint
use import int.Int
use import int.EuclideanDivision
use import bv.Pow2int
......@@ -49,26 +49,9 @@ use import AvrModelLemmas
use BV_asr_Lemmas
use bv.BV8
let mul16 (): unit
ensures { uint 4 reg 12 = old(uint 2 reg 2 * uint 2 reg 7) }
=
clr r23;
mul r3 r8;
movw r14 r0;
mul r2 r7;
movw r12 r0;
mul r2 r8;
add r13 r0;
adc r14 r1;
adc r15 r23;
mul r3 r7;
add r13 r0;
adc r14 r1;
adc r15 r23
use import int.Abs
use avrmodel2.Shadow as S
use avrmodel.Shadow as S
lemma mul_bound_preserve:
forall x y l. 0 <= x <= l -> 0 <= y <= l -> x*y <= l*l
......@@ -208,9 +191,7 @@ ensures { reg[27] = if old (uint 3 reg 5 < uint 3 reg 17) then 0xFF else 0x00 }
end;
(* ;--- Compute H + (l3l4l5) --- *)
(*
S.init();
*)
(* S.init(); *)
abstract
ensures { S.synchronized S.shadow reg }
ensures { uint 3 reg 11 + pow2 24*uint 3 reg 20 = old (uint 3 reg 11 + uint 3 reg 14*uint 3 reg 17) }
......@@ -259,9 +240,7 @@ ensures { reg[18] = 0 /\ reg[19] = 0 }
end;
(* ;--- Compute M --- *)
(*
S.init();
*)
(* S.init(); *)
abstract
ensures { S.synchronized S.shadow reg }
ensures { uint 6 reg 14 = old (uint 3 reg 2*uint 3 reg 5) }
......@@ -305,9 +284,7 @@ ensures { uint 6 reg 14 = old (uint 3 reg 2*uint 3 reg 5) }
end;
(* TODO optimize/analyse me? *)
(*
S.init();
*)
(* S.init(); *)
abstract
ensures { S.synchronized S.shadow reg }
ensures { uint 6 reg 8 + pow2 48*uint 3 reg 20 + ?cf*pow2 48 = old (uint 6 reg 8 + pow2 48*uint 3 reg 20 + uint 3 reg 11 + pow2 24*uint 3 reg 20) }
......@@ -331,9 +308,7 @@ ensures { old(uint 3 reg 8) + pow2 24*uint 6 reg 8 + pow2 72*uint 3 reg 20 + ?cf
S.modify_r8(); S.modify_r9(); S.modify_r10(); S.modify_r11(); S.modify_r12(); S.modify_r13();
end;
(*
S.init();
*)
(* S.init(); *)
abstract
ensures { S.synchronized S.shadow reg }
(*
......
......@@ -5,707 +5,696 @@
<prover id="0" name="CVC3" version="2.4.1" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="1" name="Z3" version="4.5.0" alternative="noBV" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="3" name="Alt-Ergo" version="1.30" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="4" name="Z3" version="4.5.0" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="5" name="Eprover" version="1.8-001" timelimit="13" steplimit="1" memlimit="1000"/>
<prover id="6" name="CVC4" version="1.4" alternative="noBV" timelimit="1" steplimit="1" memlimit="1000"/>
<file name="../avr_code22.mlw" expanded="true">
<theory name="BV_asr_Lemmas" sum="646263204e087b998e1f24b51f9d656b">
<goal name="asr_0">
<prover id="7" name="Alt-Ergo" version="2.0.0" timelimit="13" steplimit="1" memlimit="1000"/>
<file name="../avr_code22.mlw">
<theory name="BV_asr_Lemmas" sum="b2ac5c98d455a3ac2608dcfd48008ae0">
<goal name="asr_0" expl="">
<proof prover="6" timelimit="13"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="asr_1">
<transf name="compute_in_goal">
<goal name="asr_1.1" expl="1.">
<proof prover="0"><result status="valid" time="5.79"/></proof>
</goal>
</transf>
<goal name="asr_1" expl="">
<proof prover="0" steplimit="0"><result status="valid" time="2.77"/></proof>
</goal>
<goal name="asr_f">
<goal name="asr_f" expl="">
<proof prover="6" timelimit="13"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="xor_0">
<goal name="xor_0" expl="">
<proof prover="2"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="xor_1">
<goal name="xor_1" expl="">
<proof prover="2"><result status="valid" time="0.16"/></proof>
</goal>
<goal name="or_0">
<goal name="or_0" expl="">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="pow2_72">
<proof prover="0"><result status="valid" time="0.21"/></proof>
<goal name="pow2_72" expl="">
<proof prover="0"><result status="valid" time="0.57"/></proof>
</goal>
<goal name="pow2_80">
<proof prover="0"><result status="valid" time="0.25"/></proof>
<goal name="pow2_80" expl="">
<proof prover="0"><result status="valid" time="0.62"/></proof>
</goal>
<goal name="pow2_88">
<proof prover="0"><result status="valid" time="0.29"/></proof>
<goal name="pow2_88" expl="">
<proof prover="0"><result status="valid" time="0.96"/></proof>
</goal>
<goal name="pow2_96">
<proof prover="0"><result status="valid" time="0.33"/></proof>
<goal name="pow2_96" expl="">
<proof prover="0"><result status="valid" time="0.89"/></proof>
</goal>
<goal name="pow2_104">
<proof prover="0"><result status="valid" time="0.38"/></proof>
<goal name="pow2_104" expl="">
<proof prover="0"><result status="valid" time="1.04"/></proof>
</goal>
<goal name="pow2_112">
<proof prover="0"><result status="valid" time="0.43"/></proof>
<goal name="pow2_112" expl="">
<proof prover="0"><result status="valid" time="1.18"/></proof>
</goal>
<goal name="pow2_120">
<proof prover="0"><result status="valid" time="0.45"/></proof>
<goal name="pow2_120" expl="">
<proof prover="0"><result status="valid" time="1.39"/></proof>
</goal>
<goal name="pow2_128">
<proof prover="0"><result status="valid" time="0.51"/></proof>
<goal name="pow2_128" expl="">
<proof prover="0"><result status="valid" time="1.36"/></proof>
</goal>
</theory>
<theory name="AvrModelLemmas" sum="310d90b909f3ead63a6ffd3b60619308">
<goal name="register_file_invariant_strengthen">
<proof prover="3"><result status="valid" time="0.01" steps="70"/></proof>
<theory name="AvrModelLemmas" sum="87dbeaeb2b692c5a43746264fb6fc888">
<goal name="register_file_invariant_strengthen" expl="">
<proof prover="7"><result status="valid" time="0.01" steps="70"/></proof>
<transf name="compute_in_goal">
<goal name="register_file_invariant_strengthen.1" expl="1.">
<goal name="register_file_invariant_strengthen.1" expl="">
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
<goal name="pow_split">
<goal name="pow_split" expl="">
<transf name="compute_in_goal">
<goal name="pow_split.1" expl="1.">
<goal name="pow_split.1" expl="">
<proof prover="1"><result status="valid" time="0.25"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="KaratAvr" sum="9cde42a154b088057f0da272604a7fb4" expanded="true">
<goal name="WP_parameter mul16" expl="VC for mul16">
<transf name="compute_in_goal">
<goal name="WP_parameter mul16.1" expl="1. VC for mul16">
<proof prover="6" timelimit="13"><result status="valid" time="0.47"/></proof>
</goal>
</transf>
</goal>
<goal name="mul_bound_preserve">
<theory name="KaratAvr" sum="142f7cc56838b108a6cf52e682fe22a4">
<goal name="mul_bound_preserve" expl="">
<proof prover="5"><result status="valid" time="0.13"/></proof>
</goal>
<goal name="WP_parameter karatsuba48_marked" expl="VC for karatsuba48_marked">
<transf name="split_goal_wp">
<goal name="WP_parameter karatsuba48_marked.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.1" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.1.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.21"/></proof>
<goal name="WP_parameter karatsuba48_marked.1.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.46"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.2" expl="2. precondition">
<goal name="WP_parameter karatsuba48_marked.2" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.2.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.22"/></proof>
<goal name="WP_parameter karatsuba48_marked.2.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.41"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.3" expl="3. precondition">
<goal name="WP_parameter karatsuba48_marked.3" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.3.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.22"/></proof>
<goal name="WP_parameter karatsuba48_marked.3.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.55"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.4" expl="4. precondition">
<goal name="WP_parameter karatsuba48_marked.4" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.4.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.22"/></proof>
<goal name="WP_parameter karatsuba48_marked.4.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.53"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.5" expl="5. precondition">
<goal name="WP_parameter karatsuba48_marked.5" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.5.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.5.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.25"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.6" expl="6. precondition">
<goal name="WP_parameter karatsuba48_marked.6" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.6.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.27"/></proof>
<goal name="WP_parameter karatsuba48_marked.6.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.45"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.7" expl="7. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.7" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.7.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.24"/></proof>
<goal name="WP_parameter karatsuba48_marked.7.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="2.08"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.8" expl="8. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.8" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.8.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="1.58"/></proof>
<goal name="WP_parameter karatsuba48_marked.8.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.00"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.9" expl="9. precondition">
<goal name="WP_parameter karatsuba48_marked.9" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.9.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.35"/></proof>
<goal name="WP_parameter karatsuba48_marked.9.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.50"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.10" expl="10. precondition">
<goal name="WP_parameter karatsuba48_marked.10" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.10.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.10.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.35"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.11" expl="11. precondition">
<goal name="WP_parameter karatsuba48_marked.11" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.11.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.11.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.38"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.12" expl="12. precondition">
<goal name="WP_parameter karatsuba48_marked.12" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.12.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.40"/></proof>
<goal name="WP_parameter karatsuba48_marked.12.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.56"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.13" expl="13. precondition">
<goal name="WP_parameter karatsuba48_marked.13" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.13.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.13.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.40"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.14" expl="14. precondition">
<goal name="WP_parameter karatsuba48_marked.14" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.14.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.14.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.39"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.15" expl="15. precondition">
<goal name="WP_parameter karatsuba48_marked.15" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.15.1" expl="1. precondition">
<goal name="WP_parameter karatsuba48_marked.15.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.43"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.16" expl="16. precondition">
<goal name="WP_parameter karatsuba48_marked.16" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.16.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.42"/></proof>
<goal name="WP_parameter karatsuba48_marked.16.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.58"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.17" expl="17. precondition">
<goal name="WP_parameter karatsuba48_marked.17" expl="precondition">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.17.1" expl="1. precondition">
<proof prover="6"><result status="valid" time="0.33"/></proof>
<goal name="WP_parameter karatsuba48_marked.17.1" expl="precondition">
<proof prover="6"><result status="valid" time="0.70"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.18" expl="18. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.18" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.18.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.89"/></proof>
<goal name="WP_parameter karatsuba48_marked.18.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.41"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.19" expl="19. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.19" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.19.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="1.93"/></proof>
<goal name="WP_parameter karatsuba48_marked.19.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.69"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.20" expl="20. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.20" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.20.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.12"/></proof>
<goal name="WP_parameter karatsuba48_marked.20.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.83"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.21" expl="21. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.21" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.21.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.13"/></proof>
<goal name="WP_parameter karatsuba48_marked.21.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="2.04"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.22" expl="22. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.22" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.22.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.15"/></proof>
<goal name="WP_parameter karatsuba48_marked.22.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.68"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.23" expl="23. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.23" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.23.1" expl="1. VC for karatsuba48_marked">
<proof prover="0" timelimit="1" steplimit="-1"><result status="valid" time="0.56"/></proof>
<goal name="WP_parameter karatsuba48_marked.23.1" expl="VC for karatsuba48_marked">
<proof prover="0" timelimit="1" steplimit="-1"><result status="valid" time="0.84"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.24" expl="24. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.24" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.24.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.28"/></proof>
<goal name="WP_parameter karatsuba48_marked.24.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.59"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.25" expl="25. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.25" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.25.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.34"/></proof>
<goal name="WP_parameter karatsuba48_marked.25.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="2.22"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.26" expl="26. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.26" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.26.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.21"/></proof>
<goal name="WP_parameter karatsuba48_marked.26.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.83"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.27" expl="27. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.27" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.27.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.33"/></proof>
<goal name="WP_parameter karatsuba48_marked.27.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.29"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.28" expl="28. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.28" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.28.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.57"/></proof>
<goal name="WP_parameter karatsuba48_marked.28.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.91"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.29" expl="29. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.29" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.29.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.19"/></proof>
<goal name="WP_parameter karatsuba48_marked.29.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.67"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.30" expl="30. assertion">
<goal name="WP_parameter karatsuba48_marked.30" expl="assertion">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.30.1" expl="1. assertion">
<proof prover="2" steplimit="-1"><result status="valid" time="2.23"/></proof>
<goal name="WP_parameter karatsuba48_marked.30.1" expl="assertion">
<proof prover="2" steplimit="-1"><result status="valid" time="3.20"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.31" expl="31. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.31" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.31.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.72"/></proof>
<goal name="WP_parameter karatsuba48_marked.31.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.99"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.32" expl="32. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.32" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.32.1" expl="1. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.32.1" expl="VC for karatsuba48_marked">
<transf name="eliminate_if_term">
<goal name="WP_parameter karatsuba48_marked.32.1.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.53"/></proof>
<goal name="WP_parameter karatsuba48_marked.32.1.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="4.92"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.33" expl="33. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.33" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.33.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.02"/></proof>
<goal name="WP_parameter karatsuba48_marked.33.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="3.10"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.34" expl="34. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.34" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.34.1" expl="1. VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="0.74"/></proof>
<goal name="WP_parameter karatsuba48_marked.34.1" expl="VC for karatsuba48_marked">
<proof prover="6"><result status="valid" time="1.00"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.35" expl="35. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.35" expl="VC for karatsuba48_marked">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.35.1" expl="1. VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="1.73"/></proof>
<goal name="WP_parameter karatsuba48_marked.35.1" expl="VC for karatsuba48_marked">
<proof prover="6" timelimit="13"><result status="valid" time="2.38"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.36" expl="36. assertion">
<goal name="WP_parameter karatsuba48_marked.36" expl="assertion">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.36.1" expl="1. assertion">
<proof prover="6" timelimit="13"><result status="valid" time="3.33"/></proof>
<goal name="WP_parameter karatsuba48_marked.36.1" expl="assertion">
<proof prover="6" timelimit="13"><result status="valid" time="4.32"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.37" expl="37. assertion">
<goal name="WP_parameter karatsuba48_marked.37" expl="assertion">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.37.1" expl="1. assertion">
<proof prover="6" timelimit="13"><result status="valid" time="2.63"/></proof>
<goal name="WP_parameter karatsuba48_marked.37.1" expl="assertion">
<proof prover="6" timelimit="13"><result status="valid" time="3.48"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.38" expl="38. assertion">
<goal name="WP_parameter karatsuba48_marked.38" expl="assertion">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.38.1" expl="1. assertion">
<proof prover="6" timelimit="13"><result status="valid" time="2.43"/></proof>
<goal name="WP_parameter karatsuba48_marked.38.1" expl="assertion">
<proof prover="6" timelimit="13"><result status="valid" time="3.22"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.39" expl="39. assertion">
<goal name="WP_parameter karatsuba48_marked.39" expl="assertion">
<transf name="split_goal_wp">
<goal name="WP_parameter karatsuba48_marked.39.1" expl="1. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.39.1" expl="VC for karatsuba48_marked">
<proof prover="0" steplimit="-1"><result status="valid" time="0.31"/></proof>
</goal>
<goal name="WP_parameter karatsuba48_marked.39.2" expl="2. VC for karatsuba48_marked">
<goal name="WP_parameter karatsuba48_marked.39.2" expl="VC for karatsuba48_marked">
<proof prover="5" steplimit="-1"><result status="valid" time="0.28"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter karatsuba48_marked.40" expl="40. assertion">
<goal name="WP_parameter karatsuba48_marked.40" expl="assertion">
<transf name="compute_in_goal">
<goal name="WP_parameter karatsuba48_marked.40.1" expl="1. assertion">
<proof prover="0" steplimit="-1"><result status="valid" time="1.82"/></proof>
<goal name="WP_parameter karatsuba48_marked.40.1" expl="assertion">