mirror of
https://github.com/AdaCore/why3.git
synced 2026-02-12 12:34:55 -08:00
3696 lines
240 KiB
XML
3696 lines
240 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
|
|
"https://www.why3.org/why3session.dtd">
|
|
<why3session shape_version="6">
|
|
<prover id="0" name="Alt-Ergo" version="2.0.0" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="1" name="Z3" version="3.2" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="2" name="Z3" version="4.7.1" timelimit="1" steplimit="0" memlimit="1000"/>
|
|
<prover id="3" name="Vampire" version="4.2.2" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="5" name="Alt-Ergo" version="2.4.3" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="10" name="CVC4" version="1.8" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="11" name="Z3" version="4.8.10" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="14" name="CVC5" version="1.1.2" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="15" name="Z3" version="4.13.2" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<prover id="16" name="Alt-Ergo" version="2.6.0" timelimit="5" steplimit="0" memlimit="1000"/>
|
|
<file format="whyml" proved="true">
|
|
<path name=".."/><path name="euler_sieve.mlw"/>
|
|
<theory name="ArithmeticResults" proved="true">
|
|
<goal name="mult_croissance_locale'vc" expl="VC for mult_croissance_locale" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.047493" steps="10368"/></proof>
|
|
</goal>
|
|
<goal name="mult_croissance'vc" expl="VC for mult_croissance" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.032052" steps="25"/></proof>
|
|
</goal>
|
|
<goal name="comp_mult_2'vc" expl="VC for comp_mult_2" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.016804" steps="28993"/></proof>
|
|
</goal>
|
|
<goal name="div_croissance_locale1'vc" expl="VC for div_croissance_locale1" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.270000" steps="35858"/></proof>
|
|
</goal>
|
|
<goal name="div_croissance1'vc" expl="VC for div_croissance1" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.037573" steps="61"/></proof>
|
|
</goal>
|
|
<goal name="div_croissance_locale2'vc" expl="VC for div_croissance_locale2" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.240000" steps="45824"/></proof>
|
|
</goal>
|
|
<goal name="div_croissance2'vc" expl="VC for div_croissance2" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.031613" steps="76322"/></proof>
|
|
</goal>
|
|
<goal name="div_mult_1'vc" expl="VC for div_mult_1" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.280000" steps="48521"/></proof>
|
|
</goal>
|
|
<goal name="mult_borne_sous_exp'vc" expl="VC for mult_borne_sous_exp" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.156163" steps="31735"/></proof>
|
|
</goal>
|
|
<goal name="sq_ineq'vc" expl="VC for sq_ineq" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.180000" steps="37965"/></proof>
|
|
</goal>
|
|
</theory>
|
|
<theory name="DivisibilityResults" proved="true">
|
|
<goal name="divides_div'vc" expl="VC for divides_div" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.070502" steps="1028"/></proof>
|
|
</goal>
|
|
<goal name="divides_inf'vc" expl="VC for divides_inf" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.056184" steps="775"/></proof>
|
|
</goal>
|
|
<goal name="not_prime_divider_limits'vc" expl="VC for not_prime_divider_limits" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.098590" steps="26137"/></proof>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc" expl="VC for no_prod_impl_no_divider" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="no_prod_impl_no_divider'vc.0" expl="postcondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(exists k:int. (2 <= k /\ k < n) /\ not k = i /\ divides k i)">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0" expl="true case (postcondition)" proved="true">
|
|
<transf name="destruct" proved="true" arg1="H">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0" expl="true case (postcondition)" proved="true">
|
|
<transf name="destruct" proved="true" arg1="H">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0" expl="destruct premise" proved="true">
|
|
<transf name="introduce_exists" proved="true" >
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0" expl="destruct premise" proved="true">
|
|
<transf name="assert" proved="true" arg1="(exists l:int. l * k = i)">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.079920" steps="14814"/></proof>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1" expl="destruct premise" proved="true">
|
|
<transf name="introduce_exists" proved="true" >
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0" expl="destruct premise" proved="true">
|
|
<transf name="exists" proved="true" arg1="k">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0" proved="true">
|
|
<transf name="exists" proved="true" arg1="l">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0.0" proved="true">
|
|
<transf name="case" proved="true" arg1="(l = i)">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0.0.0" expl="true case" proved="true">
|
|
<transf name="assert" proved="true" arg1="(k = 1)">
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="3"><result status="valid" time="0.080000"/></proof>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0.0.0.1" expl="true case" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.045226" steps="7977"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.0.0.1.0.0.0.1" expl="false case" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.836870" steps="16831"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc.0.0.0.1" expl="true case (postcondition)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.024276" steps="6"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="no_prod_impl_no_divider'vc.0.1" expl="false case (postcondition)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.060169" steps="16552"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="not_prime_impl_divisor_under_sqrt'vc" expl="VC for not_prime_impl_divisor_under_sqrt" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065289" steps="368"/></proof>
|
|
</goal>
|
|
</theory>
|
|
<theory name="EulerSieveSpec" proved="true">
|
|
<goal name="conservation_all_eliminated_marked_on_marked_change'vc" expl="VC for conservation_all_eliminated_marked_on_marked_change" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.084899" steps="440"/></proof>
|
|
</goal>
|
|
<goal name="conservation_all_eliminated_marked_on_nexts_change'vc" expl="VC for conservation_all_eliminated_marked_on_nexts_change" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="conservation_all_eliminated_marked_on_nexts_change'vc.0" expl="VC for conservation_all_eliminated_marked_on_nexts_change" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_all_eliminated_marked_on_nexts_change'vc.0.0" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_all_eliminated_marked_on_nexts_change'vc.0.0.0" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.140066" steps="23600"/></proof>
|
|
</goal>
|
|
<goal name="conservation_all_eliminated_marked_on_nexts_change'vc.0.0.1" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.145801" steps="25721"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</theory>
|
|
<theory name="EulerSieve" proved="true">
|
|
<goal name="multiples_of_marked_are_marked'vc" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="multiples_of_marked_are_marked'vc.0" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="multiples_of_marked_are_marked'vc.0.0" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.043641" steps="9923"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.1" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.076347" steps="20426"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.2" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.004181" steps="5462"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.3" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.004041" steps="5470"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.4" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="inline_all" proved="true" >
|
|
<goal name="multiples_of_marked_are_marked'vc.0.4.0" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="remove" proved="true" arg1="Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,even_or_odd,even_not_odd,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,mod_divides_computer,divides_mod_computer,odd_divides,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,H13,H12,Requires,H11,H10,H9,H8,H7,H6,H5,H4,H3,H">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.4.0.0" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.028759" steps="1920"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.5" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="assert" proved="true" arg1="(k * (i * j) = i*j + (k-1)*(i*j))">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.5.0" expl="asserted formula" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.049776" steps="9482"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.5.1" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="assert" proved="true" arg1="((k-1)*(i*j) >= 0)">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.5.1.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.040962" steps="41"/></proof>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.5.1.1" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.020653" steps="55050"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="multiples_of_marked_are_marked'vc.0.6" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="unfold" proved="true" arg1="previously_marked_multiples" arg2="in" arg3="Requires">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.6.0" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_multiples_marked" arg2="in" arg3="Requires">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.6.0.0" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<proof prover="1"><result status="valid" time="0.040000"/></proof>
|
|
<transf name="remove" proved="true" arg1="zero,one,(-),even,([]),inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,Assoc1,Unit_def_r,Mul_distr_l,Refl,Trans,Div_unique,Div_bound,Div_minus1_left,Div_sign_pos,even_not_odd,odd_not_even,even_odd,odd_2k1,divides_left,divides_oppr_rev,divides_multl,divides_multr,divides_mod_euclidean,mod_divides_computer,prime_divisors,odd_prime,mult_croissance_locale,comp_mult_2,sq_ineq,divides_div,no_prod_impl_no_divider,create'spec,empty'def,set'spec,set'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change">
|
|
<goal name="multiples_of_marked_are_marked'vc.0.6.0.0.0" expl="VC for multiples_of_marked_are_marked" proved="true">
|
|
<proof prover="1"><result status="valid" time="0.030000"/></proof>
|
|
<proof prover="3"><result status="valid" time="0.110000"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc" expl="VC for prev_and_new_impl_all_multiples_marked" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.0.0" expl="assertion" proved="true">
|
|
<transf name="unfold" proved="true" arg1="previously_marked_multiples" arg2="in" arg3="Requires2">
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.0.0.0" expl="assertion" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_multiples_marked" arg2="in" arg3="Requires2">
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.0.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.023611" steps="70033"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.1" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.035227" steps="72962"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.2" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.026211" steps="67114"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.3" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.025957" steps="27"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.027361" steps="68385"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.5" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.044309" steps="11821"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.6" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.028352" steps="26"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.7" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.287636" steps="4913"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.8" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.027686" steps="26"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.9" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.143210" steps="25021"/></proof>
|
|
</goal>
|
|
<goal name="prev_and_new_impl_all_multiples_marked'vc.10" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065574" steps="417"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_only_multiples_marked'vc" expl="VC for conservation_only_multiples_marked" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_only_multiples_marked'vc.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.129665" steps="29498"/></proof>
|
|
</goal>
|
|
<goal name="conservation_only_multiples_marked'vc.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.129665" steps="1887"/></proof>
|
|
</goal>
|
|
<goal name="conservation_only_multiples_marked'vc.2" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.036553" steps="22"/></proof>
|
|
</goal>
|
|
<goal name="conservation_only_multiples_marked'vc.3" expl="postcondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="conservation_only_multiples_marked'vc.3.0" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_only_multiples_marked'vc.3.0.0" expl="postcondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(k = i * j)">
|
|
<goal name="conservation_only_multiples_marked'vc.3.0.0.0" expl="true case (postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044837" steps="289"/></proof>
|
|
</goal>
|
|
<goal name="conservation_only_multiples_marked'vc.3.0.0.1" expl="false case (postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.129309" steps="2129"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc" expl="VC for conservation_previously_marked_multiples" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.122099" steps="28736"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.053871" steps="137"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.2" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.2.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.028875" steps="78818"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.2.1" expl="VC for conservation_previously_marked_multiples" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.112968" steps="1071"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.3" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.085904" steps="19081"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.4" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.051591" steps="12936"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.5" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.5.0" expl="assertion" proved="true">
|
|
<proof prover="3"><result status="valid" time="0.593397"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.5.1" expl="VC for conservation_previously_marked_multiples" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065823" steps="448"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.6" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.6.0" expl="assertion" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.6.0.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples'vc.6.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.036183" steps="30"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.6.0.0.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.033855" steps="30"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.6.0.0.2" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.035670" steps="38"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples'vc.7" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.046055" steps="73"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0.0" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.050064" steps="11746"/></proof>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0.1" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero,one,(-),(>),(<=),(>=),abs,even,odd,divides,prime,([]),singleton,cons,snoc,(++),inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Unitary,NonTrivialRing,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_inf,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,(==)'spec,create'spec,empty'def,set'def,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples">
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0.1.0" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.028232" steps="23038"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0.2" proved="true">
|
|
<transf name="inline_all" proved="true" >
|
|
<goal name="conservation_previously_marked_multiples_on_marked_change.0.0.0.2.0" proved="true">
|
|
<proof prover="11"><result status="valid" time="0.164235" steps="260537"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_not_marked_impl_next_not_marked'vc" expl="VC for conservation_not_marked_impl_next_not_marked" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.559892" steps="3774"/></proof>
|
|
</goal>
|
|
<goal name="unchanged_other_elements'vc" expl="VC for unchanged_other_elements" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.114247" steps="28596"/></proof>
|
|
</goal>
|
|
<goal name="t'vc" expl="VC for t" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="t'vc.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.081277" steps="23512"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.1" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.052676" steps="12373"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.2" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.088155" steps="27591"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.3" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.037520" steps="62"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.4" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.060125" steps="240"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.5" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.162889" steps="33620"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.6" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.109144" steps="21521"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.7" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.016753" steps="31485"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.8" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.134763" steps="33323"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc" expl="VC for remove_products" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.0" expl="division by zero" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.049202" steps="12932"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.1" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.030208" steps="81322"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.2" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.110666" steps="30926"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.3" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.052715" steps="15417"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.4" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.4.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007267" steps="8760"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.4.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.075028" steps="215"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.4.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.262019" steps="1403"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.068042" steps="225"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.6" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048882" steps="83"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.7" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.066585" steps="221"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.8" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043294" steps="86"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.9" expl="precondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(mod (int63'int n) 2 = 1)">
|
|
<goal name="remove_products'vc.9.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.062893" steps="153444"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.9.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.772808" steps="4272"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.10" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.10.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.051587" steps="103"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.10.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.092835" steps="769"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.10.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.165381" steps="31459"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.11" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.122973" steps="38631"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.12" expl="assertion" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.12.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.12.0.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.031927" steps="108903"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.12.0.1" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.090637" steps="22524"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.12.0.2" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.049622" steps="125721"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.12.0.3" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044749" steps="108"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.13" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.13.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.062113" steps="121"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.13.1" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051829" steps="173808"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.13.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.054419" steps="174355"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.14" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.14.0" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.090240" steps="22630"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.14.1" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.124741" steps="32160"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.14.2" expl="assertion" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.066243" steps="1443"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.14.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.621423" steps="16493"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.15" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.15.0" expl="assertion" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.15.0.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.15.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.155496" steps="37513"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.15.0.0.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048436" steps="133"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.15.0.0.2" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.102296" steps="879"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.15.0.0.3" expl="assertion" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.427364" steps="6906"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.15.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="0"><result status="valid" time="0.608898" steps="762"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.16" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.16.0" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="5.170554" steps="322865"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.16.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.072475" steps="173192"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.17" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.026221" steps="50970"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.18" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.098955" steps="22672"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.19" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.055293" steps="166145"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.20" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.023035" steps="51126"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.21" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.067115" steps="155"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.22" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.22.0" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.098799" steps="22907"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.22.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.023294" steps="51496"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.22.2" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.117383" steps="331288"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.22.3" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014511" steps="9151"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.23" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011441" steps="9181"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.24" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.839154" steps="85989"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.25" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.058066" steps="16404"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.26" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012213" steps="13514"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.27" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.055720" steps="187861"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.28" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.045444" steps="140943"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29" expl="assertion" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.29.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.29.0.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.061315" steps="191"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29.0.1" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.052632" steps="134994"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29.0.2" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.209208" steps="36678"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29.0.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.044697" steps="135767"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29.0.4" expl="VC for remove_products" proved="true">
|
|
<transf name="case" proved="true" arg1="(j < x)">
|
|
<goal name="remove_products'vc.29.0.4.0" expl="true case" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.045493" steps="117832"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.29.0.4.1" expl="false case" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_eliminated_marked_partial" arg2="in" arg3="Requires4">
|
|
<goal name="remove_products'vc.29.0.4.1.0" expl="false case" proved="true">
|
|
<proof prover="10"><result status="valid" time="8.078439" steps="553998"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.30" expl="variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.157567" steps="432379"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.31.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065116" steps="192"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.015862" steps="9388"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.2" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012104" steps="9388"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.3" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.095068" steps="31325"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008211" steps="9392"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052724" steps="192"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.6" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.145392" steps="431761"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.7" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.079773" steps="207977"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.31.8" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.148592" steps="1368"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.32" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.32.0" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.32.0.0" expl="precondition" proved="true">
|
|
<transf name="split_all_full" proved="true" >
|
|
<goal name="remove_products'vc.32.0.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.050438" steps="138922"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.077143" steps="194317"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.2" expl="VC for remove_products" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_remove_products" arg2="in" arg3="Requires8">
|
|
<goal name="remove_products'vc.32.0.0.2.0" expl="VC for remove_products" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="remove_products'vc.32.0.0.2.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_primes" arg2="in" arg3="Requires11">
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires11" arg2="i">
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.251341" steps="2050"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0.0.1" expl="VC for remove_products" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires11" arg2="i">
|
|
<goal name="remove_products'vc.32.0.0.2.0.0.0.0.1.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.167189" steps="45190"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.055070" steps="138326"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.070871" steps="205097"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.0.0.5" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051714" steps="138285"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.32.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.113904" steps="31370"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.33" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.062978" steps="182461"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.34" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.024800" steps="53635"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.35" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.290000" steps="50725"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.36" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.058709" steps="16807"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.37" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.37.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.37.0.0" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.045864" steps="137865"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.37.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.044647" steps="137064"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.37.0.2" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.128827" steps="33441"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.37.0.3" expl="precondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = p)">
|
|
<goal name="remove_products'vc.37.0.3.0" expl="true case (precondition)" proved="true">
|
|
<transf name="remove" proved="true" arg1="H24,H23,H22">
|
|
<goal name="remove_products'vc.37.0.3.0.0" expl="true case (precondition)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.349653" steps="50217"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.37.0.3.1" expl="false case (precondition)" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall i. 0 <= i < div (length marked_old - 1) n -> i <> p -> (nexts t)[i] = (nexts t1)[i])">
|
|
<goal name="remove_products'vc.37.0.3.1.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.180820" steps="1587"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.37.0.3.1.1" expl="false case (precondition)" proved="true">
|
|
<transf name="inline_all" proved="true" >
|
|
<goal name="remove_products'vc.37.0.3.1.1.0" expl="false case (precondition)" proved="true">
|
|
<proof prover="2"><result status="valid" time="0.112585" steps="231369"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.38" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.180980" steps="41031"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.39" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.39.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.39.0.0" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.110552" steps="24162"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.39.0.1" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.180386" steps="34688"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.39.0.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.102341" steps="23487"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.39.0.3" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.150466" steps="1323"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.39.0.4" expl="precondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="not_marked_impl_next_not_marked_partial" arg2="in" arg3="Requires8">
|
|
<goal name="remove_products'vc.39.0.4.0" expl="precondition" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="remove_products'vc.39.0.4.0.0" expl="precondition" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires8" arg2="i">
|
|
<goal name="remove_products'vc.39.0.4.0.0.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.636977" steps="84617"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.40" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.068156" steps="242"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.41" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.059275" steps="225"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.42" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.068164" steps="225"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.43" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012079" steps="9458"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.44" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.085249" steps="31469"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.45" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007846" steps="9472"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.46" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.063357" steps="16777"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.47" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.429910" steps="58998"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.48" expl="variant decrease" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.48.0" expl="variant decrease" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.054426" steps="138"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.48.1" expl="variant decrease" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.376655" steps="63795"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.49" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.49.0" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.043780" steps="129507"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052723" steps="139"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.2" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.056400" steps="138"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.3" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.003997" steps="9149"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.042271" steps="115091"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.5" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.107081" steps="30542"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.6" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.115743" steps="332670"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.7" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.058413" steps="15210"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.49.8" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.226984" steps="46066"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.50" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.50.0" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.50.0.0" expl="precondition" proved="true">
|
|
<transf name="split_all_full" proved="true" >
|
|
<goal name="remove_products'vc.50.0.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.048860" steps="145082"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.067757" steps="193934"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.2" expl="VC for remove_products" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_remove_products" arg2="in" arg3="Requires8">
|
|
<goal name="remove_products'vc.50.0.0.2.0" expl="VC for remove_products" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="remove_products'vc.50.0.0.2.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_primes" arg2="in" arg3="Requires11">
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires11" arg2="i">
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0.0.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.150914" steps="1188"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0.0.1" expl="VC for remove_products" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires11" arg2="i">
|
|
<goal name="remove_products'vc.50.0.0.2.0.0.0.0.1.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.145166" steps="1154"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.047551" steps="142062"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.072770" steps="202958"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.0.0.5" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.152974" steps="36174"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.50.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.107058" steps="30576"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.51" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.171736" steps="38594"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.52" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.099770" steps="30707"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.53" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.209989" steps="46972"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.54" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.980534" steps="1895114"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.55" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.124171" steps="32665"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.56" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011261" steps="9245"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.57" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.57.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.57.0.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.105347" steps="822"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.57.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051683" steps="146156"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.57.0.2" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.136728" steps="32575"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.57.0.3" expl="precondition" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.109477" steps="1578"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.57.0.4" expl="precondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="not_marked_impl_next_not_marked_partial" arg2="in" arg3="Requires8">
|
|
<goal name="remove_products'vc.57.0.4.0" expl="precondition" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="remove_products'vc.57.0.4.0.0" expl="precondition" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Requires8" arg2="i">
|
|
<goal name="remove_products'vc.57.0.4.0.0.0" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.567199" steps="71618"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.58" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.058229" steps="179"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.59" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.110506" steps="30670"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.60" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008115" steps="9214"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.61" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012223" steps="9219"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.62" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.063356" steps="170"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.63" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.009556" steps="9233"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.64" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007861" steps="9238"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.65" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.65.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.099615" steps="29495"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.65.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.065164" steps="167217"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.65.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.038514" steps="106548"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.65.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.083356" steps="278"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.65.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.060404" steps="824"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.66" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.66.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.240000" steps="51223"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043023" steps="80"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.2" expl="VC for remove_products" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.66.2.0" expl="VC for remove_products" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.66.2.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.346161" steps="6426"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.2.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.150000" steps="29568"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.090939" steps="244394"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.132493" steps="31436"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.66.5" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.115727" steps="350958"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.67" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049842" steps="78"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.68" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011880" steps="8799"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.69" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014272" steps="8804"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.70" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011445" steps="8809"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.71" expl="postcondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.71.0" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.71.0.0" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.039699" steps="119548"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.71.0.1" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.167737" steps="36913"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.71.0.2" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.062169" steps="14880"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.71.0.3" expl="postcondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="prime_multiples_marked" arg2="in" arg3="Requires2">
|
|
<goal name="remove_products'vc.71.0.3.0" expl="postcondition" proved="true">
|
|
<transf name="split_all_right" proved="true" >
|
|
<goal name="remove_products'vc.71.0.3.0.0" expl="postcondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < (nexts t)[x])">
|
|
<goal name="remove_products'vc.71.0.3.0.0.0" expl="true case (postcondition)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.169146" steps="40334"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.71.0.3.0.0.1" expl="false case (postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.097362" steps="300"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.72" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.056837" steps="15876"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.73.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.225010" steps="49982"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73.1" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.063632" steps="15590"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.692794" steps="3902"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.094407" steps="251326"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.039044" steps="117971"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.73.5" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.119614" steps="332829"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.74" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.094480" steps="29498"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.75" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.063459" steps="15565"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.76" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.015014" steps="8781"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.77" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.004007" steps="8786"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.78" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.062776" steps="157"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.79" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007983" steps="8918"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.80" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.134329" steps="25728"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.81" expl="precondition" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,max,marked_old,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,t'invariant,H2,H1,H,Requires4,Requires3,Requires1,Ensures1,Ensures,Requires">
|
|
<goal name="remove_products'vc.81.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.025099" steps="32"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.82" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.030991" steps="91705"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.83" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.026836" steps="92393"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.84" expl="precondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(mod (int63'int n) 2 = 1)">
|
|
<goal name="remove_products'vc.84.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.038735" steps="97063"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.84.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.164926" steps="2380"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.85" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052727" steps="416"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.86" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.039160" steps="474"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.87" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.87.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.036993" steps="103761"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.87.1" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.204414" steps="43856"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.87.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.170000" steps="33968"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.87.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.040741" steps="102368"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.87.4" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.039004" steps="101953"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.88" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.88.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043548" steps="47"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.095403" steps="28476"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.055163" steps="15150"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.3" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011232" steps="8426"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.046049" steps="112646"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.5" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.088915" steps="28483"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.6" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.054796" steps="151348"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.7" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014362" steps="8422"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.88.8" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.046393" steps="112206"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.89" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.89.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.89.0.0" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.042381" steps="105065"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.047204" steps="118372"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.2" expl="precondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(n * n > n)">
|
|
<goal name="remove_products'vc.89.0.2.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.043811" steps="103328"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.2.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.213914" steps="45828"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.3" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.095441" steps="21992"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.047589" steps="121215"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.89.0.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049035" steps="334"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.90" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051884" steps="118456"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.91" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.046310" steps="118846"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.92" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.196004" steps="33935"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.93" expl="precondition" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),inv_nexts,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,max,marked_copy,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,H4,H3,H2,Requires8,Requires7,Requires6,Requires5,Ensures5,Ensures4,Ensures3,Ensures2,H,Ensures1,Ensures,Assert,Requires3,Requires2,Requires1,Requires">
|
|
<goal name="remove_products'vc.93.0" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014361" steps="16083"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.94" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.94.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.94.0.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048524" steps="371"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.94.0.1" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.135010" steps="28666"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.94.0.2" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.036802" steps="80"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.94.0.3" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.052288" steps="150072"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.95" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.95.0" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.95.0.0" expl="precondition" proved="true">
|
|
<transf name="split_all_full" proved="true" >
|
|
<goal name="remove_products'vc.95.0.0.0" expl="VC for remove_products" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.055399" steps="370"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.95.0.0.1" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011432" steps="9279"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.95.0.0.2" expl="VC for remove_products" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.059381" steps="188072"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.95.0.0.3" expl="VC for remove_products" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="44865"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.96" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.96.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.96.0.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.150000" steps="31725"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.96.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.045276" steps="107831"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.96.0.2" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.039789" steps="88"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.96.0.3" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.064178" steps="172280"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.96.0.4" expl="precondition" proved="true">
|
|
<transf name="inline_all" proved="true" >
|
|
<goal name="remove_products'vc.96.0.4.0" expl="precondition" proved="true">
|
|
<proof prover="11"><result status="valid" time="0.135540" steps="422491"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="remove_products'vc.97" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.040947" steps="108834"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.98" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.063968" steps="493"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.99" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.011825" steps="8540"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.100" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045925" steps="86"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.101" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.064712" steps="15288"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.102" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.057943" steps="15289"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.103" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.120000" steps="28716"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.104" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.070319" steps="153904"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.105" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.046485" steps="89"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.106" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007909" steps="8740"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.107" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.044408" steps="104649"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.108" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.037254" steps="94"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.109" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049869" steps="94"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.110" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.009528" steps="8503"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.111" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.034241" steps="86"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.112" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014366" steps="8513"/></proof>
|
|
</goal>
|
|
<goal name="remove_products'vc.113" expl="postcondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="remove_products'vc.113.0" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="remove_products'vc.113.0.0" expl="postcondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="only_multiples_marked" arg2="in" arg3="Ensures5">
|
|
<goal name="remove_products'vc.113.0.0.0" expl="postcondition" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Ensures5" arg2="k">
|
|
<goal name="remove_products'vc.113.0.0.0.0" expl="postcondition" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,max,marked_old,marked_copy,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,H8,H6,Requires3,Requires2,Requires1,Requires,Ensures16,Ensures15,Ensures14,Ensures13,H5,Ensures12,Ensures11,Assert,Ensures10,Ensures9,Ensures8,Ensures7,Ensures6,Ensures5,Ensures4,Ensures3,Ensures2,Ensures1,Ensures">
|
|
<goal name="remove_products'vc.113.0.0.0.0.0" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.015822" steps="28980"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="previously_marked_multiples_impl_prime'vc" expl="VC for previously_marked_multiples_impl_prime" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="previously_marked_multiples_impl_prime'vc.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="previously_marked_multiples_impl_prime'vc.0.0" expl="assertion" proved="true">
|
|
<transf name="inline_all" proved="true" >
|
|
<goal name="previously_marked_multiples_impl_prime'vc.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.048376" steps="141225"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="previously_marked_multiples_impl_prime'vc.0.1" expl="VC for previously_marked_multiples_impl_prime" proved="true">
|
|
<proof prover="16"><result status="valid" time="1.273197" steps="15614"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="previously_marked_multiples_impl_prime'vc.1" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.037142" steps="85580"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="only_multiples_marked_impl_not_marked'vc" expl="VC for only_multiples_marked_impl_not_marked" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="only_multiples_marked_impl_not_marked'vc.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052491" steps="327"/></proof>
|
|
</goal>
|
|
<goal name="only_multiples_marked_impl_not_marked'vc.1" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.239487" steps="3285"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</theory>
|
|
<theory name="EulerSieveImpl" proved="true">
|
|
<goal name="conservation_inv_arr_on_mark'vc" expl="VC for conservation_inv_arr_on_mark" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_inv_arr_on_mark'vc.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.068398" steps="131178"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_mark'vc.1" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.038316" steps="85910"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_mark'vc.2" expl="postcondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(abs arr[i] = abs arr[i <- - arr[i]][i])">
|
|
<goal name="conservation_inv_arr_on_mark'vc.2.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.103751" steps="385"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_mark'vc.2.1" expl="postcondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(j = i)">
|
|
<goal name="conservation_inv_arr_on_mark'vc.2.1.0" expl="true case (postcondition)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.160000" steps="27562"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_mark'vc.2.1.1" expl="false case (postcondition)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.190000" steps="32186"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_jump'vc" expl="VC for conservation_inv_arr_on_jump" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="conservation_inv_arr_on_jump'vc.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.033567" steps="22"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_jump'vc.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.105951" steps="25316"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_jump'vc.2" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.153063" steps="26199"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_jump'vc.3" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.160000" steps="28844"/></proof>
|
|
</goal>
|
|
<goal name="conservation_inv_arr_on_jump'vc.4" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.825397" steps="109196"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="t'vc" expl="VC for t" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="t'vc.0" expl="array creation size" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.074836" steps="22305"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.1" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.028904" steps="13"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.046552" steps="11601"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.3" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.055431" steps="12975"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.4" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.096504" steps="26857"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.5" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043089" steps="82"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.6" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008470" steps="8024"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.7" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.056703" steps="14053"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.8" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.190000" steps="32985"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.9" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.185629" steps="33644"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.10" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.020129" steps="32556"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.11" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.014041" steps="33454"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.12" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.140000" steps="33125"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.13" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.210000" steps="35638"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.14" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.250000" steps="36121"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.15" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.049594" steps="122007"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.16" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.210000" steps="38029"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.17" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.212333" steps="33347"/></proof>
|
|
</goal>
|
|
<goal name="t'vc.18" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.240000" steps="40027"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="create'vc" expl="VC for create" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="create'vc.0" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.024551" steps="78723"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.1" expl="division by zero" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.010462" steps="7091"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.2" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.032137" steps="80688"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.3" expl="integer overflow" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.125631" steps="24267"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.4" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.067486" steps="19348"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.033540" steps="31"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.6" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.036433" steps="26"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.7" expl="array creation size" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.040468" steps="64"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.8" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.032936" steps="71"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.9" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.080204" steps="501"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.10" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045919" steps="90"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.11" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.053084" steps="91"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.12" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.036233" steps="126746"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.13" expl="integer overflow" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.190000" steps="36721"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.14" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.044515" steps="122589"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.15" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.202349" steps="33954"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.16" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044611" steps="82"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.17" expl="division by zero" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.059622" steps="15405"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.18" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.041546" steps="116646"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.19" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.038233" steps="50"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.20" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.041224" steps="116634"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.21" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.165256" steps="38968"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.22" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.127733" steps="25303"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.23" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.198641" steps="35199"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.24" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.278593" steps="36925"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.25" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.058864" steps="141688"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.26" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.143487" steps="329139"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.27" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.202621" steps="33803"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.28" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.226989" steps="35843"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.29" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.240000" steps="42202"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.30" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.228024" steps="36987"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.31" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="42747"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.32" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.183530" steps="41994"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.33" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.225462" steps="44662"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.34" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.097583" steps="30612"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.35" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.128602" steps="786"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.36" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.195904" steps="34090"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.37" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.054168" steps="141630"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.38" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.116571" steps="282230"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.39" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.207617" steps="44178"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.40" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.042206" steps="139255"/></proof>
|
|
</goal>
|
|
<goal name="create'vc.41" expl="out of loop bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048489" steps="77"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="set_next'vc" expl="VC for set_next" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="set_next'vc.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045204" steps="56"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044325" steps="57"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.2" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.039650" steps="114570"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.3" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.150373" steps="27665"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.4" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.156264" steps="27814"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044556" steps="64"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.6" expl="division by zero" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.081259" steps="27245"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.7" expl="integer overflow" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.130854" steps="31711"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.8" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.092133" steps="351"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.9" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.043648" steps="110643"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.10" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.040328" steps="97"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.11" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.143774" steps="34304"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.12" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.047488" steps="124"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.13" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.054703" steps="133"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.14" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="40781"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.15" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.062410" steps="134"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.16" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.052828" steps="146384"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.17" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.270000" steps="40342"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.18" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.189035" steps="38053"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.19" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.229730" steps="44135"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.20" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.285846" steps="40467"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.21" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.358073" steps="52005"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.22" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.303293" steps="46458"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.23" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.230000" steps="41385"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.24" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.300000" steps="49378"/></proof>
|
|
</goal>
|
|
<goal name="set_next'vc.25" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.070752" steps="224"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="get_next'vc" expl="VC for get_next" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="get_next'vc.0" expl="division by zero" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.013508" steps="7124"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.1" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044935" steps="101"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.2" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.041678" steps="135813"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.3" expl="index in array bounds" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.162720" steps="33740"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.4" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.104968" steps="609"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.5" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.061416" steps="154937"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.6" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.220000" steps="39799"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.7" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.242841" steps="37280"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.8" expl="postcondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(i >= 3)">
|
|
<goal name="get_next'vc.8.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.040262" steps="36"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.8.1" expl="postcondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < max t - 1)">
|
|
<goal name="get_next'vc.8.1.0" expl="true case (postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.089856" steps="347"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.8.1.1" expl="false case (postcondition)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = max t)">
|
|
<goal name="get_next'vc.8.1.1.0" expl="false case (true case. postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.055929" steps="111"/></proof>
|
|
</goal>
|
|
<goal name="get_next'vc.8.1.1.1" expl="false case (postcondition)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052991" steps="201"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="set_mark'vc" expl="VC for set_mark" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="set_mark'vc.0" expl="division by zero" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.074412" steps="25051"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.1" expl="integer overflow" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.126793" steps="24554"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.089608" steps="22286"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.3" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.038921" steps="57"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.4" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.091281" steps="22246"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.5" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044934" steps="77"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.6" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.077840" steps="321"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.7" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.050724" steps="131167"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.8" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.220000" steps="38701"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.9" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.096319" steps="349"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.10" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.026468" steps="49450"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.11" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.057447" steps="149035"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.12" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.040911" steps="105952"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.13" expl="index in array bounds" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.158210" steps="35100"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.14" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044801" steps="120"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.15" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.050018" steps="103"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.16" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.051522" steps="145"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.17" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045596" steps="130"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.18" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.054408" steps="137"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.19" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.057631" steps="133"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.20" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.055819" steps="141"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.21" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.225283" steps="34453"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.22" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.058452" steps="154091"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.23" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.045351" steps="127818"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.24" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="44417"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.25" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.241665" steps="47179"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.26" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.280000" steps="46765"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.27" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.482981" steps="64847"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.28" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.220000" steps="40959"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.29" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065689" steps="223"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.30" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.067038" steps="231"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.31" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.046515" steps="107553"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.32" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052150" steps="82"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.33" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049146" steps="121"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.34" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052104" steps="106"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.35" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.050081" steps="109"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.36" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048666" steps="111"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.37" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.050816" steps="117"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.38" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.240000" steps="38366"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.39" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.062557" steps="150854"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.40" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.047312" steps="126206"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.41" expl="type invariant" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.184435" steps="33848"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.42" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.246963" steps="1304"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.43" expl="type invariant" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.207799" steps="39353"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.44" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.067008" steps="165402"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.45" expl="type invariant" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.072147" steps="239"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.46" expl="type invariant" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.074359" steps="187170"/></proof>
|
|
</goal>
|
|
<goal name="set_mark'vc.47" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.170586" steps="35291"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="get_mark'vc" expl="VC for get_mark" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.239715" steps="37748"/></proof>
|
|
</goal>
|
|
<goal name="get_max'vc" expl="VC for get_max" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.112166" steps="28754"/></proof>
|
|
</goal>
|
|
<goal name="EulerSieve.t'refn'vc" expl="VC for t" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="t'refn'vc.0" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.046299" steps="29"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.1" expl="VC for t" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.130483" steps="26717"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.2" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043056" steps="30"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.3" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.032842" steps="31"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.4" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.039368" steps="29"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.5" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043867" steps="27"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.6" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049743" steps="136"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.7" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.061728" steps="194"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.8" expl="VC for t" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.036404" steps="106713"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.9" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.040488" steps="36"/></proof>
|
|
</goal>
|
|
<goal name="t'refn'vc.10" expl="VC for t" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048347" steps="36"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="EulerSieve.create'refn'vc" expl="VC for create'refn" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="create'refn'vc.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.030138" steps="14"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.1" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.003817" steps="10691"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.2" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.018344" steps="18516"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.3" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044826" steps="126"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.4" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051022" steps="140333"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.5" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.061223" steps="264"/></proof>
|
|
</goal>
|
|
<goal name="create'refn'vc.6" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043576" steps="82"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="EulerSieve.set_next'refn'vc" expl="VC for set_next'refn" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.180626" steps="41566"/></proof>
|
|
</goal>
|
|
<goal name="EulerSieve.get_next'refn'vc" expl="VC for get_next'refn" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.130000" steps="31659"/></proof>
|
|
</goal>
|
|
<goal name="EulerSieve.set_mark'refn'vc" expl="VC for set_mark'refn" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.104975" steps="719"/></proof>
|
|
</goal>
|
|
<goal name="EulerSieve.get_mark'refn'vc" expl="VC for get_mark'refn" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.088407" steps="22421"/></proof>
|
|
</goal>
|
|
<goal name="EulerSieve.get_max'refn'vc" expl="VC for get_max'refn" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.058200" steps="15282"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc" expl="VC for euler_sieve" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.090522" steps="29759"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.124233" steps="37479"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.2" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045686" steps="60"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.3" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.114662" steps="34997"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.4" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.007944" steps="11133"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.5" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008018" steps="11138"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.6" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.107144" steps="26079"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.7" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.117836" steps="602"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.8" expl="division by zero" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.073702" steps="20024"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.9" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.084839" steps="222297"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.10" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.238711" steps="1879"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.11" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.11.0" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.037562" steps="142881"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.11.1" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.085031" steps="290"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.11.2" expl="precondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="not_marked_impl_next_not_marked" arg2="in" arg3="Ensures5">
|
|
<goal name="euler_sieve'vc.11.2.0" expl="precondition" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.11.2.0.0" expl="precondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(int63'int nn <= div (int63'int (max1 t)) (int63'int nn))">
|
|
<goal name="euler_sieve'vc.11.2.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.572399" steps="5867"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.11.2.0.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.653018" steps="1468495"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.12" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.057375" steps="95"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.13" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.13.0" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.128865" steps="314500"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.13.1" expl="VC for euler_sieve" proved="true">
|
|
<transf name="unfold" proved="true" arg1="only_multiples_marked" arg2="in" arg3="Ensures4">
|
|
<goal name="euler_sieve'vc.13.1.0" expl="VC for euler_sieve" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,singleton,cons,snoc,(++),exchange,all_eliminated_marked_partial,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Refl,CompatOrderAdd,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,array63'invariant,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H18,H17,Ensures13,H16,H15,H14,Ensures12,Ensures11,Ensures10,Ensures9,Ensures8,H13,H10,H9,Requires4,Requires3,Requires2,Requires,H8,Ensures7,Ensures6,Ensures5,H5,Ensures2,Ensures1,H3,Assert,Ensures,H12,H11,H7,H6">
|
|
<goal name="euler_sieve'vc.13.1.0.0" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.028572" steps="67751"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.13.2" expl="VC for euler_sieve" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,is_copy,not_marked_impl_next_not_marked_partial,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,(==)'spec'0,create'spec,create'spec'0,empty'def,set'spec,set'spec'0,set'spec'1,set'def,([<-])'def,singleton'spec,singleton'spec'0,cons'spec,cons'spec'0,cons'spec'1,snoc'spec,snoc'spec'0,snoc'spec'1,([..])'spec,([..])'spec'0,([..])'def,([_..])'def,([.._])'def,(++)'spec,(++)'spec'0,(++)'spec'1,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,array63'invariant,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,t'invariant,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H18,H17,Ensures13,H16,H15,H14,Ensures12,Ensures11,Ensures10,Ensures9,Ensures8,H13,H10,H9,Requires4,Requires3,Requires2,Requires1,Requires,H8,Ensures7,Ensures6,Ensures5,Ensures4,H5,H4,Ensures3,Ensures2,Ensures1,H3,Assert,Ensures,H12,H11,H7,H6">
|
|
<goal name="euler_sieve'vc.13.2.0" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="3"><result status="valid" time="0.424473"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.14" expl="variant decrease" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.300262" steps="49095"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.15" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.041892" steps="92"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.16" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.016753" steps="11348"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.17" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.058640" steps="94"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.18" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.050213" steps="95"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.19" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.19.0" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.19.0.0" expl="precondition" proved="true">
|
|
<transf name="split_all_full" proved="true" >
|
|
<goal name="euler_sieve'vc.19.0.0.0" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.078136" steps="246"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.19.0.0.1" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.073290" steps="244"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.19.0.0.2" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048872" steps="74"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.19.0.0.3" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.195039" steps="564811"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.20.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.20.0.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.180000" steps="39013"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.1" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.149524" steps="38107"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.2" expl="precondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.816655" steps="90363"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.3" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.128920" steps="35424"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.4" expl="precondition" proved="true">
|
|
<transf name="unfold" proved="true" arg1="not_marked_impl_next_not_marked" arg2="in" arg3="Requires">
|
|
<goal name="euler_sieve'vc.20.0.4.0" expl="precondition" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.20.0.4.0.0" expl="precondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(int63'int nn <= div (int63'int (max1 t)) (int63'int nn))">
|
|
<goal name="euler_sieve'vc.20.0.4.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.635393" steps="6454"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.4.0.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.227735" steps="678494"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.20.0.5" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.180000" steps="38575"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.21" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.083715" steps="343"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.22" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.054362" steps="88"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.23" expl="assertion" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Refl,Trans,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,odd_divides,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,array63'invariant,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,t'invariant,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H17,H16,H15,Ensures13,H14,H13,H12,Ensures12,Ensures11,Ensures10,Ensures9,Ensures8,H11,H10,H9,H8,Requires4,Requires3,Requires2,Requires1,Requires,H7,H6,Ensures7,Ensures6,Ensures4,H5,H4,Ensures2,Ensures1,H3,Ensures,H2">
|
|
<goal name="euler_sieve'vc.23.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.050563" steps="486"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.24" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.044296" steps="88"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.25.0" expl="assertion" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.036197" steps="546"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25.1" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.077490" steps="209901"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25.2" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.049796" steps="149162"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25.3" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.092553" steps="367"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25.4" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.170198" steps="39866"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.25.5" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.084534" steps="261"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.26.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.211496" steps="1321"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.317842" steps="2578"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26.2" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.328326" steps="2499"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26.3" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.092926" steps="586"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26.4" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.281142" steps="3366"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.26.5" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.118587" steps="311009"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.27" expl="postcondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.27.0" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.092233" steps="239107"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.27.1" expl="postcondition" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall j k. 2 <= j < (nexts t)[n] -> 2 <= k < length (marked t) -> j * k <> i)">
|
|
<goal name="euler_sieve'vc.27.1.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.258000" steps="2348"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.27.1.1" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.240254" steps="42327"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.28" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008407" steps="10838"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.29" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.042108" steps="35"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.30" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.688007" steps="5412"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.31" expl="precondition" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,divides,prime,singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,array63'invariant,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H6,H5,H4,H3,H2,Ensures4,Ensures3,Ensures2,Ensures1,H,Requires2,Requires1,Requires">
|
|
<goal name="euler_sieve'vc.31.0" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.059840" steps="6973"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32" expl="precondition" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.32.0" expl="precondition" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.32.0.0" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048885" steps="76"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32.0.1" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.049683" steps="136058"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32.0.2" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012292" steps="10814"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32.0.3" expl="precondition" proved="true">
|
|
<transf name="case" proved="true" arg1="(mod i 2 = 0)">
|
|
<goal name="euler_sieve'vc.32.0.3.0" expl="true case (precondition)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < max - 1)">
|
|
<goal name="euler_sieve'vc.32.0.3.0.0" expl="true case (precondition)" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Ensures1" arg2="i">
|
|
<goal name="euler_sieve'vc.32.0.3.0.0.0" expl="true case (precondition)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.407163" steps="58721"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32.0.3.0.1" expl="false case (true case. precondition)" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.048076" steps="144629"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.32.0.3.1" expl="false case (precondition)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.255992" steps="41409"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.33" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.321502" steps="59413"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.34" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.176782" steps="1184"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.35" expl="assertion" proved="true">
|
|
<transf name="case" proved="true" arg1="(mod i 2 = 0)">
|
|
<goal name="euler_sieve'vc.35.0" expl="true case (assertion)" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.046538" steps="147515"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.35.1" expl="false case (assertion)" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.35.1.0" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.013138" steps="11248"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.35.1.1" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.008580" steps="11259"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.35.1.2" expl="VC for euler_sieve" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.235860" steps="39367"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.36" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.203284" steps="37320"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.37" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.072060" steps="292"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.38" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.070581" steps="313"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.39" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.012548" steps="11345"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.40" expl="loop invariant init" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.195926" steps="44923"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.41" expl="loop invariant init" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.075435" steps="19872"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42" expl="loop invariant init" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.42.0" expl="loop invariant init" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.42.0.0" expl="loop invariant init" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall i. 1 <= i < length (arr t)[0 <- 2] -> (arr t)[i] = (arr t)[0 <- 2][i])">
|
|
<goal name="euler_sieve'vc.42.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.058546" steps="172859"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.0.1" expl="loop invariant init" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.209380" steps="46322"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.1" expl="loop invariant init" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.219249" steps="46130"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.2" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.074582" steps="345"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.3" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.084633" steps="342"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.4" expl="loop invariant init" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall i. 1 <= i < length (arr t)[0 <- 2] -> (arr t)[i] = (arr t)[0 <- 2][i])">
|
|
<goal name="euler_sieve'vc.42.0.4.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.067825" steps="201"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.4.1" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.254510" steps="1292"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.42.0.5" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.112890" steps="481"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.43" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.052124" steps="216"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.44" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.094506" steps="616"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.45" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.071961" steps="326"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.46" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.077132" steps="210003"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.47" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.186145" steps="407327"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.48" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.064801" steps="171633"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.49" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.058413" steps="214"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.50" expl="index in array bounds" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.194548" steps="45197"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.51" expl="division by zero" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.010693" steps="12058"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.52" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.082984" steps="410"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.53" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.188074" steps="45235"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.54" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.077559" steps="307"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.55" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.084157" steps="315"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.56" expl="integer overflow" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.232240" steps="43101"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.57" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.087584" steps="291"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.58" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.089030" steps="349"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.59" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="46477"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.60" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.361929" steps="57672"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.61" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.61.0" expl="assertion" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant5">
|
|
<goal name="euler_sieve'vc.61.0.0" expl="assertion" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant5" arg2="(int63'int p)">
|
|
<goal name="euler_sieve'vc.61.0.0.0" expl="assertion" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant5" arg2="(int63'int next)">
|
|
<goal name="euler_sieve'vc.61.0.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.363723" steps="71244"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.62" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.62.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.277589" steps="53974"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.62.1" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.370000" steps="66377"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.62.2" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.263649" steps="45611"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.63" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.056876" steps="165979"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.64" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.099497" steps="293949"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.65" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.327066" steps="57083"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.66" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.088785" steps="331"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.67" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.133490" steps="386886"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.68" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.495720" steps="75310"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.69" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.301396" steps="45072"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.70" expl="assertion" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant5">
|
|
<goal name="euler_sieve'vc.70.0" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.70.0.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.278229" steps="1252"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.70.0.1" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.290392" steps="1121"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.71" expl="loop variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.121697" steps="317269"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.72" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.139550" steps="39011"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.73" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.017148" steps="22155"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.74" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.075379" steps="190483"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.75" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.080759" steps="21921"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.76.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.76.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.76.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.299220" steps="57588"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.331350" steps="55988"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.76.0.1.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.340551" steps="57612"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.349029" steps="57387"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.330000" steps="56554"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.119158" steps="303038"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.4" expl="loop invariant preservation" proved="true">
|
|
<proof prover="5"><result status="valid" time="0.553564" steps="4502"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.5" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.76.0.5.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,Refl,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,t'invariant,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H39,H38,Ensures18,H37,H36,H35,Ensures17,Ensures16,Ensures15,Ensures14,Ensures13,H34,H33,Ensures12,Assert3,Assert2,Assert1,H30,H29,Ensures11,H28,H27,H26,H25,H24,LoopInvariant9,LoopInvariant8,LoopInvariant6,LoopInvariant5,LoopInvariant4,LoopInvariant3,LoopInvariant2,Ensures10,Ensures9,H23,Ensures8,Ensures7,H22,Ensures6,H17,Ensures5,Ensures4,H16,Ensures3,Ensures2,Assert,Ensures,LoopInvariant1,LoopInvariant,H32,H31,H21,H20,H19,H18,H14,H13,H12,H11,H10,H9,H8,H7,H6,H4">
|
|
<goal name="euler_sieve'vc.76.0.5.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.034752" steps="2051"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.76.0.5.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.370131" steps="60877"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.77" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.610857" steps="74582"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.78" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.495098" steps="72746"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.79" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.160508" steps="786"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.80" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.293366" steps="50641"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.81" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.81.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.335368" steps="60432"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.82" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.076996" steps="248"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.83" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.063889" steps="174405"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.84" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.066793" steps="208205"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.85" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.068660" steps="206842"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.86" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049393" steps="404"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.87" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.058835" steps="179088"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.88" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.074809" steps="218228"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.89" expl="loop variant decrease" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.352735" steps="65616"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.90" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.395329" steps="62599"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.91" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.373509" steps="67420"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.92" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.260000" steps="48361"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.93" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.097527" steps="352"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.94.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.94.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.304563" steps="49612"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.1" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.320000" steps="56777"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.283837" steps="49439"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.087934" steps="246855"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.4" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.94.0.4.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.94.0.4.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(t_arr[cnt1 <- ((2 * p1) + 1)][i] = t_arr[i])">
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.410000" steps="67509"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(cnt1 <= i < length t_arr1)">
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.1.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.159579" steps="31898"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.1.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_pos,Div_mod,Div_unique,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,empty'def,set'def,([<-])'def,([..])'def,([_..])'def,([.._])'def,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H33,H32,Ensures18,H31,H30,H29,Ensures17,Ensures16,Ensures15,Ensures14,Ensures13,H28,H27,Assert2,Assert1,H24,H23,Ensures10,H22,H21,H20,H19,H18,LoopInvariant15,LoopInvariant14,LoopInvariant7,LoopInvariant6,LoopInvariant3,LoopInvariant2,Ensures9,Ensures8,H17,Ensures7,Ensures6,H16,Ensures5,H11,Ensures4,Ensures3,H10,H9,Ensures2,Ensures1,Ensures,H8,LoopInvariant1,LoopInvariant,H26,H25,H15,H14,H13,H12,H7,H6,H5,H4,H2,(==)'spec3,(==)'spec2,(==)'spec1,(==)'spec,create'spec1,create'spec,set'spec2,set'spec1,set'spec,singleton'spec1,singleton'spec,cons'spec2,cons'spec1,cons'spec,snoc'spec2,snoc'spec1,snoc'spec,([..])'spec1,([..])'spec,(++)'spec2,(++)'spec1,(++)'spec,Abs_le2,Abs_le1,Abs_le,Div_bound3,Div_bound2,Mod_bound3,Mod_bound2,array63'invariant3,array63'invariant2,array63'invariant1,array63'invariant,Mod_bound1,Mod_bound,Div_bound1,Div_bound,divides'spec1,divides'spec,even_mod21,even_mod2,even_divides1,even_divides,odd_divides1,odd_divides,div_mult_11,div_mult_1,mult_borne_sous_exp1,mult_borne_sous_exp,t'invariant22,t'invariant21,t'invariant20,t'invariant19,t'invariant18,t'invariant17,t'invariant16,t'invariant15,t'invariant14,t'invariant13,t'invariant12,t'invariant11,t'invariant10,t'invariant9,t'invariant8,t'invariant7,t'invariant6,t'invariant5,t'invariant4,t'invariant3,t'invariant2,t'invariant1,t'invariant,Ensures12,Ensures11,Assert4,Assert3,LoopInvariant13,LoopInvariant11,LoopInvariant10,LoopInvariant9,LoopInvariant8,LoopInvariant5,LoopInvariant4,h1">
|
|
<goal name="euler_sieve'vc.94.0.4.0.0.1.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.004198" steps="5143"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.94.0.5" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="2.101368" steps="18211"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.95" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.95.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.95.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(j = cnt1)">
|
|
<goal name="euler_sieve'vc.95.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_le,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H32,H31,Ensures17,H30,H29,H28,Ensures16,Ensures15,Ensures14,Ensures13,Ensures12,H27,H26,Ensures11,Assert3,Assert2,Assert1,H23,H22,H20,H19,H18,H17,LoopInvariant10,LoopInvariant9,LoopInvariant8,LoopInvariant7,LoopInvariant5,LoopInvariant4,LoopInvariant3,Ensures9,Ensures8,H16,Ensures7,Ensures6,H15,Ensures5,H10,H9,H8,Ensures1,Ensures,H7,Assert,LoopInvariant2,LoopInvariant1,LoopInvariant,H25,H24,H14,H13,H12,H11,H6,H4">
|
|
<goal name="euler_sieve'vc.95.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.070101" steps="9064"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.95.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.350791" steps="51440"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.96" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.96.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.96.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_inf_or_eq" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.96.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.96.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant1">
|
|
<goal name="euler_sieve'vc.96.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.96.0.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant6" arg2="(int63'int p1)">
|
|
<goal name="euler_sieve'vc.96.0.0.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.457781" steps="67736"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.97" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.161582" steps="748"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.98" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.98.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.646912" steps="4063"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.99" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.99.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.99.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.321686" steps="60376"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.99.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.99.1.0" expl="false case (true case. loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.490000" steps="78080"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.99.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_pos,Div_mod,Mod_bound,Div_unique,Div_bound,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_bound1,Mod_bound1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,even_even,odd_odd,even_2k,odd_2k1,even_mod2,divides'spec,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,even_divides,odd_divides,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,div_mult_1,mult_borne_sous_exp,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,(==)'spec,create'spec,empty'def,set'spec,set'def,([<-])'def,singleton'spec,cons'spec,snoc'spec,([..])'spec,([..])'def,([_..])'def,([.._])'def,(++)'spec,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H24,H23,H22,Ensures17,H21,H20,H19,Ensures16,Ensures15,Ensures14,Ensures13,Ensures12,H18,H17,H16,Ensures11,Assert4,Assert3,Assert2,H15,Ensures10,H12,H11,H10,LoopInvariant16,LoopInvariant15,LoopInvariant13,LoopInvariant12,LoopInvariant11,LoopInvariant10,LoopInvariant9,Ensures9,Ensures8,H8,Ensures4,Ensures3,H5,H4,Ensures2,Ensures1,Ensures,LoopInvariant8,LoopInvariant6,LoopInvariant5,LoopInvariant4,LoopInvariant3,LoopInvariant2,LoopInvariant,H2">
|
|
<goal name="euler_sieve'vc.99.1.1.0" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="1.640258" steps="5060"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.100" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.072240" steps="232"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.101" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.089078" steps="243"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.102" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.071907" steps="198643"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.103" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.067599" steps="197516"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.104" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.045515" steps="385"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.105" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.076708" steps="263"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.106" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.092578" steps="320"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.107" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.086461" steps="208959"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.108" expl="loop variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.077669" steps="197066"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.109" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.059299" steps="160156"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.110" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.073507" steps="197604"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.111" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.075452" steps="199389"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.112" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.211710" steps="47151"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.113.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.113.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.289961" steps="48543"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.1" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.288201" steps="48244"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.272800" steps="47778"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.094573" steps="239760"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.4" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.113.0.4.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.113.0.4.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(t_arr[cnt1 <- ((2 * p1) + 1)][i] = t_arr[i])">
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.384242" steps="67670"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(cnt1 <= i < length t_arr1)">
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.1.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.220272" steps="47363"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.1.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_pos,Div_mod,Div_unique,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,empty'def,set'def,([<-])'def,([..])'def,([_..])'def,([.._])'def,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H27,H26,Ensures18,H25,H24,H23,Ensures17,Ensures16,Ensures15,Ensures14,Ensures13,H22,H21,Assert2,Assert1,H18,H17,Ensures10,H16,H15,H14,H13,H12,LoopInvariant15,LoopInvariant14,LoopInvariant7,LoopInvariant6,LoopInvariant3,LoopInvariant2,Ensures9,Ensures8,H11,Ensures7,Ensures6,H10,Ensures5,Ensures4,H9,H8,Ensures3,Ensures2,Ensures1,Ensures,LoopInvariant1,LoopInvariant,H20,H19,H7,H6,H5,H4,H2,(==)'spec3,(==)'spec2,(==)'spec1,(==)'spec,create'spec1,create'spec,set'spec2,set'spec1,set'spec,singleton'spec1,singleton'spec,cons'spec2,cons'spec1,cons'spec,snoc'spec2,snoc'spec1,snoc'spec,([..])'spec1,([..])'spec,(++)'spec2,(++)'spec1,(++)'spec,Abs_le2,Abs_le1,Abs_le,Div_bound3,Div_bound2,Mod_bound3,Mod_bound2,array63'invariant3,array63'invariant2,array63'invariant1,array63'invariant,Mod_bound1,Mod_bound,Div_bound1,Div_bound,divides'spec1,divides'spec,even_mod21,even_mod2,even_divides1,even_divides,odd_divides1,odd_divides,div_mult_11,div_mult_1,mult_borne_sous_exp1,mult_borne_sous_exp,t'invariant22,t'invariant21,t'invariant20,t'invariant19,t'invariant18,t'invariant17,t'invariant16,t'invariant15,t'invariant14,t'invariant13,t'invariant12,t'invariant11,t'invariant10,t'invariant9,t'invariant8,t'invariant7,t'invariant6,t'invariant5,t'invariant4,t'invariant3,t'invariant2,t'invariant1,t'invariant,Ensures12,Ensures11,Assert4,Assert3,LoopInvariant13,LoopInvariant11,LoopInvariant10,LoopInvariant9,LoopInvariant8,LoopInvariant5,LoopInvariant4,h1">
|
|
<goal name="euler_sieve'vc.113.0.4.0.0.1.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.033478" steps="1267"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.113.0.5" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="2.852818" steps="21727"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.114" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.114.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.114.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="ordered" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.114.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.114.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Hinst" arg2="j">
|
|
<goal name="euler_sieve'vc.114.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(j = cnt1)">
|
|
<goal name="euler_sieve'vc.114.0.0.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.303391" steps="58415"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.114.0.0.0.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.233022" steps="49770"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.115" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.115.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.115.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_inf_or_eq" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.115.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.115.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < cnt1)">
|
|
<goal name="euler_sieve'vc.115.0.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.270000" steps="48825"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.115.0.0.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.323195" steps="59810"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.116" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.289306" steps="52154"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.117" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < cnt1)">
|
|
<goal name="euler_sieve'vc.117.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.302290" steps="51480"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.117.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.228684" steps="1009"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.118" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.118.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.118.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.325865" steps="61573"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.118.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.118.1.0" expl="false case (true case. loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.530068" steps="67747"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.118.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="5"><result status="valid" time="1.783672" steps="28031"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.119" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.059949" steps="184526"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.120" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.140814" steps="702"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.121" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="1.128031" steps="105900"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.122" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.067758" steps="188011"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.123" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.440781" steps="73135"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.124" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.093359" steps="483"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.125" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.172753" steps="389784"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.126" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.230000" steps="42495"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.127" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.057946" steps="180"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.128" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.061591" steps="145757"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.129" expl="loop invariant init" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.119034" steps="34949"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.130" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.133141" steps="794"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.131" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.016381" steps="11141"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132" expl="loop invariant init" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.132.0" expl="loop invariant init" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.132.0.0" expl="loop invariant init" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall i. 1 <= i < length (arr t)[0 <- 2] -> (arr t)[i] = (arr t)[0 <- 2][i])">
|
|
<goal name="euler_sieve'vc.132.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.061925" steps="158653"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.0.1" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.065856" steps="173170"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.1" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.124316" steps="322462"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.2" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.081118" steps="256"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.3" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.056110" steps="159391"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.4" expl="loop invariant init" proved="true">
|
|
<transf name="assert" proved="true" arg1="(forall i. 1 <= i < length (arr t)[0 <- 2] -> (arr t)[i] = (arr t)[0 <- 2][i])">
|
|
<goal name="euler_sieve'vc.132.0.4.0" expl="asserted formula" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.061926" steps="168524"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.4.1" expl="loop invariant init" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.324545" steps="51796"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.132.0.5" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.105375" steps="403"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.133" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.057215" steps="157985"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.134" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.088135" steps="443"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.135" expl="loop invariant init" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.065229" steps="272"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.136" expl="loop invariant init" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.217367" steps="45971"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.137" expl="loop invariant init" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.065623" steps="174727"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.138" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.057754" steps="162400"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.139" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.055634" steps="161935"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.140" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.050487" steps="169678"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.141" expl="division by zero" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.043078" steps="64"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.142" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.077029" steps="385"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.143" expl="assertion" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.179613" steps="34089"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.144" expl="index in array bounds" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.174292" steps="43891"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.145" expl="index in array bounds" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.186627" steps="34800"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.146" expl="integer overflow" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.233902" steps="43528"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.147" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.070865" steps="268"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.148" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.146173" steps="370737"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.149" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.058344" steps="183602"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.150" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.298638" steps="54369"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.151" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.151.0" expl="assertion" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant5">
|
|
<goal name="euler_sieve'vc.151.0.0" expl="assertion" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant5" arg2="(int63'int p)">
|
|
<goal name="euler_sieve'vc.151.0.0.0" expl="assertion" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant5" arg2="(int63'int next)">
|
|
<goal name="euler_sieve'vc.151.0.0.0.0" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.330000" steps="65582"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.152" expl="assertion" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.152.0" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.155641" steps="803"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.152.1" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.310944" steps="62427"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.152.2" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.086604" steps="231481"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.153" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.053702" steps="104"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.154" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.101751" steps="261223"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.155" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.374080" steps="64870"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.156" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.064332" steps="197358"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.157" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.124369" steps="317446"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.158" expl="precondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.455335" steps="69973"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.159" expl="assertion" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.290000" steps="51551"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.160" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="1.718083" steps="11544"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.161" expl="loop variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.104250" steps="270314"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.162" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.067732" steps="21525"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.163" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.075762" steps="21527"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.164" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.053610" steps="107"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.165" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.076287" steps="21541"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.166.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.166.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.166.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.313155" steps="1355"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.110660" steps="308461"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.166.0.1.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.288987" steps="54204"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.305100" steps="53604"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.279124" steps="54475"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.111162" steps="264374"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.4" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.386830" steps="59642"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.5" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i <> p)">
|
|
<goal name="euler_sieve'vc.166.0.5.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.435068" steps="64015"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.166.0.5.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.299262" steps="1812"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.167" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.343709" steps="58635"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.168" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.401797" steps="67403"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.169" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.147467" steps="843"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.170" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.292705" steps="48032"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.171" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.501430" steps="67662"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.172" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.076599" steps="203"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.173" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.069803" steps="216"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.174" expl="index in array bounds" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.081214" steps="280"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.175" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.070306" steps="186935"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.176" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.049754" steps="381"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.177" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.059190" steps="176725"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.178" expl="assertion" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.078911" steps="432"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.179" expl="loop variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.074500" steps="240123"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.180" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.091963" steps="232073"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.181" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.087433" steps="241952"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.182" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.215766" steps="45294"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.183" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.085421" steps="330"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.184.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.184.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.300000" steps="54671"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.1" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.290000" steps="53856"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.191659" steps="419282"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.083485" steps="217686"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.4" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.184.0.4.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.184.0.4.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(t_arr[cnt1 <- ((2 * p1) + 1)][i] = t_arr[i])">
|
|
<goal name="euler_sieve'vc.184.0.4.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.307516" steps="50611"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.4.0.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.184.0.4.0.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(cnt1 <= i < length t_arr1)">
|
|
<goal name="euler_sieve'vc.184.0.4.0.0.1.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.191558" steps="46749"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.4.0.0.1.0.1" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.340796" steps="66976"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.184.0.5" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="2.117510" steps="20337"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.185" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.185.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="introduce_premises" proved="true" >
|
|
<goal name="euler_sieve'vc.185.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_all_full" proved="true" >
|
|
<goal name="euler_sieve'vc.185.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(j = cnt1)">
|
|
<goal name="euler_sieve'vc.185.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.399472" steps="60880"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.185.0.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.318989" steps="52842"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.186" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.186.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.186.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_inf_or_eq" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.186.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.186.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant1">
|
|
<goal name="euler_sieve'vc.186.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.186.0.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant6" arg2="(int63'int p1)">
|
|
<goal name="euler_sieve'vc.186.0.0.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.373854" steps="61957"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.187" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.148100" steps="767"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.188" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.188.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.553582" steps="81372"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.189" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.189.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.189.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.293753" steps="48463"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.189.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.189.1.0" expl="false case (true case. loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.330000" steps="57159"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.189.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="1.332554" steps="9289"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.190" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.063841" steps="162681"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.191" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.064527" steps="164886"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.192" expl="index in array bounds" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.065786" steps="184150"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.193" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.056179" steps="183215"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.194" expl="precondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.048284" steps="355"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.195" expl="integer overflow" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.073443" steps="220"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.196" expl="integer overflow" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.056475" steps="170658"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.197" expl="assertion" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.066946" steps="198698"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.198" expl="loop variant decrease" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.068521" steps="186837"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.199" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.051333" steps="157266"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.200" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.070218" steps="187334"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.201" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.071728" steps="186840"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.202" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.065672" steps="192759"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.203.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.203.0.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.101498" steps="277432"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.1" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.120266" steps="275309"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.2" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.081066" steps="238754"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.3" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.074293" steps="216086"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.4" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="inv_count" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.203.0.4.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_premise_right" proved="true" >
|
|
<goal name="euler_sieve'vc.203.0.4.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(t_arr[cnt1 <- ((2 * p1) + 1)][i] = t_arr[i])">
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.307851" steps="63772"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="assert" proved="true" arg1="(cnt1 <= i < length t_arr1)">
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.1.0.0" expl="asserted formula" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.093938" steps="347"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.1.0.1" expl="loop invariant preservation" proved="true">
|
|
<transf name="remove" proved="true" arg1="zero1,one1,(-),(>),(<=),(>=),abs,int63'maxInt,int63'minInt,min_int63,max_int63,to_int,in_bounds,zero,one,even,odd,divides,prime,([]),singleton,cons,snoc,(++),exchange,inv_nexts,all_eliminated_marked,all_eliminated_marked_partial,not_marked_impl_next_not_marked,is_copy,not_marked_impl_next_not_marked_partial,all_primes,all_multiples_marked,previously_marked_multiples,only_multiples_marked,prime_multiples_marked,inv_remove_products,ordered,all_inf_or_eq,inv_count,Assoc1,Unit_def_l,Unit_def_r,Inv_def_l,Inv_def_r,Comm1,Assoc,Mul_distr_l,Mul_distr_r,Comm,Unitary,NonTrivialRing,Refl,Trans,Antisymm,Total,ZeroLessOne,CompatOrderAdd,CompatOrderMult,Abs_pos,Div_mod,Div_unique,Mod_1,Div_1,Div_inf,Div_inf_neg,Mod_0,Div_1_left,Div_minus1_left,Mod_1_left,Mod_minus1_left,Div_mult,Mod_mult,Div_mod1,Div_sign_pos,Div_sign_neg,Mod_sign_pos,Mod_sign_neg,Rounds_toward_zero,Div_11,Mod_11,Div_inf1,Mod_inf,Div_mult1,Mod_mult1,to_int_in_bounds,extensionality,max_int'def,min_int'def,even_or_odd,even_not_odd,odd_not_even,even_odd,odd_even,even_even,odd_odd,even_2k,odd_2k1,divides_refl,divides_1_n,divides_0,divides_left,divides_right,divides_oppr,divides_oppl,divides_oppr_rev,divides_oppl_rev,divides_plusr,divides_minusr,divides_multl,divides_multr,divides_factorl,divides_factorr,divides_n_1,divides_antisym,divides_trans,divides_bounds,mod_divides_euclidean,divides_mod_euclidean,mod_divides_computer,divides_mod_computer,not_prime_1,prime_2,prime_3,prime_divisors,small_divisors,even_prime,odd_prime,mult_croissance_locale,mult_croissance,comp_mult_2,div_croissance_locale1,div_croissance1,div_croissance_locale2,div_croissance2,sq_ineq,divides_div,divides_inf,not_prime_divider_limits,no_prod_impl_no_divider,not_prime_impl_divisor_under_sqrt,length_nonnegative,empty'def,set'def,([<-])'def,([..])'def,([_..])'def,([.._])'def,exchange_set,conservation_all_eliminated_marked_on_marked_change,conservation_all_eliminated_marked_on_nexts_change,conservation_inv_arr_on_mark,conservation_inv_arr_on_jump,multiples_of_marked_are_marked,prev_and_new_impl_all_multiples_marked,conservation_only_multiples_marked,conservation_previously_marked_multiples,conservation_previously_marked_multiples_on_marked_change,conservation_not_marked_impl_next_not_marked,unchanged_other_elements,previously_marked_multiples_impl_prime,only_multiples_marked_impl_not_marked,H24,H23,Ensures16,Ensures15,Ensures14,Ensures13,H22,H21,Assert2,Assert1,H18,H17,Ensures10,H16,H15,H14,H13,H12,LoopInvariant15,LoopInvariant14,LoopInvariant7,LoopInvariant6,LoopInvariant3,LoopInvariant2,Ensures9,Ensures8,H11,Ensures7,Ensures6,H10,Ensures5,Ensures4,H9,H8,Ensures3,Ensures2,Ensures1,Ensures,LoopInvariant1,LoopInvariant,H20,H19,H7,H6,H5,H4,H2,(==)'spec3,(==)'spec2,(==)'spec1,(==)'spec,create'spec1,create'spec,set'spec2,set'spec1,set'spec,singleton'spec1,singleton'spec,cons'spec2,cons'spec1,cons'spec,snoc'spec2,snoc'spec1,snoc'spec,([..])'spec1,([..])'spec,(++)'spec2,(++)'spec1,(++)'spec,Abs_le2,Abs_le1,Abs_le,Div_bound3,Div_bound2,Mod_bound3,Mod_bound2,array63'invariant3,array63'invariant2,array63'invariant1,array63'invariant,Mod_bound1,Mod_bound,Div_bound1,Div_bound,divides'spec1,divides'spec,even_mod21,even_mod2,even_divides1,even_divides,odd_divides1,odd_divides,div_mult_11,div_mult_1,mult_borne_sous_exp1,mult_borne_sous_exp,t'invariant22,t'invariant21,t'invariant20,t'invariant19,t'invariant18,t'invariant17,t'invariant16,t'invariant15,t'invariant14,t'invariant13,t'invariant12,t'invariant11,t'invariant10,t'invariant9,t'invariant8,t'invariant7,t'invariant6,t'invariant5,t'invariant4,t'invariant3,t'invariant2,t'invariant1,t'invariant,Ensures12,Ensures11,Assert4,Assert3,LoopInvariant13,LoopInvariant11,LoopInvariant10,LoopInvariant9,LoopInvariant8,LoopInvariant5,LoopInvariant4,h1">
|
|
<goal name="euler_sieve'vc.203.0.4.0.0.1.0.1.0" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.030000" steps="1856"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.203.0.5" expl="loop invariant preservation" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.102393" steps="270429"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.204" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.204.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.204.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="ordered" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.204.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.204.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="Hinst" arg2="j">
|
|
<goal name="euler_sieve'vc.204.0.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(j = cnt1)">
|
|
<goal name="euler_sieve'vc.204.0.0.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.257679" steps="45833"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.204.0.0.0.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.212460" steps="38877"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.205" expl="loop invariant preservation" proved="true">
|
|
<transf name="inline_goal" proved="true" >
|
|
<goal name="euler_sieve'vc.205.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="split_vc" proved="true" >
|
|
<goal name="euler_sieve'vc.205.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="unfold" proved="true" arg1="all_inf_or_eq" arg2="in" arg3="LoopInvariant7">
|
|
<goal name="euler_sieve'vc.205.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant7" arg2="i">
|
|
<goal name="euler_sieve'vc.205.0.0.0.0" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < cnt1)">
|
|
<goal name="euler_sieve'vc.205.0.0.0.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.121742" steps="561"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.205.0.0.0.0.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.293599" steps="55884"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.206" expl="loop invariant preservation" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.134123" steps="700"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.207" expl="loop invariant preservation" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.548762" steps="88316"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.208" expl="loop invariant preservation" proved="true">
|
|
<transf name="case" proved="true" arg1="(i < 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.208.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<transf name="instantiate" proved="true" arg1="LoopInvariant9" arg2="i">
|
|
<goal name="euler_sieve'vc.208.0.0" expl="true case (loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.315178" steps="58333"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.208.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<transf name="case" proved="true" arg1="(i = 2 * p1 + 1)">
|
|
<goal name="euler_sieve'vc.208.1.0" expl="false case (true case. loop invariant preservation)" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.429832" steps="80419"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.208.1.1" expl="false case (loop invariant preservation)" proved="true">
|
|
<proof prover="5"><result status="valid" time="1.291497" steps="21300"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.209" expl="precondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.057058" steps="168606"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.210" expl="postcondition" proved="true">
|
|
<proof prover="16"><result status="valid" time="0.137517" steps="591"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.211" expl="postcondition" proved="true">
|
|
<proof prover="14"><result status="valid" time="0.958318" steps="92088"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.212" expl="postcondition" proved="true">
|
|
<proof prover="15"><result status="valid" time="0.063035" steps="176304"/></proof>
|
|
</goal>
|
|
<goal name="euler_sieve'vc.213" expl="postcondition" proved="true">
|
|
<proof prover="10"><result status="valid" time="0.910000" steps="113263"/></proof>
|
|
</goal>
|
|
</transf>
|
|
</goal>
|
|
</theory>
|
|
</file>
|
|
</why3session>
|