2020-02-12 15:17:22 +01:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
|
2024-01-31 13:02:13 +00:00
|
|
|
"https://www.why3.org/why3session.dtd">
|
2020-02-24 16:16:39 +01:00
|
|
|
<why3session shape_version="6">
|
2024-05-22 12:18:37 +02:00
|
|
|
<prover id="1" name="CVC4" version="1.8" timelimit="1" steplimit="0" memlimit="1000"/>
|
2024-12-12 15:06:46 +01:00
|
|
|
<prover id="2" name="Alt-Ergo" version="2.6.0" timelimit="1" steplimit="0" memlimit="1000"/>
|
2020-02-12 15:17:22 +01:00
|
|
|
<file format="whyml" proved="true">
|
|
|
|
|
<path name=".."/><path name="string_hex_encoding.mlw"/>
|
|
|
|
|
<theory name="Top" proved="true">
|
|
|
|
|
<goal name="hex'vc" expl="VC for hex" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.032105" steps="159"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="xeh'vc" expl="VC for xeh" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.041858" steps="319"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-24 16:16:39 +01:00
|
|
|
<goal name="decode_unique" proved="true">
|
|
|
|
|
<transf name="introduce_premises" proved="true" >
|
|
|
|
|
<goal name="decode_unique.0" proved="true">
|
|
|
|
|
<transf name="assert" proved="true" arg1="(eq_string s1 s3)">
|
|
|
|
|
<goal name="decode_unique.0.0" expl="asserted formula" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.065944" steps="474"/></proof>
|
2020-02-12 16:08:42 +01:00
|
|
|
</goal>
|
2020-02-24 16:16:39 +01:00
|
|
|
<goal name="decode_unique.0.1" proved="true">
|
2024-11-14 14:48:30 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.015780" steps="16"/></proof>
|
2020-02-12 16:08:42 +01:00
|
|
|
</goal>
|
|
|
|
|
</transf>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-24 16:16:39 +01:00
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc" expl="VC for encode" proved="true">
|
|
|
|
|
<transf name="split_vc" proved="true" >
|
|
|
|
|
<goal name="encode'vc.0" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.012186" steps="16"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-24 16:16:39 +01:00
|
|
|
<goal name="encode'vc.1" expl="loop invariant init" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.022976" steps="17"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.2" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.025125" steps="20"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.3" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.021387" steps="20"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.4" expl="precondition" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.016913" steps="26"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.5" expl="division by zero" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.024992" steps="28"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.6" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.028239" steps="99"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.7" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.048913" steps="182"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.8" expl="division by zero" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.020390" steps="32"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.9" expl="integer overflow" proved="true">
|
2020-02-24 16:16:39 +01:00
|
|
|
<transf name="unfold" proved="true" arg1="encoding">
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.9.0" expl="integer overflow" proved="true">
|
2020-02-24 16:16:39 +01:00
|
|
|
<transf name="split_vc" proved="true" >
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.9.0.0" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.040506" steps="150"/></proof>
|
2020-02-24 16:16:39 +01:00
|
|
|
</goal>
|
|
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
</transf>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.10" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.060377" steps="293"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.11" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.038611" steps="116"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.12" expl="loop variant decrease" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.025303" steps="39"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.13" expl="loop invariant preservation" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.032155" steps="39"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.14" expl="loop invariant preservation" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.036088" steps="110"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.15" expl="loop invariant preservation" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2" timelimit="5"><result status="valid" time="0.456689" steps="6901"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="encode'vc.16" expl="loop invariant preservation" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="1"><result status="valid" time="0.654644" steps="90602"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.17" expl="postcondition" proved="true">
|
|
|
|
|
<transf name="unfold" proved="true" arg1="encoding">
|
|
|
|
|
<goal name="encode'vc.17.0" expl="VC for encode" proved="true">
|
|
|
|
|
<transf name="split_vc" proved="true" >
|
|
|
|
|
<goal name="encode'vc.17.0.0" expl="VC for encode" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.020338" steps="29"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.17.0.1" expl="VC for encode" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="1"><result status="valid" time="0.162526" steps="28253"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="encode'vc.17.0.2" expl="VC for encode" proved="true">
|
2024-10-25 18:34:29 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.038781" steps="203"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
</transf>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-02-12 15:17:22 +01:00
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc" expl="VC for decode" proved="true">
|
|
|
|
|
<transf name="split_vc" proved="true" >
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.0" expl="division by zero" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.021262" steps="16"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.1" expl="integer overflow" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.029357" steps="60"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.2" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.021933" steps="39"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.3" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.018344" steps="22"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.4" expl="loop invariant init" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.024033" steps="49"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.5" expl="loop invariant init" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.022100" steps="30"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.6" expl="precondition" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.019724" steps="32"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.7" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.043238" steps="162"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.8" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.029515" steps="91"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.9" expl="precondition" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.028276" steps="90"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.10" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.045353" steps="228"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.11" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.048191" steps="212"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.12" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.060691" steps="382"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.13" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.101295" steps="934"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.14" expl="integer overflow" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.050229" steps="161"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.15" expl="loop variant decrease" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.023043" steps="50"/></proof>
|
2020-06-23 09:11:55 +02:00
|
|
|
</goal>
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.16" expl="loop invariant preservation" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.069930" steps="393"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode'vc.17" expl="loop invariant preservation" proved="true">
|
2024-05-22 12:18:37 +02:00
|
|
|
<proof prover="2"><result status="valid" time="0.042815" steps="153"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.18" expl="loop invariant preservation" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.040153" steps="156"/></proof>
|
2020-07-14 16:32:25 +02:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode'vc.19" expl="loop invariant preservation" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.088624" steps="1307"/></proof>
|
2020-02-20 15:28:46 +01:00
|
|
|
</goal>
|
2020-07-14 16:32:25 +02:00
|
|
|
<goal name="decode'vc.20" expl="postcondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.044935" steps="269"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
<goal name="decode_encode'vc" expl="VC for decode_encode" proved="true">
|
|
|
|
|
<transf name="split_vc" proved="true" >
|
2020-02-20 15:28:46 +01:00
|
|
|
<goal name="decode_encode'vc.0" expl="precondition" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.017476" steps="19"/></proof>
|
2020-02-20 15:28:46 +01:00
|
|
|
</goal>
|
|
|
|
|
<goal name="decode_encode'vc.1" expl="assertion" proved="true">
|
2024-12-12 15:06:46 +01:00
|
|
|
<proof prover="2"><result status="valid" time="0.024429" steps="49"/></proof>
|
2020-02-12 15:17:22 +01:00
|
|
|
</goal>
|
|
|
|
|
</transf>
|
|
|
|
|
</goal>
|
|
|
|
|
</theory>
|
|
|
|
|
</file>
|
|
|
|
|
</why3session>
|