Une MAJ de sécurité est nécessaire sur notre version actuelle. Elle sera effectuée lundi 02/08 entre 12h30 et 13h. L'interruption de service devrait durer quelques minutes (probablement moins de 5 minutes).

Commit a99cc75e authored by Raphael Rieu-Helft's avatar Raphael Rieu-Helft
Browse files

Remove almost all by/so proofs in addition

parent 082d207d
......@@ -830,7 +830,6 @@ let rinv (a:t)
end
end
module LinearDecisionRational
use import RationalCoeffs
......@@ -1074,18 +1073,21 @@ let mmul (a b:t)
= match a, b with
| (q1,e1), (q2,e2) ->
let q = Q.rmul q1 q2 in
let e = add_exp e1 e2 in
assert { forall y. minterp (q,e) y = minterp a y *. minterp b y
by let p1 = pow rradix (from_int (interp_exp e1 y)) in
let p2 = pow rradix (from_int (interp_exp e2 y)) in
let p = pow rradix (from_int (interp_exp e y)) in
interp_exp e y = interp_exp e1 y + interp_exp e2 y
so p = p1 *. p2
so minterp (q,e) y = qinterp q *. p
= (qinterp q1 *. qinterp q2) *. p
= (qinterp q1 *. qinterp q2) *. p1 *. p2
= minterp a y *. minterp b y };
(q,e)
if Q.req q Q.rzero then mzero
else begin
let e = add_exp e1 e2 in
assert { forall y. minterp (q,e) y = minterp a y *. minterp b y
by let p1 = pow rradix (from_int (interp_exp e1 y)) in
let p2 = pow rradix (from_int (interp_exp e2 y)) in
let p = pow rradix (from_int (interp_exp e y)) in
interp_exp e y = interp_exp e1 y + interp_exp e2 y
so p = p1 *. p2
so minterp (q,e) y = qinterp q *. p
= (qinterp q1 *. qinterp q2) *. p
= (qinterp q1 *. qinterp q2) *. p1 *. p2
= minterp a y *. minterp b y };
(q,e)
end
end
let mopp (a:t)
......@@ -1282,6 +1284,16 @@ goal g': forall a b i j: int.
i+1 = j ->
(power radix j) * a = radix*b
goal g'': forall r r' i c x x' y l: int.
c = 0 ->
r + power radix i * c = x + y ->
r' = r + power radix i * l ->
x' = x + power radix i * l ->
r' + power radix (i+1) * c = x' + y
(*tries to add power radix i and power radix (i+1), fails
-> cst propagation ? *)
end
module TI
......
......@@ -1895,7 +1895,7 @@
</transf>
</goal>
</theory>
<theory name="MP64Coeffs" proved="true" sum="59e49ba42437c8635bc3d6235c8d7438">
<theory name="MP64Coeffs" proved="true" sum="3a8c8b51b01ad073535e1a8f5b36fc15">
<goal name="VC mzero" expl="VC for mzero" proved="true">
<proof prover="2"><result status="valid" time="0.02"/></proof>
</goal>
......@@ -2144,38 +2144,41 @@
</goal>
<goal name="VC mmul" expl="VC for mmul" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC mmul.0" expl="assertion" proved="true">
<goal name="VC mmul.0" expl="postcondition" proved="true">
<proof prover="3"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="VC mmul.1" expl="assertion" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC mmul.0.0" expl="assertion" proved="true">
<goal name="VC mmul.1.0" expl="assertion" proved="true">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="VC mmul.0.1" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.03" steps="10"/></proof>
<goal name="VC mmul.1.1" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.03" steps="13"/></proof>
</goal>
<goal name="VC mmul.0.2" expl="VC for mmul" proved="true">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<goal name="VC mmul.1.2" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.02" steps="12"/></proof>
</goal>
<goal name="VC mmul.0.3" expl="VC for mmul" proved="true">
<goal name="VC mmul.1.3" expl="VC for mmul" proved="true">
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC mmul.0.4" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.03" steps="8"/></proof>
<goal name="VC mmul.1.4" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.03" steps="9"/></proof>
</goal>
<goal name="VC mmul.0.5" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.04" steps="9"/></proof>
<goal name="VC mmul.1.5" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.04" steps="12"/></proof>
</goal>
<goal name="VC mmul.0.6" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.02" steps="12"/></proof>
<goal name="VC mmul.1.6" expl="VC for mmul" proved="true">
<proof prover="0"><result status="valid" time="0.03" steps="13"/></proof>
</goal>
</transf>
</goal>
<goal name="VC mmul.1" expl="postcondition" proved="true">
<goal name="VC mmul.2" expl="postcondition" proved="true">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="VC mmul.2" expl="exceptional postcondition" proved="true">
<goal name="VC mmul.3" expl="exceptional postcondition" proved="true">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="VC mmul.3" expl="exceptional postcondition" proved="true">
<goal name="VC mmul.4" expl="exceptional postcondition" proved="true">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
......@@ -2438,7 +2441,7 @@
<proof prover="2"><result status="valid" time="0.10"/></proof>
</goal>
</theory>
<theory name="TestMP" proved="true" sum="affc07b7daa8e76697c500d698debc64">
<theory name="TestMP" sum="e261877e08f5a8ba4f1586cc3e8e3b4f">
<goal name="g" proved="true">
<transf name="reflection_f" proved="true" arg1="mp_decision">
<goal name="g.0" expl="reification check" proved="true">
......@@ -2514,6 +2517,22 @@
</goal>
</transf>
</goal>
<goal name="g&#39;&#39;">
<transf name="replace" arg1="c" arg2="0">
<goal name="g&#39;&#39;.0">
<transf name="replace" arg1="c" arg2="0" arg3="in" arg4="H2">
<goal name="g&#39;&#39;.0.0">
</goal>
<goal name="g&#39;&#39;.0.1" proved="true">
<proof prover="2"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="g&#39;&#39;.1" proved="true">
<proof prover="2"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="TI" sum="f65ffb4d889019a8435ba0d47668c91d">
<goal name="g">
......
......@@ -509,14 +509,12 @@ module N
value x !i + value y !i
by value r !i = (value r !i at StartLoop) };
c := carry;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts r) r.offset (r.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
value_sub_tail (pelts y) y.offset (y.offset + k);
assert { value r !i + (power radix !i) * !c =
value x !i + value y !i
by
value_tail r !i;
value_tail x !i;
value_tail y !i;
assert { value r (!i+1) + (power radix (!i+1)) * !c =
value x (!i+1) + value y (!i+1)
(*by
value r !i + (power radix !i) * !c
= value r k + (power radix k) * res
+ (power radix !i) * !c
......@@ -535,7 +533,8 @@ module N
+ value y k + (power radix k) * !ly
= value x !i
+ (value y k + (power radix k) * !ly)
= value x !i + value y !i }
= value x !i + value y !i*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
!c
......@@ -571,14 +570,12 @@ module N
assert { value r !i + (power radix !i) * !c =
value x !i + value y !i };
c := carry;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts r) r.offset (r.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
value_sub_tail (pelts y) y.offset (y.offset + k);
assert { value r !i + (power radix !i) * !c =
value x !i + value y !i
by
value_tail r !i;
value_tail x !i;
value_tail y !i;
assert { value r (!i+1) + (power radix (!i+1)) * !c =
value x (!i+1) + value y (!i+1)
(*by
value r !i + (power radix !i) * !c
= value r k + (power radix k) * res
+ (power radix !i) * !c
......@@ -597,7 +594,8 @@ module N
+ value y k + (power radix k) * !ly
= value x !i
+ (value y k + (power radix k) * !ly)
= value x !i + value y !i };
= value x !i + value y !i*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
try
begin while Int32.(<) !i sx do
......@@ -614,13 +612,11 @@ module N
assert { value r !i + (power radix !i) * !c =
value x !i + value y sy };
c := carry;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts r) r.offset (r.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
assert { value r !i + (power radix !i) * !c =
value x !i + value y sy
by
value_tail r !i;
value_tail x !i;
assert { value r (!i+1) + (power radix (!i+1)) * !c =
value x (!i+1) + value y sy
(*by
value r !i + (power radix !i) * !c
= value r k + (power radix k) * res
+ (power radix !i) * !c
......@@ -634,7 +630,8 @@ module N
= value x k + value y sy
+ (power radix k) * !lx
= value x !i
+ value y sy }
+ value y sy*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
assert { !i = sx }
end
......@@ -649,12 +646,14 @@ module N
assert { !c = 0 by !i < sx };
lx := get_ofs x !i;
set_ofs r !i !lx;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts r) r.offset (r.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
assert { value r !i + power radix !i * !c
= value x !i + value y sy
(*assert { value r !i + (power radix !i) * !c =
value x !i + value y sy };*) (* false without this, cannotreduce with this *)
value_tail r !i;
value_tail x !i;
assert { value r !i = value x !i + value y sy }; (* true with this, should not be needed *)
assert { value r (!i+1) + power radix (!i+1) * !c
= value x (!i+1) + value y sy
(*
by
value r !i + power radix !i * !c
= value r !i
......@@ -663,8 +662,8 @@ module N
= value x k + power radix k * !lx
so value r k
= value r k + power radix k * !c
= value x k + value y sy
}
= value x k + value y sy*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
!c
......@@ -697,7 +696,7 @@ module N
(pelts x)[j] = (pelts (old x))[j] }
label StartLoop in
lx := get_ofs x !i;
assert { !lx = (pelts ox)[x.offset + !i] };
assert { !lx = (pelts ox)[ox.offset + !i] };
ly := get_ofs y !i;
let res, carry = add_with_carry !lx !ly !c in
set_ofs x !i res;
......@@ -709,14 +708,12 @@ module N
= (pelts ox)[x.offset + j]};
assert { value x !i + (power radix !i) * !c = value ox !i + value y !i };
c := carry;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts x) x.offset (x.offset + k);
value_sub_tail (pelts ox) x.offset (x.offset + k);
value_sub_tail (pelts y) y.offset (y.offset + k);
assert { value x !i + (power radix !i) * !c =
value ox !i + value y !i
by value ox k + (power radix k) * !lx
value_tail x !i;
value_tail ox !i;
value_tail y !i;
assert { value x (!i+1) + (power radix (!i+1)) * !c =
value ox (!i+1) + value y (!i+1)
(*by value ox k + (power radix k) * !lx
= value ox !i
so value x !i + (power radix !i) * !c
= value x k + (power radix k) * res
......@@ -736,7 +733,8 @@ module N
+ (value y k + (power radix k) * !ly)
= value ox !i
+ (value y k + (power radix k) * !ly)
= value ox !i + value y !i };
= value ox !i + value y !i*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
try
while Int32.(<) !i sx do
......@@ -752,7 +750,7 @@ module N
(if (Limb.(=) !c limb_zero) then raise ReturnLimb limb_zero);
label StartLoop2 in
lx := get_ofs x !i;
assert { !lx = (pelts ox)[x.offset + !i] };
assert { !lx = (pelts ox)[ox.offset + !i] };
let res, carry = add_with_carry !lx limb_zero !c in
value_sub_update_no_change (pelts x) (x.offset + p2i !i)
(x.offset + p2i !i + 1)
......@@ -760,15 +758,13 @@ module N
set_ofs x !i res;
assert { value x !i + (power radix !i) * !c = value ox !i + value y sy };
c := carry;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
assert { forall j. !i <= j < sx ->
assert { forall j. !i < j < sx ->
(pelts x)[x.offset + j] = (pelts ox) [x.offset + j] };
value_sub_tail (pelts ox) x.offset (x.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
assert { value x !i + (power radix !i) * !c =
value ox !i + value y sy
by value ox k + (power radix k) * !lx
value_tail ox !i;
value_tail x !i;
assert { value x (!i+1) + (power radix (!i+1)) * !c =
value ox (!i+1) + value y sy
(*by value ox k + (power radix k) * !lx
= value ox !i
so
value x !i + (power radix !i) * !c
......@@ -784,7 +780,8 @@ module N
= value ox k + value y sy
+ (power radix k) * !lx
= value ox !i
+ value y sy }
+ value y sy*) };
i := Int32.(+) !i (Int32.of_int 1);
done;
assert { !i = sx };
!c
......@@ -798,17 +795,7 @@ module N
value_sub_frame (pelts x) (pelts ox) (x.offset + p2i !i) (x.offset + p2i sx);
value_sub_concat (pelts x) x.offset (x.offset + p2i !i) (x.offset + p2i sx);
value_sub_concat (pelts ox) x.offset (x.offset + p2i !i) (x.offset + p2i sx);
assert { value x sx = value (old x) sx + value y sy
by value x sx
= value x !i
+ (power radix !i)
* value_sub (pelts ox) (x.offset + !i) (x.offset + sx)
= value ox !i
+ (power radix !i)
* value_sub (pelts ox) (x.offset + !i) (x.offset + sx)
+ value y sy
= value_sub (pelts ox) x.offset (x.offset + sx) + value y sy
= value ox sx + value y sy };
assert { value x sx = value (old x) sx + value y sy };
n
end
end
......@@ -843,13 +830,11 @@ module N
assert { value r !i - power radix !i * !b =
value x !i - y };
b := borrow;
let ghost k = p2i !i in
i := Int32.(+) !i (Int32.of_int 1);
value_sub_tail (pelts r) r.offset (r.offset + k);
value_sub_tail (pelts x) x.offset (x.offset + k);
assert { value r !i - power radix !i * !b
= value x !i - y
by
value_tail r !i;
value_tail x !i;
assert { value r (!i+1) - power radix (!i+1) * !b
= value x (!i+1) - y
(*by
value r !i - power radix !i * !b
= value r k + power radix k * res
- power radix !i * !b
......@@ -861,8 +846,9 @@ module N
= value r k - power radix k * (!b at StartLoop)
+ power radix k * !lx
= value x k - y + power radix k * !lx
= value x !i - y
= value x !i - y*)
};
i := Int32.(+) !i (Int32.of_int 1);
done;
if Int32.(=) !i sz then !b
else begin
......
......@@ -9,7 +9,7 @@
<prover id="4" name="Z3" version="4.4.1" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="9" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../mp2.mlw">
<theory name="N" sum="941993c0d480e5194e8a0c0c18697143">
<theory name="N" sum="53866c76966fde73cb2034a34e36781d">
<goal name="VC map_eq_shift" expl="VC for map_eq_shift" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC map_eq_shift.0" expl="postcondition" proved="true">
......@@ -666,10 +666,10 @@
<goal name="VC add_limb.11.0.0" expl="assertion">
<transf name="reflection_f" arg1="mp_decision">
<goal name="VC add_limb.11.0.0.0" expl="assertion">
<proof prover="0" obsolete="true"><result status="timeout" time="4.94"/></proof>
<proof prover="2" timelimit="1" obsolete="true"><result status="timeout" time="1.00"/></proof>
<proof prover="3" obsolete="true" edited="mp2-N-GR_1.smt2"><result status="timeout" time="1.00"/></proof>
<proof prover="9" timelimit="1" obsolete="true"><result status="timeout" time="1.00"/></proof>
<proof prover="0"><result status="timeout" time="4.94"/></proof>
<proof prover="2" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="3" edited="mp2-N-GR_1.smt2"><result status="timeout" time="1.00"/></proof>
<proof prover="9" timelimit="1"><result status="timeout" time="1.00"/></proof>
<transf name="cut" arg1="(interp_eq (Add (UTerm 0) (Term (E (Plus (Var 2) (Lit 1))) 1), Add (UTerm 3) (UTerm 4)) y z = True)">
<goal name="VC add_limb.11.0.0.0.0" expl="assertion" proved="true">
<transf name="revert" proved="true" arg1="h">
......@@ -683,17 +683,17 @@
</transf>
</goal>
<goal name="VC add_limb.11.0.0.0.1">
<proof prover="2" timelimit="1" obsolete="true"><result status="timeout" time="1.00"/></proof>
<proof prover="3" obsolete="true"><result status="timeout" time="1.00"/></proof>
<proof prover="9" timelimit="1" obsolete="true"><result status="timeout" time="1.02"/></proof>
<proof prover="2" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="3"><result status="timeout" time="1.00"/></proof>
<proof prover="9" timelimit="1"><result status="timeout" time="1.02"/></proof>
<transf name="revert" arg1="HR">
<goal name="VC add_limb.11.0.0.0.1.0">
<transf name="compute_in_goal" >
<goal name="VC add_limb.11.0.0.0.1.0.0">
<proof prover="0" timelimit="20" obsolete="true"><result status="timeout" time="19.70"/></proof>
<proof prover="2" timelimit="20" memlimit="2000" obsolete="true"><result status="unknown" time="20.05"/></proof>
<proof prover="3" timelimit="20" memlimit="2000" obsolete="true" edited="mp2-N-h_1.smt2"><result status="timeout" time="20.00"/></proof>
<proof prover="9" timelimit="20" memlimit="2000" obsolete="true"><result status="timeout" time="20.00"/></proof>
<proof prover="0" timelimit="20"><result status="timeout" time="19.70"/></proof>
<proof prover="2" timelimit="20" memlimit="2000"><result status="unknown" time="20.05"/></proof>
<proof prover="3" timelimit="20" memlimit="2000" edited="mp2-N-h_1.smt2"><result status="timeout" time="20.00"/></proof>
<proof prover="9" timelimit="20" memlimit="2000"><result status="timeout" time="20.00"/></proof>
<transf name="split_all_full" >
<goal name="VC add_limb.11.0.0.0.1.0.0.0" proved="true">
<proof prover="3"><result status="valid" time="0.11"/></proof>
......@@ -721,7 +721,7 @@
<goal name="VC add_limb.11.0.0.0.1.0.0.8">
<transf name="clear_but" arg1="map_alias,y_val2,y_val19,y_val12,y_val3,y_val14,H21">
<goal name="VC add_limb.11.0.0.0.1.0.0.8.0">
<proof prover="9" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="9.98"/></proof>
<proof prover="9" timelimit="10" memlimit="2000"><result status="timeout" time="9.98"/></proof>
</goal>
</transf>
<transf name="rewrite" arg1="y_val2">
......@@ -738,7 +738,7 @@
<goal name="VC add_limb.11.0.0.0.1.0.0.8.0.0.0.0.0.0">
<transf name="clear_but" arg1="y_val14">
<goal name="VC add_limb.11.0.0.0.1.0.0.8.0.0.0.0.0.0.0">
<proof prover="3" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="3" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
</goal>
</transf>
</goal>
......@@ -758,7 +758,7 @@
<proof prover="3"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.10">
<proof prover="3" obsolete="true"><result status="timeout" time="1.00"/></proof>
<proof prover="3"><result status="timeout" time="1.00"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.11" proved="true">
<proof prover="3"><result status="valid" time="0.10"/></proof>
......@@ -770,31 +770,31 @@
<proof prover="3"><result status="valid" time="0.11"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.14">
<proof prover="0" timelimit="20" obsolete="true"><result status="timeout" time="19.86"/></proof>
<proof prover="2" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="3" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="9.99"/></proof>
<proof prover="0" timelimit="20"><result status="timeout" time="19.86"/></proof>
<proof prover="2" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
<proof prover="3" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000"><result status="timeout" time="9.99"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.15" proved="true">
<proof prover="3"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.16">
<proof prover="0" timelimit="20" obsolete="true"><result status="timeout" time="19.77"/></proof>
<proof prover="2" timelimit="10" memlimit="2000" obsolete="true"><result status="unknown" time="10.80"/></proof>
<proof prover="3" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="0" timelimit="20"><result status="timeout" time="19.77"/></proof>
<proof prover="2" timelimit="10" memlimit="2000"><result status="unknown" time="10.80"/></proof>
<proof prover="3" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.17">
<proof prover="0" timelimit="20" obsolete="true"><result status="timeout" time="19.73"/></proof>
<proof prover="2" timelimit="10" memlimit="2000" obsolete="true"><result status="unknown" time="10.84"/></proof>
<proof prover="3" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000" obsolete="true"><result status="timeout" time="9.99"/></proof>
<proof prover="0" timelimit="20"><result status="timeout" time="19.73"/></proof>
<proof prover="2" timelimit="10" memlimit="2000"><result status="unknown" time="10.84"/></proof>
<proof prover="3" timelimit="10" memlimit="2000"><result status="timeout" time="10.00"/></proof>
<proof prover="9" timelimit="10" memlimit="2000"><result status="timeout" time="9.99"/></proof>
</goal>
<goal name="VC add_limb.11.0.0.0.1.0.0.18" proved="true">
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC add_limb.13.0.0.0.1.0.0.14">
<proof prover="2" timelimit="1" obsolete="true"><result status="valid" time="0.15"/></proof>
<proof prover="2" timelimit="1"><result status="valid" time="0.15"/></proof>
</goal>
</transf>
</goal>
......@@ -926,8 +926,8 @@
</goal>
</transf>
</goal>
<goal name="VC add_limbs" expl="VC for add_limbs" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC add_limbs" expl="VC for add_limbs">
<transf name="split_goal_wp" >
<goal name="VC add_limbs.0" expl="integer overflow" proved="true">
<proof prover="4"><result status="valid" time="0.02"/></proof>
<proof prover="9"><result status="valid" time="0.05" steps="18"/></proof>
......@@ -970,69 +970,62 @@
<goal name="VC add_limbs.9" expl="assertion" proved="true">
<proof prover="0"><result status="valid" time="0.98"/></proof>
</goal>
<goal name="VC add_limbs.10" expl="integer overflow" proved="true">
<proof prover="9"><result status="valid" time="0.03" steps="39"/></proof>
<goal name="VC add_limbs.10" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.06"/></proof>
<proof prover="9"><result status="valid" time="0.10" steps="30"/></proof>
</goal>
<goal name="VC add_limbs.11" expl="integer overflow" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC add_limbs.11.0" expl="integer overflow" proved="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
<goal name="VC add_limbs.11" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.04"/></proof>
<proof prover="9"><result status="valid" time="0.12" steps="31"/></proof>
</goal>
<goal name="VC add_limbs.12" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.01"/></proof>
<proof prover="9"><result status="valid" time="0.02" steps="33"/></proof>
</goal>
<goal name="VC add_limbs.13" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.04"/></proof>
<proof prover="9"><result status="valid" time="0.12" steps="34"/></proof>
</goal>
<goal name="VC add_limbs.14" expl="precondition" proved="true">
<proof prover="4"><result status="valid" time="0.06"/></proof>
<proof prover="9"><result status="valid" time="0.10" steps="35"/></proof>
<proof prover="9"><result status="valid" time="0.02" steps="32"/></proof>
</goal>
<goal name="VC add_limbs.15" expl="assertion" proved="true">
<transf name="split_goal_wp" proved="true" >
<goal name="VC add_limbs.15.0" expl="VC for add_limbs" proved="true">
<proof prover="0"><result status="valid" time="2.91"/></proof>
</goal>
<goal name="VC add_limbs.15.1" expl="VC for add_limbs" proved="true">
<proof prover="0"><result status="valid" time="3.78"/></proof>
</goal>
<goal name="VC add_limbs.15.2" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="VC add_limbs.15.3" expl="VC for add_limbs" proved="true">
<proof prover="0"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC add_limbs.15.4" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="VC add_limbs.15.5" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="VC add_limbs.15.6" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC add_limbs.15.7" expl="VC for add_limbs" proved="true">
<proof prover="1"><result status="valid" time="0.72"/></proof>
</goal>
<goal name="VC add_limbs.15.8" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC add_limbs.15.9" expl="VC for add_limbs" proved="true">
<transf name="cut" proved="true" arg1="(value y k + power radix k * ly = value y i)">
<goal name="VC add_limbs.15.9.0" expl="VC for add_limbs" proved="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
<goal name="VC add_limbs.13" expl="assertion">
<transf name="use_th" arg1="lineardecision.LinearDecisionIntMP">
<goal name="VC add_limbs.13.0" expl="assertion">
<transf name="reflection_f" arg1="mp_decision">
<goal name="VC add_limbs.13.0.0" expl="assertion">
</goal>
<goal name="VC add_limbs.15.9.1" proved="true">
<proof prover="0"><result status="valid" time="0.06"/></proof>
<goal name="VC add_limbs.13.0.1" proved="true">
<transf name="compute_in_goal" proved="true" >
</transf>
</goal>
<goal name="VC add_limbs.13.0.2" proved="true">
<transf name="compute_in_goal" proved="true" >
</transf>
</goal>
<goal name="VC add_limbs.13.0.3" proved="true">
<transf name="compute_in_goal" proved="true" >
<goal name="VC add_limbs.13.0.3.0" proved="true">
<proof prover="3"><result status="valid" time="0.07"/></proof>
</goal>
</transf>
</goal>