Commit a869eaa9 authored by MARCHE Claude's avatar MARCHE Claude

Fixed Coq proofs using realized MapInjection

parent cf996aca
......@@ -4,6 +4,7 @@ Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require map.Map.
Require map.MapInjection.
(* Why3 assumption *)
Definition unit := unit.
......@@ -99,24 +100,6 @@ Axiom value_def : forall {a:Type} {a_WT:WhyType a}, forall (a1:(@sparse_array
Definition length1 {a:Type} {a_WT:WhyType a} (a1:(@sparse_array
a a_WT)): Z := (length (values a1)).
(* Why3 assumption *)
Definition injective (a:(@map.Map.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)) -> ~ ((map.Map.get a i) = (map.Map.get a j)))).
(* Why3 assumption *)
Definition surjective (a:(@map.Map.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) /\
((map.Map.get a j) = i).
(* Why3 assumption *)
Definition range (a:(@map.Map.map Z _ Z _)) (n:Z): Prop := forall (i:Z),
((0%Z <= i)%Z /\ (i < n)%Z) -> ((0%Z <= (map.Map.get a i))%Z /\
((map.Map.get a i) < n)%Z).
Axiom injective_surjective : forall (a:(@map.Map.map Z _ Z _)) (n:Z),
(injective a n) -> ((range a n) -> (surjective a n)).
Require Import Why3.
Ltac ae := why3 "alt-ergo".
......@@ -138,9 +121,9 @@ unfold is_elt, length1, get; simpl.
intro H; decompose [and] H; clear H.
subst n1 n2.
intros. subst a_card.
assert (inj: injective a_back n0) by ae.
assert (rng: range a_back n0) by ae.
generalize (injective_surjective a_back n0 inj rng); intro surj.
assert (inj: MapInjection.injective a_back n0) by ae.
assert (rng: MapInjection.range a_back n0) by ae.
generalize (MapInjection.injective_surjective a_back n0 inj rng); intro surj.
destruct (surj i H1) as (j, (hj1, hj2)).
ae.
Qed.
......
......@@ -106,7 +106,7 @@
edited="vacid_0_sparse_array_2_SparseArray_permutation_1.v"
obsolete="false"
archived="false">
<result status="valid" time="1.22"/>
<result status="valid" time="1.24"/>
</proof>
</goal>
<goal
......@@ -128,11 +128,11 @@
name="WP_parameter set.1"
locfile="../vacid_0_sparse_array.mlw"
loclnum="96" loccnumb="6" loccnume="9"
expl="1. precondition"
expl="1. index in array bounds"
sum="88db21b5a3cc7ee52c64849f80745892"
proved="true"
expanded="false"
shape="preconditionainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V11V11Aainfix &lt;agetV5V11V0Aainfix &lt;=c0agetV5V11Iainfix &lt;V11V6Aainfix &lt;=c0V11FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
shape="index in array boundsainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V11V11Aainfix &lt;agetV5V11V0Aainfix &lt;=c0agetV5V11Iainfix &lt;V11V6Aainfix &lt;=c0V11FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
<label
name="expl:VC for set"/>
<proof
......@@ -244,11 +244,11 @@
name="WP_parameter set.6"
locfile="../vacid_0_sparse_array.mlw"
loclnum="96" loccnumb="6" loccnume="9"
expl="6. precondition"
expl="6. index in array bounds"
sum="7e779574092aeeba5588cc2cceb39bb5"
proved="true"
expanded="false"
shape="preconditionainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;V6V0INainfix =V13aTrueIais_eltV12V8qainfix =V13aTrueFIainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V0Aainfix =agetV3agetV5V14V14Aainfix &lt;agetV5V14V0Aainfix &lt;=c0agetV5V14Iainfix &lt;V14V6Aainfix &lt;=c0V14FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Iainfix =V11asetV1V8V9Aainfix &lt;=c0V0Lamk sparse_arrayamk arrayV0V11amk arrayV2V3amk arrayV4V5V6V7FIainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V15V15Aainfix &lt;agetV5V15V0Aainfix &lt;=c0agetV5V15Iainfix &lt;V15V6Aainfix &lt;=c0V15FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
shape="index in array boundsainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;V6V0INainfix =V13aTrueIais_eltV12V8qainfix =V13aTrueFIainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V0Aainfix =agetV3agetV5V14V14Aainfix &lt;agetV5V14V0Aainfix &lt;=c0agetV5V14Iainfix &lt;V14V6Aainfix &lt;=c0V14FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Iainfix =V11asetV1V8V9Aainfix &lt;=c0V0Lamk sparse_arrayamk arrayV0V11amk arrayV2V3amk arrayV4V5V6V7FIainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V15V15Aainfix &lt;agetV5V15V0Aainfix &lt;=c0agetV5V15Iainfix &lt;V15V6Aainfix &lt;=c0V15FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
<label
name="expl:VC for set"/>
<proof
......@@ -264,11 +264,11 @@
name="WP_parameter set.7"
locfile="../vacid_0_sparse_array.mlw"
loclnum="96" loccnumb="6" loccnume="9"
expl="7. precondition"
expl="7. index in array bounds"
sum="03a900ddb7ac18d46efbf1d31a08a243"
proved="true"
expanded="false"
shape="preconditionainfix &lt;V6V4Aainfix &lt;=c0V6Iainfix =V14asetV3V8V6Aainfix &lt;=c0V2FIainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;V6V0INainfix =V13aTrueIais_eltV12V8qainfix =V13aTrueFIainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V0Aainfix =agetV3agetV5V15V15Aainfix &lt;agetV5V15V0Aainfix &lt;=c0agetV5V15Iainfix &lt;V15V6Aainfix &lt;=c0V15FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Iainfix =V11asetV1V8V9Aainfix &lt;=c0V0Lamk sparse_arrayamk arrayV0V11amk arrayV2V3amk arrayV4V5V6V7FIainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V16V16Aainfix &lt;agetV5V16V0Aainfix &lt;=c0agetV5V16Iainfix &lt;V16V6Aainfix &lt;=c0V16FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
shape="index in array boundsainfix &lt;V6V4Aainfix &lt;=c0V6Iainfix =V14asetV3V8V6Aainfix &lt;=c0V2FIainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;V6V0INainfix =V13aTrueIais_eltV12V8qainfix =V13aTrueFIainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V0Aainfix =agetV3agetV5V15V15Aainfix &lt;agetV5V15V0Aainfix &lt;=c0agetV5V15Iainfix &lt;V15V6Aainfix &lt;=c0V15FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Iainfix =V11asetV1V8V9Aainfix &lt;=c0V0Lamk sparse_arrayamk arrayV0V11amk arrayV2V3amk arrayV4V5V6V7FIainfix &lt;V8V0Aainfix &lt;=c0V8Iainfix &lt;V8V0Aainfix &lt;=c0V8Aainfix &lt;=c0V4Aainfix &lt;=c0V2Aainfix &lt;=c0V0Aainfix =agetV3agetV5V16V16Aainfix &lt;agetV5V16V0Aainfix &lt;=c0agetV5V16Iainfix &lt;V16V6Aainfix &lt;=c0V16FAainfix =V2V4Aainfix =V0V2Aainfix &lt;=V0amaxlenAainfix &lt;=V6V0Aainfix &lt;=c0V6Lamk sparse_arrayamk arrayV0V1amk arrayV2V3amk arrayV4V5V6V7F">
<label
name="expl:VC for set"/>
<proof
......
(* This file is generated by Why3's Coq driver *)
(* This file is generated by Why3's Coq 8.4 driver *)
(* Beware! Only edit allowed sections below *)
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require map.Map.
Require map.MapInjection.
(* Why3 assumption *)
Definition unit := unit.
......@@ -11,75 +12,63 @@ Definition unit := unit.
(* Why3 assumption *)
Inductive array
(a:Type) {a_WT:WhyType a} :=
| mk_array : Z -> (map.Map.map Z a) -> array a.
| mk_array : Z -> (@map.Map.map Z _ a a_WT) -> array a.
Axiom array_WhyType : forall (a:Type) {a_WT:WhyType a}, WhyType (array a).
Existing Instance array_WhyType.
Implicit Arguments mk_array [[a] [a_WT]].
(* Why3 assumption *)
Definition elts {a:Type} {a_WT:WhyType a} (v:(array a)): (map.Map.map Z a) :=
match v with
Definition elts {a:Type} {a_WT:WhyType a} (v:(@array a a_WT)): (@map.Map.map
Z _ a a_WT) := match v with
| (mk_array x x1) => x1
end.
(* Why3 assumption *)
Definition length {a:Type} {a_WT:WhyType a} (v:(array a)): Z :=
Definition length {a:Type} {a_WT:WhyType a} (v:(@array a a_WT)): Z :=
match v with
| (mk_array x x1) => x
end.
(* Why3 assumption *)
Definition get {a:Type} {a_WT:WhyType a} (a1:(array a)) (i:Z): a :=
Definition get {a:Type} {a_WT:WhyType a} (a1:(@array a a_WT)) (i:Z): a :=
(map.Map.get (elts a1) i).
(* Why3 assumption *)
Definition set {a:Type} {a_WT:WhyType a} (a1:(array a)) (i:Z) (v:a): (array
a) := (mk_array (length a1) (map.Map.set (elts a1) i v)).
Definition set {a:Type} {a_WT:WhyType a} (a1:(@array a a_WT)) (i:Z)
(v:a): (@array a a_WT) := (mk_array (length a1) (map.Map.set (elts a1) i
v)).
(* Why3 assumption *)
Definition make {a:Type} {a_WT:WhyType a} (n:Z) (v:a): (array a) :=
(mk_array n (map.Map.const v:(map.Map.map Z a))).
Definition make {a:Type} {a_WT:WhyType a} (n:Z) (v:a): (@array a a_WT) :=
(mk_array n (map.Map.const v:(@map.Map.map Z _ a a_WT))).
(* Why3 assumption *)
Definition injective (a:(map.Map.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)) -> ~ ((map.Map.get a i) = (map.Map.get a j)))).
Definition injective (a:(@array Z _)) (n:Z): Prop :=
(map.MapInjection.injective (elts a) n).
(* Why3 assumption *)
Definition surjective (a:(map.Map.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) /\
((map.Map.get a j) = i).
Definition surjective (a:(@array Z _)) (n:Z): Prop :=
(map.MapInjection.surjective (elts a) n).
(* Why3 assumption *)
Definition range (a:(map.Map.map Z Z)) (n:Z): Prop := forall (i:Z),
((0%Z <= i)%Z /\ (i < n)%Z) -> ((0%Z <= (map.Map.get a i))%Z /\
((map.Map.get a i) < n)%Z).
Axiom injective_surjective : forall (a:(map.Map.map Z Z)) (n:Z), (injective a
n) -> ((range a n) -> (surjective a n)).
(* Why3 assumption *)
Definition injective1 (a:(array Z)) (n:Z): Prop := (injective (elts a) n).
(* Why3 assumption *)
Definition surjective1 (a:(array Z)) (n:Z): Prop := (surjective (elts a) n).
(* Why3 assumption *)
Definition range1 (a:(array Z)) (n:Z): Prop := (range (elts a) n).
Definition range (a:(@array Z _)) (n:Z): Prop := (map.MapInjection.range
(elts a) n).
(* Why3 goal *)
Theorem WP_parameter_inverting : forall (a:Z) (b:Z) (n:Z),
forall (a1:(map.Map.map Z Z)), (((0%Z <= a)%Z /\ (0%Z <= b)%Z) /\
(((n = a) /\ (a = b)) /\ ((injective a1 n) /\ (range a1 n)))) -> let o :=
(n - 1%Z)%Z in ((0%Z <= o)%Z -> forall (b1:(map.Map.map Z Z)),
(forall (j:Z), ((0%Z <= j)%Z /\ (j < (o + 1%Z)%Z)%Z) -> ((map.Map.get b1
(map.Map.get a1 j)) = j)) -> ((0%Z <= b)%Z -> (injective b1 n))).
Theorem WP_parameter_inverting : forall (a:Z) (a1:(@map.Map.map Z _ Z _))
(b:Z) (n:Z), (((0%Z <= a)%Z /\ (0%Z <= b)%Z) /\ (((n = a) /\ (a = b)) /\
((map.MapInjection.injective a1 n) /\ (map.MapInjection.range a1 n)))) ->
let o := (n - 1%Z)%Z in ((0%Z <= o)%Z -> forall (b1:(@map.Map.map Z _
Z _)), (forall (j:Z), ((0%Z <= j)%Z /\ (j < (o + 1%Z)%Z)%Z) ->
((map.Map.get b1 (map.Map.get a1 j)) = j)) -> ((0%Z <= b)%Z ->
(map.MapInjection.injective b1 n))).
(* Why3 intros a a1 b n ((h1,h2),((h3,h4),(h5,h6))) o h7 b1 h8 h9. *)
intuition.
intuition.
red; intros.
unfold get; simpl.
assert (surjective a1 n).
apply injective_surjective; assumption.
assert (MapInjection.surjective a1 n).
apply MapInjection.injective_surjective; assumption.
generalize (H11 i H8); unfold get; simpl; intros (i1, (Hi1,Hi2)).
generalize (H11 j H9); unfold get; simpl; intros (j1, (Hj1,Hj2)).
rewrite <- Hi2.
......@@ -92,4 +81,3 @@ subst.
auto.
Qed.
......@@ -82,11 +82,11 @@
name="WP_parameter inverting.3"
locfile="../vstte10_inverting.mlw"
loclnum="21" loccnumb="6" loccnume="15"
expl="3. precondition"
expl="3. index in array bounds"
sum="d7f793ddd8deade51d85fc67451ffcfa"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix =agetV6agetV1V8V8Iainfix &lt;V8V7Aainfix &lt;=c0V8FIainfix &lt;=V7V5Aainfix &lt;=c0V7FFIainfix &lt;=c0V5Lainfix -V4c1IarangeV1V4AainjectiveV1V4Aainfix =V0V2Aainfix =V4V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="index in array boundsainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix =agetV6agetV1V8V8Iainfix &lt;V8V7Aainfix &lt;=c0V8FIainfix &lt;=V7V5Aainfix &lt;=c0V7FFIainfix &lt;=c0V5Lainfix -V4c1IarangeV1V4AainjectiveV1V4Aainfix =V0V2Aainfix =V4V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
<label
name="expl:VC for inverting"/>
<proof
......@@ -122,11 +122,11 @@
name="WP_parameter inverting.5"
locfile="../vstte10_inverting.mlw"
loclnum="21" loccnumb="6" loccnume="15"
expl="5. precondition"
expl="5. index in array bounds"
sum="bda90608f09a6f170951493617c0f396"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;=c0V2LagetV1V7Iainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix =agetV6agetV1V9V9Iainfix &lt;V9V7Aainfix &lt;=c0V9FIainfix &lt;=V7V5Aainfix &lt;=c0V7FFIainfix &lt;=c0V5Lainfix -V4c1IarangeV1V4AainjectiveV1V4Aainfix =V0V2Aainfix =V4V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
shape="index in array boundsainfix &lt;V8V2Aainfix &lt;=c0V8Iainfix &lt;=c0V2LagetV1V7Iainfix &lt;V7V0Aainfix &lt;=c0V7Iainfix =agetV6agetV1V9V9Iainfix &lt;V9V7Aainfix &lt;=c0V9FIainfix &lt;=V7V5Aainfix &lt;=c0V7FFIainfix &lt;=c0V5Lainfix -V4c1IarangeV1V4AainjectiveV1V4Aainfix =V0V2Aainfix =V4V0Aainfix &lt;=c0V2Aainfix &lt;=c0V0F">
<label
name="expl:VC for inverting"/>
<proof
......@@ -196,7 +196,7 @@
edited="vstte10_inverting_WP_InvertingAnInjection_WP_parameter_inverting_1.v"
obsolete="false"
archived="false">
<result status="valid" time="1.11"/>
<result status="valid" time="0.94"/>
</proof>
</goal>
</transf>
......@@ -220,11 +220,11 @@
name="WP_parameter inverting2.1"
locfile="../vstte10_inverting.mlw"
loclnum="31" loccnumb="6" loccnume="16"
expl="1. precondition"
expl="1. array creation size"
sum="e61b15ff3aecd95d66a53cd53191e475"
proved="true"
expanded="true"
shape="preconditionainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
shape="array creation sizeainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
<label
name="expl:VC for inverting2"/>
<proof
......@@ -280,11 +280,11 @@
name="WP_parameter inverting2.4"
locfile="../vstte10_inverting.mlw"
loclnum="31" loccnumb="6" loccnume="16"
expl="4. precondition"
expl="4. index in array bounds"
sum="d83a7ef5a592bd8b8d06abf2a29d6731"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix =agetV4agetV1V6V6Iainfix &lt;V6V5Aainfix &lt;=c0V6FIainfix &lt;=V5V3Aainfix &lt;=c0V5FFIainfix &lt;=c0V3Lainfix -V2c1Iainfix &lt;=c0V2Iainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
shape="index in array boundsainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix =agetV4agetV1V6V6Iainfix &lt;V6V5Aainfix &lt;=c0V6FIainfix &lt;=V5V3Aainfix &lt;=c0V5FFIainfix &lt;=c0V3Lainfix -V2c1Iainfix &lt;=c0V2Iainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
<label
name="expl:VC for inverting2"/>
<proof
......@@ -320,11 +320,11 @@
name="WP_parameter inverting2.6"
locfile="../vstte10_inverting.mlw"
loclnum="31" loccnumb="6" loccnume="16"
expl="6. precondition"
expl="6. index in array bounds"
sum="11696eb096a2c34f4388fc014d79e25f"
proved="true"
expanded="true"
shape="preconditionainfix &lt;V6V2Aainfix &lt;=c0V6Iainfix &lt;=c0V2LagetV1V5Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix =agetV4agetV1V7V7Iainfix &lt;V7V5Aainfix &lt;=c0V7FIainfix &lt;=V5V3Aainfix &lt;=c0V5FFIainfix &lt;=c0V3Lainfix -V2c1Iainfix &lt;=c0V2Iainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
shape="index in array boundsainfix &lt;V6V2Aainfix &lt;=c0V6Iainfix &lt;=c0V2LagetV1V5Iainfix &lt;V5V0Aainfix &lt;=c0V5Iainfix =agetV4agetV1V7V7Iainfix &lt;V7V5Aainfix &lt;=c0V7FIainfix &lt;=V5V3Aainfix &lt;=c0V5FFIainfix &lt;=c0V3Lainfix -V2c1Iainfix &lt;=c0V2Iainfix &gt;=V2c0IarangeV1V2AainjectiveV1V2Aainfix =V2V0Aainfix &lt;=c0V0F">
<label
name="expl:VC for inverting2"/>
<proof
......@@ -462,11 +462,11 @@
name="WP_parameter test.1"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="1. precondition"
expl="1. array creation size"
sum="8211d095aad8a981bfe5a0191a954e9a"
proved="true"
expanded="true"
shape="preconditionainfix &gt;=c10c0">
shape="array creation sizeainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -482,11 +482,11 @@
name="WP_parameter test.2"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="2. precondition"
expl="2. index in array bounds"
sum="d27ec191905e166c9832927e8e222877"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -502,11 +502,11 @@
name="WP_parameter test.3"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="3. precondition"
expl="3. index in array bounds"
sum="86ab5de80328174ae53e7f0cd506b42a"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -522,11 +522,11 @@
name="WP_parameter test.4"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="4. precondition"
expl="4. index in array bounds"
sum="98cddf49ee9f070aa8e24a0319c394a7"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -542,11 +542,11 @@
name="WP_parameter test.5"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="5. precondition"
expl="5. index in array bounds"
sum="091cd6697e63d5ed711f5f059f23ee84"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -562,11 +562,11 @@
name="WP_parameter test.6"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="6. precondition"
expl="6. index in array bounds"
sum="2122323c5bb404f0e44e3a30625714d8"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -582,11 +582,11 @@
name="WP_parameter test.7"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="7. precondition"
expl="7. index in array bounds"
sum="9b612c5afa904151f6efd97ab8d98368"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -602,11 +602,11 @@
name="WP_parameter test.8"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="8. precondition"
expl="8. index in array bounds"
sum="69354df51eb4854ba19c029d3be58905"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -622,11 +622,11 @@
name="WP_parameter test.9"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="9. precondition"
expl="9. index in array bounds"
sum="9a9fdffacf6e22eaff891e196d723370"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -642,11 +642,11 @@
name="WP_parameter test.10"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="10. precondition"
expl="10. index in array bounds"
sum="992c70b97d1db6fa43d5a4430e945b8c"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c8c10Aainfix &lt;=c0c8Iainfix =V7asetV6c7c1Aainfix &lt;=c0c10FIainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c8c10Aainfix &lt;=c0c8Iainfix =V7asetV6c7c1Aainfix &lt;=c0c10FIainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......@@ -662,11 +662,11 @@
name="WP_parameter test.11"
locfile="../vstte10_inverting.mlw"
loclnum="49" loccnumb="6" loccnume="10"
expl="11. precondition"
expl="11. index in array bounds"
sum="f858211d4ed818f582feaa413ed0dd17"
proved="true"
expanded="true"
shape="preconditionainfix &lt;c9c10Aainfix &lt;=c0c9Iainfix =V8asetV7c8c5Aainfix &lt;=c0c10FIainfix &lt;c8c10Aainfix &lt;=c0c8Iainfix =V7asetV6c7c1Aainfix &lt;=c0c10FIainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
shape="index in array boundsainfix &lt;c9c10Aainfix &lt;=c0c9Iainfix =V8asetV7c8c5Aainfix &lt;=c0c10FIainfix &lt;c8c10Aainfix &lt;=c0c8Iainfix =V7asetV6c7c1Aainfix &lt;=c0c10FIainfix &lt;c7c10Aainfix &lt;=c0c7Iainfix =V6asetV5c6c0Aainfix &lt;=c0c10FIainfix &lt;c6c10Aainfix &lt;=c0c6Iainfix =V5asetV4c5c4Aainfix &lt;=c0c10FIainfix &lt;c5c10Aainfix &lt;=c0c5Iainfix =V4asetV3c4c7Aainfix &lt;=c0c10FIainfix &lt;c4c10Aainfix &lt;=c0c4Iainfix =V3asetV2c3c2Aainfix &lt;=c0c10FIainfix &lt;c3c10Aainfix &lt;=c0c3Iainfix =V2asetV1c2c8Aainfix &lt;=c0c10FIainfix &lt;c2c10Aainfix &lt;=c0c2Iainfix =V1asetV0c1c3Aainfix &lt;=c0c10FIainfix &lt;c1c10Aainfix &lt;=c0c1Iainfix =V0asetaconstc0c0c9Aainfix &lt;=c0c10FIainfix &lt;c0c10Aainfix &lt;=c0c0Iainfix &lt;=c0c10Iainfix &gt;=c10c0">
<label
name="expl:VC for test"/>
<proof
......
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