Attention une mise à jour du serveur va être effectuée le lundi 17 mai entre 13h et 13h30. Cette mise à jour va générer une interruption du service de quelques minutes.

sparse_arrays: Coq proof for permutation lemma using map.MapInjective

parent 5ed29aaf
......@@ -82,14 +82,13 @@ back +-+-+-+-------------------+
(* assignment *)
use import map.MapInjection
lemma permutation :
forall a: sparse_array 'a. sa_inv a ->
a.card = a.length ->
forall i: int. 0 <= i < a.length -> is_elt a i
lemma permutation2 :
false
let set (a: sparse_array 'a) i v =
{ 0 <= i < length a /\ sa_inv a }
a.values[i] <- v;
......
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Definition unit := unit.
Parameter mark : Type.
Parameter at1: forall (a:Type), a -> mark -> a.
Implicit Arguments at1.
Parameter old: forall (a:Type), a -> a.
Implicit Arguments old.
Parameter map : forall (a:Type) (b:Type), Type.
Parameter get: forall (a:Type) (b:Type), (map a b) -> a -> b.
Implicit Arguments get.
Parameter set: forall (a:Type) (b:Type), (map a b) -> a -> b -> (map a b).
Implicit Arguments set.
Axiom Select_eq : forall (a:Type) (b:Type), forall (m:(map a b)),
forall (a1:a) (a2:a), forall (b1:b), (a1 = a2) -> ((get (set m a1 b1)
a2) = b1).
Axiom Select_neq : forall (a:Type) (b:Type), forall (m:(map a b)),
forall (a1:a) (a2:a), forall (b1:b), (~ (a1 = a2)) -> ((get (set m a1 b1)
a2) = (get m a2)).
Parameter const: forall (b:Type) (a:Type), b -> (map a b).
Set Contextual Implicit.
Implicit Arguments const.
Unset Contextual Implicit.
Axiom Const : forall (b:Type) (a:Type), forall (b1:b) (a1:a), ((get (const(
b1):(map a b)) a1) = b1).
Inductive array (a:Type) :=
| mk_array : Z -> (map Z a) -> array a.
Implicit Arguments mk_array.
Definition elts (a:Type)(u:(array a)): (map Z a) :=
match u with
| mk_array _ elts1 => elts1
end.
Implicit Arguments elts.
Definition length (a:Type)(u:(array a)): Z :=
match u with
| mk_array length1 _ => length1
end.
Implicit Arguments length.
Definition get1 (a:Type)(a1:(array a)) (i:Z): a := (get (elts a1) i).
Implicit Arguments get1.
Definition set1 (a:Type)(a1:(array a)) (i:Z) (v:a): (array a) :=
match a1 with
| mk_array xcl0 _ => (mk_array xcl0 (set (elts a1) i v))
end.
Implicit Arguments set1.
Inductive sparse_array (a:Type) :=
| mk_sparse_array : (array a) -> (array Z) -> (array Z) -> Z
-> a -> sparse_array a.
Implicit Arguments mk_sparse_array.
Definition back (a:Type)(u:(sparse_array a)): (array Z) :=
match u with
| mk_sparse_array _ _ back1 _ _ => back1
end.
Implicit Arguments back.
Definition card (a:Type)(u:(sparse_array a)): Z :=
match u with
| mk_sparse_array _ _ _ card1 _ => card1
end.
Implicit Arguments card.
Definition def (a:Type)(u:(sparse_array a)): a :=
match u with
| mk_sparse_array _ _ _ _ def1 => def1
end.
Implicit Arguments def.
Definition index (a:Type)(u:(sparse_array a)): (array Z) :=
match u with
| mk_sparse_array _ index1 _ _ _ => index1
end.
Implicit Arguments index.
Definition values (a:Type)(u:(sparse_array a)): (array a) :=
match u with
| mk_sparse_array values1 _ _ _ _ => values1
end.
Implicit Arguments values.
Definition is_elt (a:Type)(a1:(sparse_array a)) (i:Z): Prop :=
((0%Z <= (get1 (index a1) i))%Z /\ ((get1 (index a1) i) < (card a1))%Z) /\
((get1 (back a1) (get1 (index a1) i)) = i).
Implicit Arguments is_elt.
Parameter value: forall (a:Type), (sparse_array a) -> Z -> a.
Implicit Arguments value.
Axiom value_def : forall (a:Type), forall (a1:(sparse_array a)) (i:Z),
((is_elt a1 i) -> ((value a1 i) = (get1 (values a1) i))) /\ ((~ (is_elt a1
i)) -> ((value a1 i) = (def a1))).
Definition length1 (a:Type)(a1:(sparse_array a)): Z := (length (values a1)).
Implicit Arguments length1.
Definition sa_inv (a:Type)(a1:(sparse_array a)): Prop :=
(((0%Z <= (card a1))%Z /\ ((card a1) <= (length1 a1))%Z) /\
((length1 a1) <= 1000%Z)%Z) /\
((((length (values a1)) = (length (index a1))) /\
((length (index a1)) = (length (back a1)))) /\ forall (i:Z),
((0%Z <= i)%Z /\ (i < (card a1))%Z) -> (((0%Z <= (get1 (back a1) i))%Z /\
((get1 (back a1) i) < (length1 a1))%Z) /\ ((get1 (index a1)
(get1 (back a1) i)) = i))).
Implicit Arguments sa_inv.
Definition injective(a:(map Z Z)) (n:Z): Prop := forall (i:Z) (j:Z),
((0%Z <= i)%Z /\ (i < n)%Z) -> (((0%Z <= j)%Z /\ (j < n)%Z) ->
((~ (i = j)) -> ~ ((get a i) = (get a j)))).
Definition surjective(a:(map Z Z)) (n:Z): Prop := forall (i:Z),
((0%Z <= i)%Z /\ (i < n)%Z) -> exists j:Z, ((0%Z <= j)%Z /\ (j < n)%Z) /\
((get a j) = i).
Definition range(a:(map Z Z)) (n:Z): Prop := forall (i:Z), ((0%Z <= i)%Z /\
(i < n)%Z) -> ((0%Z <= (get a i))%Z /\ ((get a i) < n)%Z).
Axiom injective_surjective : forall (a:(map Z Z)) (n:Z), (injective a n) ->
((range a n) -> (surjective a n)).
Theorem permutation : forall (a:Type), forall (a1:(sparse_array a)),
(sa_inv a1) -> (((card a1) = (length1 a1)) -> forall (i:Z),
((0%Z <= i)%Z /\ (i < (length1 a1))%Z) -> (is_elt a1 i)).
(* YOU MAY EDIT THE PROOF BELOW *)
destruct a1 as ((n0, a_values), (n1, a_index), (n2, a_back), a_card, a_def); simpl.
unfold sa_inv, is_elt, length1, get1; simpl.
intro H; decompose [and] H; clear H.
clear a_values a_def H0 H3 H4.
subst n1 n2.
intros. subst a_card.
assert (inj: injective a_back n0).
red; intros.
red; intro.
generalize (H5 i0 H).
generalize (H5 j H1).
intuition.
apply H2.
rewrite <- H11.
rewrite <- H12.
apply f_equal; assumption.
assert (rng: range a_back n0).
red; intros.
generalize (H5 i0); intuition.
generalize (injective_surjective a_back n0 inj rng); intro surj.
destruct (surj i H0) as (j, (hj1, hj2)).
generalize (H5 j hj1); intros (hi1, hi2).
split.
rewrite <- hj2.
rewrite hi2; auto.
rewrite <- hj2.
generalize (H5 j hj1); intuition.
rewrite H8; auto.
Qed.
(* DO NOT EDIT BELOW *)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "why3session.dtd">
<why3session name="examples/programs/vacid_0_sparse_array/why3session.xml">
<file name="../vacid_0_sparse_array.mlw" verified="false" expanded="true">
<theory name="WP SparseArray" verified="false" expanded="true">
<goal name="WP_parameter create" expl="normal postcondition" sum="a5cf0ebd4e044474e9354356099a0e63" proved="true" expanded="false">
<file name="../vacid_0_sparse_array.mlw" verified="true" expanded="true">
<theory name="WP SparseArray" verified="true" expanded="true">
<goal name="WP_parameter create" expl="normal postcondition" sum="a5cf0ebd4e044474e9354356099a0e63" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter test" expl="correctness of parameter test" sum="07eb34329b94c5a72ff751c5caf92205" proved="true" expanded="false">
<goal name="WP_parameter test" expl="correctness of parameter test" sum="07eb34329b94c5a72ff751c5caf92205" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.26"/>
</proof>
</goal>
<goal name="WP_parameter get" expl="correctness of parameter get" sum="ed8098dfef4e1b8bfaccda3ce769f1dc" proved="true" expanded="false">
<goal name="WP_parameter get" expl="correctness of parameter get" sum="ed8098dfef4e1b8bfaccda3ce769f1dc" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="permutation" sum="786f5a179e9e8690bc48d4028698bcda" proved="false" expanded="true">
<goal name="permutation" sum="28ce761898253cf30b57396619e41f2e" proved="true" expanded="true">
<proof prover="coq" timelimit="10" edited="vacid_0_sparse_array_WP_SparseArray_permutation_1.v" obsolete="false">
<result status="valid" time="0.62"/>
</proof>
</goal>
<goal name="WP_parameter set" expl="correctness of parameter set" sum="e41489f0bcf26e9a442362dd75a26152" proved="true" expanded="false">
<transf name="split_goal" proved="true" expanded="false">
<goal name="WP_parameter set.1" expl="precondition" sum="7601e16e287ba4a0fdfc4435b53c2628" proved="true" expanded="false">
<goal name="WP_parameter set" expl="correctness of parameter set" sum="da91202a70b8637c5e7df0478fab0082" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter set.1" expl="precondition" sum="bd25a44c26b022647a75524aedee1b82" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter set.2" expl="precondition" sum="01f0676e4f19cd97accfd941202174bc" proved="true" expanded="false">
<goal name="WP_parameter set.2" expl="precondition" sum="22063177db5d4348897756e70777c2c0" proved="true" expanded="true">
<proof prover="cvc3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.10"/>
</proof>
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.38"/>
<result status="valid" time="0.53"/>
</proof>
<proof prover="z3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.03"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter set.3" expl="assertion" sum="bd7f9649dc30f6c11d430033cadf89b1" proved="true" expanded="false">
<goal name="WP_parameter set.3" expl="assertion" sum="075274df983b8a1dac575864e7a26458" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.06"/>
<result status="valid" time="0.11"/>
</proof>
</goal>
<goal name="WP_parameter set.4" expl="precondition" sum="664619d79b6a8169a62220383acdf4d2" proved="true" expanded="false">
<goal name="WP_parameter set.4" expl="precondition" sum="194d3170c7c0acc0ae51ee19f91167a4" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.05"/>
<result status="valid" time="0.07"/>
</proof>
</goal>
<goal name="WP_parameter set.5" expl="precondition" sum="02d081945d04190f9890f4502ff805aa" proved="true" expanded="false">
<goal name="WP_parameter set.5" expl="precondition" sum="d2909b089b70573ce0fb96f04ea1b934" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.06"/>
<result status="valid" time="0.09"/>
</proof>
</goal>
<goal name="WP_parameter set.6" expl="normal postcondition" sum="e5f37da6cf7263e1cdd65de68239ccc8" proved="true" expanded="false">
<goal name="WP_parameter set.6" expl="normal postcondition" sum="19deacce62cdb759b6a01fff6d4c120a" proved="true" expanded="true">
<proof prover="z3" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.36"/>
<result status="valid" time="0.19"/>
</proof>
</goal>
<goal name="WP_parameter set.7" expl="normal postcondition" sum="183368126e81fed485e5e925745e2b12" proved="true" expanded="false">
<goal name="WP_parameter set.7" expl="normal postcondition" sum="0f2ad18517939de556dd297efab033aa" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.34"/>
<result status="valid" time="0.58"/>
</proof>
<transf name="split_goal" proved="true" expanded="false">
<goal name="WP_parameter set.7.1" expl="correctness of parameter set" sum="e1de791dec454fda2c51a2e0f6eddb3f" proved="true" expanded="false">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter set.7.1" expl="correctness of parameter set" sum="b579dc18d3198ab030691d75546c7ddd" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter set.7.2" expl="correctness of parameter set" sum="584cf948497a42bde6a164f9ba05775f" proved="true" expanded="false">
<goal name="WP_parameter set.7.2" expl="correctness of parameter set" sum="6fd50a88793f69e5131992f1cc6a8cd0" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.08"/>
<result status="valid" time="0.19"/>
</proof>
</goal>
<goal name="WP_parameter set.7.3" expl="correctness of parameter set" sum="6c4fac2b25dff585440a11533de73fef" proved="true" expanded="false">
<goal name="WP_parameter set.7.3" expl="correctness of parameter set" sum="796305e7f863371fcf8b6e80e6ab8e3e" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.36"/>
<result status="valid" time="0.54"/>
</proof>
</goal>
</transf>
......@@ -83,107 +86,107 @@
</transf>
</goal>
</theory>
<theory name="WP Harness" verified="true" expanded="false">
<goal name="WP_parameter harness" expl="correctness of parameter harness" sum="8e8f1387f2b65b8badd8864116f8384a" proved="true" expanded="false">
<transf name="split_goal" proved="true" expanded="false">
<goal name="WP_parameter harness.1" expl="precondition" sum="eb391fb5295f2f0473400c6b294771a6" proved="true" expanded="false">
<theory name="WP Harness" verified="true" expanded="true">
<goal name="WP_parameter harness" expl="correctness of parameter harness" sum="c64c84f5e28238d99b95ec203fb7cce4" proved="true" expanded="true">
<transf name="split_goal" proved="true" expanded="true">
<goal name="WP_parameter harness.1" expl="precondition" sum="998726afeae7e5cb2b705658e0c9fc92" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter harness.2" expl="precondition" sum="2a8ee254c77980c93409b8514fac6145" proved="true" expanded="false">
<goal name="WP_parameter harness.2" expl="precondition" sum="e2b8627de03f0f84039ecc8baa344cb1" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter harness.3" expl="precondition" sum="9934206c37db4479414e2e5174fde861" proved="true" expanded="false">
<goal name="WP_parameter harness.3" expl="precondition" sum="7be3ad60b191cd798df6fc4bff22c8c9" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter harness.4" expl="assertion" sum="e8e59eb83226922548fdc516d5d30bff" proved="true" expanded="false">
<goal name="WP_parameter harness.4" expl="assertion" sum="565db1663ad105110bc25110584af5a6" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.07"/>
</proof>
</goal>
<goal name="WP_parameter harness.5" expl="precondition" sum="8dbfcc5f3a8c613481f31172ef3a506f" proved="true" expanded="false">
<goal name="WP_parameter harness.5" expl="precondition" sum="c06509512e57b9f65642b5e785fcaba2" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter harness.6" expl="assertion" sum="9a109e6e07aacab2f1d2ea64377fb09a" proved="true" expanded="false">
<goal name="WP_parameter harness.6" expl="assertion" sum="9929898039fd6daea9a2739d6249f062" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.08"/>
</proof>
</goal>
<goal name="WP_parameter harness.7" expl="precondition" sum="ce02bdde912d75bfe3a4ad34db78b810" proved="true" expanded="false">
<goal name="WP_parameter harness.7" expl="precondition" sum="66cadd94da7fd12a85c0a540e8288044" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter harness.8" expl="precondition" sum="b3d04d4a77765407de94c9af37f9dd70" proved="true" expanded="false">
<goal name="WP_parameter harness.8" expl="precondition" sum="7599ded8f9c6ccce5b04b37caff9f73c" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter harness.9" expl="precondition" sum="6a4469ce74a696fe8a077e145b7472c6" proved="true" expanded="false">
<goal name="WP_parameter harness.9" expl="precondition" sum="f8211c89984e7d30d9b31cce7f8b1ffe" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter harness.10" expl="assertion" sum="bb0769c3e85426119d61eaf8c5884c69" proved="true" expanded="false">
<goal name="WP_parameter harness.10" expl="assertion" sum="2ea3ce413d55b7867467eb7c47f9f6c4" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter harness.11" expl="precondition" sum="6ce34bf9c79fa69e6709ee38c209dcca" proved="true" expanded="false">
<goal name="WP_parameter harness.11" expl="precondition" sum="21f9cad4c876dc8b79cbf8082f56620b" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.00"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter harness.12" expl="assertion" sum="884b03a64fdab4436d138947f3cd0bf2" proved="true" expanded="false">
<goal name="WP_parameter harness.12" expl="assertion" sum="44e8174b7150cbe8de28820272aba764" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter harness.13" expl="precondition" sum="b1a9e7304f79c2d75bec92bfc067e631" proved="true" expanded="false">
<goal name="WP_parameter harness.13" expl="precondition" sum="2d2f81267b50d682dec12820967ce969" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal name="WP_parameter harness.14" expl="assertion" sum="a687851438415ae3074e1ff3a69c6d36" proved="true" expanded="false">
<goal name="WP_parameter harness.14" expl="assertion" sum="8316c9ef78674e5bc424dd5e787648a1" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.48"/>
<result status="valid" time="0.96"/>
</proof>
</goal>
<goal name="WP_parameter harness.15" expl="precondition" sum="f98222723f5c60683f3f709dc6bf9d3b" proved="true" expanded="false">
<goal name="WP_parameter harness.15" expl="precondition" sum="fcec323540f2615d022e5c30b04fad44" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
</proof>
</goal>
<goal name="WP_parameter harness.16" expl="assertion" sum="5c4d8fddd12455c7b7fb986f86fc9049" proved="true" expanded="false">
<goal name="WP_parameter harness.16" expl="assertion" sum="105047d80fde3d5b4d9f0390ce055ee0" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.43"/>
<result status="valid" time="0.82"/>
</proof>
</goal>
<goal name="WP_parameter harness.17" expl="precondition" sum="d9dc39989e736d8daf65ad9fd3c7a565" proved="true" expanded="false">
<goal name="WP_parameter harness.17" expl="precondition" sum="45a42bf1fca30de31d322214367981cf" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal name="WP_parameter harness.18" expl="assertion" sum="b8cfeb02868ab1e98785a85bc5bc6e0b" proved="true" expanded="false">
<goal name="WP_parameter harness.18" expl="assertion" sum="5deb8dad4edea42118f1930f6eed75aa" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.62"/>
<result status="valid" time="1.02"/>
</proof>
</goal>
<goal name="WP_parameter harness.19" expl="precondition" sum="59589c1ecad617af2bb8732ed894b4ce" proved="true" expanded="false">
<goal name="WP_parameter harness.19" expl="precondition" sum="2ec9225509250e71e9e91e7f73be8563" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.05"/>
</proof>
</goal>
<goal name="WP_parameter harness.20" expl="assertion" sum="ed09da14deb62bcc05021a822a0a862f" proved="true" expanded="false">
<goal name="WP_parameter harness.20" expl="assertion" sum="6c4010acc5cbc571058c2ada9a252a5a" proved="true" expanded="true">
<proof prover="alt-ergo" timelimit="10" edited="" obsolete="false">
<result status="valid" time="0.53"/>
<result status="valid" time="0.88"/>
</proof>
</goal>
</transf>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment