Commit 62214cba authored by MARCHE Claude's avatar MARCHE Claude

hoare: adding implies connective

parent 80dc916e
...@@ -30,7 +30,7 @@ type stmt = ...@@ -30,7 +30,7 @@ type stmt =
| Swhile expr stmt | Swhile expr stmt
lemma check_skip: lemma check_skip:
forall s:stmt. s=Sskip \/s<>Sskip forall s:stmt. s=Sskip \/ s<>Sskip
(* program states *) (* program states *)
......
...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt) ...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt)
Inductive fmla := Inductive fmla :=
| Fterm : expr -> fmla | Fterm : expr -> fmla
| Fand : fmla -> fmla -> fmla | Fand : fmla -> fmla -> fmla
| Fnot : fmla -> fmla . | Fnot : fmla -> fmla
| Fimplies : fmla -> fmla -> fmla .
Set Implicit Arguments. Set Implicit Arguments.
Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := ...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
| (Fterm e) => ~ ((eval_expr s e) = 0%Z) | (Fterm e) => ~ ((eval_expr s e) = 0%Z)
| (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2) | (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2)
| (Fnot f1) => ~ (eval_fmla s f1) | (Fnot f1) => ~ (eval_fmla s f1)
| (Fimplies f1 f2) => (eval_fmla s f1) -> (eval_fmla s f2)
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla := ...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla :=
| (Fterm e) => (Fterm (subst_expr e x t)) | (Fterm e) => (Fterm (subst_expr e x t))
| (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t)) | (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t))
| (Fnot f1) => (Fnot (subst f1 x t)) | (Fnot f1) => (Fnot (subst f1 x t))
| (Fimplies f1 f2) => (Fimplies (subst f1 x t) (subst f2 x t))
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr), Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr),
(eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f). (eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f).
Definition valid_fmla(p:fmla): Prop := forall (s:(map ident Z)), (eval_fmla s
p).
Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map
ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z), ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z),
(many_steps s i sqt Sskip n) -> (eval_fmla sqt q). (many_steps s i sqt Sskip n) -> (eval_fmla sqt q).
......
...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt) ...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt)
Inductive fmla := Inductive fmla :=
| Fterm : expr -> fmla | Fterm : expr -> fmla
| Fand : fmla -> fmla -> fmla | Fand : fmla -> fmla -> fmla
| Fnot : fmla -> fmla . | Fnot : fmla -> fmla
| Fimplies : fmla -> fmla -> fmla .
Set Implicit Arguments. Set Implicit Arguments.
Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := ...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
| (Fterm e) => ~ ((eval_expr s e) = 0%Z) | (Fterm e) => ~ ((eval_expr s e) = 0%Z)
| (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2) | (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2)
| (Fnot f1) => ~ (eval_fmla s f1) | (Fnot f1) => ~ (eval_fmla s f1)
| (Fimplies f1 f2) => (eval_fmla s f1) -> (eval_fmla s f2)
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla := ...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla :=
| (Fterm e) => (Fterm (subst_expr e x t)) | (Fterm e) => (Fterm (subst_expr e x t))
| (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t)) | (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t))
| (Fnot f1) => (Fnot (subst f1 x t)) | (Fnot f1) => (Fnot (subst f1 x t))
| (Fimplies f1 f2) => (Fimplies (subst f1 x t) (subst f2 x t))
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr), Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr),
(eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f). (eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f).
Definition valid_fmla(p:fmla): Prop := forall (s:(map ident Z)), (eval_fmla s
p).
Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map
ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z), ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z),
(many_steps s i sqt Sskip n) -> (eval_fmla sqt q). (many_steps s i sqt Sskip n) -> (eval_fmla sqt q).
......
...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt) ...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt)
Inductive fmla := Inductive fmla :=
| Fterm : expr -> fmla | Fterm : expr -> fmla
| Fand : fmla -> fmla -> fmla | Fand : fmla -> fmla -> fmla
| Fnot : fmla -> fmla . | Fnot : fmla -> fmla
| Fimplies : fmla -> fmla -> fmla .
Set Implicit Arguments. Set Implicit Arguments.
Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := ...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
| (Fterm e) => ~ ((eval_expr s e) = 0%Z) | (Fterm e) => ~ ((eval_expr s e) = 0%Z)
| (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2) | (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2)
| (Fnot f1) => ~ (eval_fmla s f1) | (Fnot f1) => ~ (eval_fmla s f1)
| (Fimplies f1 f2) => (eval_fmla s f1) -> (eval_fmla s f2)
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla := ...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla :=
| (Fterm e) => (Fterm (subst_expr e x t)) | (Fterm e) => (Fterm (subst_expr e x t))
| (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t)) | (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t))
| (Fnot f1) => (Fnot (subst f1 x t)) | (Fnot f1) => (Fnot (subst f1 x t))
| (Fimplies f1 f2) => (Fimplies (subst f1 x t) (subst f2 x t))
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr), Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr),
(eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f). (eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f).
Definition valid_fmla(p:fmla): Prop := forall (s:(map ident Z)), (eval_fmla s
p).
Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map
ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z), ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z),
(many_steps s i sqt Sskip n) -> (eval_fmla sqt q). (many_steps s i sqt Sskip n) -> (eval_fmla sqt q).
...@@ -178,7 +184,7 @@ intros p q r i1 i2 (H1,H2). ...@@ -178,7 +184,7 @@ intros p q r i1 i2 (H1,H2).
unfold valid_triple in *. unfold valid_triple in *.
intros s Hp s' n Hsteps. intros s Hp s' n Hsteps.
generalize (many_steps_seq _ _ _ _ _ Hsteps). generalize (many_steps_seq _ _ _ _ _ Hsteps).
intros (s2,(n1,(n2,(H3,(H4,H5))))). intros (s2&n1&n2&H3&H4&H5).
eapply H2; eauto. eapply H2; eauto.
Qed. Qed.
(* DO NOT EDIT BELOW *) (* DO NOT EDIT BELOW *)
......
...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt) ...@@ -118,7 +118,8 @@ Axiom many_steps_seq : forall (s1:(map ident Z)) (s3:(map ident Z)) (i1:stmt)
Inductive fmla := Inductive fmla :=
| Fterm : expr -> fmla | Fterm : expr -> fmla
| Fand : fmla -> fmla -> fmla | Fand : fmla -> fmla -> fmla
| Fnot : fmla -> fmla . | Fnot : fmla -> fmla
| Fimplies : fmla -> fmla -> fmla .
Set Implicit Arguments. Set Implicit Arguments.
Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop := ...@@ -126,6 +127,7 @@ Fixpoint eval_fmla(s:(map ident Z)) (f:fmla) {struct f}: Prop :=
| (Fterm e) => ~ ((eval_expr s e) = 0%Z) | (Fterm e) => ~ ((eval_expr s e) = 0%Z)
| (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2) | (Fand f1 f2) => (eval_fmla s f1) /\ (eval_fmla s f2)
| (Fnot f1) => ~ (eval_fmla s f1) | (Fnot f1) => ~ (eval_fmla s f1)
| (Fimplies f1 f2) => (eval_fmla s f1) -> (eval_fmla s f2)
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla := ...@@ -151,12 +153,16 @@ Fixpoint subst(f:fmla) (x:ident) (t:expr) {struct f}: fmla :=
| (Fterm e) => (Fterm (subst_expr e x t)) | (Fterm e) => (Fterm (subst_expr e x t))
| (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t)) | (Fand f1 f2) => (Fand (subst f1 x t) (subst f2 x t))
| (Fnot f1) => (Fnot (subst f1 x t)) | (Fnot f1) => (Fnot (subst f1 x t))
| (Fimplies f1 f2) => (Fimplies (subst f1 x t) (subst f2 x t))
end. end.
Unset Implicit Arguments. Unset Implicit Arguments.
Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr), Axiom eval_subst : forall (s:(map ident Z)) (f:fmla) (x:ident) (t:expr),
(eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f). (eval_fmla s (subst f x t)) <-> (eval_fmla (set s x (eval_expr s t)) f).
Definition valid_fmla(p:fmla): Prop := forall (s:(map ident Z)), (eval_fmla s
p).
Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map Definition valid_triple(p:fmla) (i:stmt) (q:fmla): Prop := forall (s:(map
ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z), ident Z)), (eval_fmla s p) -> forall (sqt:(map ident Z)) (n:Z),
(many_steps s i sqt Sskip n) -> (eval_fmla sqt q). (many_steps s i sqt Sskip n) -> (eval_fmla sqt q).
...@@ -200,7 +206,7 @@ inversion H1; subst; clear H1. ...@@ -200,7 +206,7 @@ inversion H1; subst; clear H1.
inversion H2; subst; clear H2. inversion H2; subst; clear H2.
(* case cond true *) (* case cond true *)
generalize (many_steps_seq _ _ _ _ _ H3). generalize (many_steps_seq _ _ _ _ _ H3).
intros (s3,(n1,(n2,(h1,(h2,h3))))). intros (s3&n1&n2&h1&h2&h3).
apply H with (y:=n2) (s:=s3); auto. apply H with (y:=n2) (s:=s3); auto.
generalize (steps_non_neg _ _ _ _ _ h1). generalize (steps_non_neg _ _ _ _ _ h1).
generalize (steps_non_neg _ _ _ _ _ h2). generalize (steps_non_neg _ _ _ _ _ h2).
......
...@@ -48,17 +48,17 @@ ...@@ -48,17 +48,17 @@
version="2.19"/> version="2.19"/>
<file <file
name="../imp_n.why" name="../imp_n.why"
verified="true" verified="false"
expanded="true"> expanded="true">
<theory <theory
name="Imp" name="Imp"
verified="true" verified="false"
expanded="true"> expanded="true">
<goal <goal
name="ident_eq_dec" name="ident_eq_dec"
sum="ca7c4648761db026ea93d61666f0b79a" sum="ca7c4648761db026ea93d61666f0b79a"
proved="true" proved="true"
expanded="false" expanded="true"
shape="ainfix =V0V1NOainfix =V0V1F"> shape="ainfix =V0V1NOainfix =V0V1F">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
name="check_skip" name="check_skip"
sum="a28ed21b2b531fe3e8a3933e02f27497" sum="a28ed21b2b531fe3e8a3933e02f27497"
proved="true" proved="true"
expanded="false" expanded="true"
shape="ainfix =V0aSskipNOainfix =V0aSskipF"> shape="ainfix =V0aSskipNOainfix =V0aSskipF">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
name="Test13" name="Test13"
sum="bc53c41524b84304eb79b4e36fef8af8" sum="bc53c41524b84304eb79b4e36fef8af8"
proved="true" proved="true"
expanded="false" expanded="true"
shape="Laconstc0ainfix =aeval_exprV0aEconstc13c13"> shape="Laconstc0ainfix =aeval_exprV0aEconstc13c13">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
name="Test42" name="Test42"
sum="78671d09729d8ffd84136c2dcf7eb74b" sum="78671d09729d8ffd84136c2dcf7eb74b"
proved="true" proved="true"
expanded="false" expanded="true"
shape="Lamk_identc0Lasetaconstc0V0c42ainfix =aeval_exprV1aEvarV0c42"> shape="Lamk_identc0Lasetaconstc0V0c42ainfix =aeval_exprV1aEvarV0c42">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
name="Test55" name="Test55"
sum="9f1ffc89f69ccb03e44edbf6adfebb8d" sum="9f1ffc89f69ccb03e44edbf6adfebb8d"
proved="true" proved="true"
expanded="false" expanded="true"
shape="Lamk_identc0Lasetaconstc0V0c42ainfix =aeval_exprV1aEbinaEvarV0aOplusaEconstc13c55"> shape="Lamk_identc0Lasetaconstc0V0c42ainfix =aeval_exprV1aEbinaEvarV0aOplusaEconstc13c55">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
name="Ass42" name="Ass42"
sum="456c846b124e10fccdeb72291a3819b0" sum="456c846b124e10fccdeb72291a3819b0"
proved="true" proved="true"
expanded="false" expanded="true"
shape="Lamk_identc0Laconstc0ainfix =agetV2V0c42Iaone_stepV1aSassignV0aEconstc42V2aSskipF"> shape="Lamk_identc0Laconstc0ainfix =agetV2V0c42Iaone_stepV1aSassignV0aEconstc42V2aSskipF">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
name="If42" name="If42"
sum="9c97951c8cf8d86219396907bf0260eb" sum="9c97951c8cf8d86219396907bf0260eb"
proved="true" proved="true"
expanded="false" expanded="true"
shape="Lamk_identc0Laconstc0ainfix =agetV3V0c42Iaone_stepV2V4V3aSskipIaone_stepV1aSifaEvarV0aSassignV0aEconstc13aSassignV0aEconstc42V2V4F"> shape="Lamk_identc0Laconstc0ainfix =agetV3V0c42Iaone_stepV2V4V3aSskipIaone_stepV1aSifaEvarV0aSassignV0aEconstc13aSassignV0aEconstc42V2V4F">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -156,41 +156,62 @@ ...@@ -156,41 +156,62 @@
name="progress" name="progress"
sum="3e029691d2ae6f6e5afe69a1860de120" sum="3e029691d2ae6f6e5afe69a1860de120"
proved="true" proved="true"
expanded="false" expanded="true"
shape="aone_stepV0V1V2V3EIainfix =V1aSskipNF"> shape="aone_stepV0V1V2V3EIainfix =V1aSskipNF">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_progress_1.v" edited="imp_n_Imp_progress_1.v"
obsolete="false"> obsolete="false">
<result status="valid" time="0.45"/> <result status="valid" time="0.54"/>
</proof>
<proof
prover="eprover"
timelimit="10"
edited=""
obsolete="false">
<result status="timeout" time="10.01"/>
</proof>
<proof
prover="vampire"
timelimit="10"
edited=""
obsolete="false">
<result status="timeout" time="6.55"/>
</proof>
<proof
prover="spass"
timelimit="10"
edited=""
obsolete="false">
<result status="timeout" time="9.51"/>
</proof> </proof>
</goal> </goal>
<goal <goal
name="steps_non_neg" name="steps_non_neg"
sum="7fe79f6298fbe9fbaa31741ffa430e03" sum="7fe79f6298fbe9fbaa31741ffa430e03"
proved="true" proved="false"
expanded="false" expanded="true"
shape="ainfix >=V4c0Iamany_stepsV0V2V1V3V4F"> shape="ainfix >=V4c0Iamany_stepsV0V2V1V3V4F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_steps_non_neg_1.v" edited="imp_n_Imp_steps_non_neg_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.46"/> <result status="valid" time="0.46"/>
</proof> </proof>
</goal> </goal>
<goal <goal
name="many_steps_seq" name="many_steps_seq"
sum="c4867410343f6c684f9ca00c1536720a" sum="c4867410343f6c684f9ca00c1536720a"
proved="true" proved="false"
expanded="false" expanded="true"
shape="ainfix =V4ainfix +ainfix +c1V6V7Aamany_stepsV5V3V1aSskipV7Aamany_stepsV0V2V5aSskipV6EIamany_stepsV0aSseqV2V3V1aSskipV4F"> shape="ainfix =V4ainfix +ainfix +c1V6V7Aamany_stepsV5V3V1aSskipV7Aamany_stepsV0V2V5aSskipV6EIamany_stepsV0aSseqV2V3V1aSskipV4F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_many_steps_seq_1.v" edited="imp_n_Imp_many_steps_seq_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.54"/> <result status="valid" time="0.54"/>
</proof> </proof>
</goal> </goal>
...@@ -198,7 +219,7 @@ ...@@ -198,7 +219,7 @@
name="eval_subst_expr" name="eval_subst_expr"
sum="9528a4415f2f99046bde6107851e9279" sum="9528a4415f2f99046bde6107851e9279"
proved="true" proved="true"
expanded="false" expanded="true"
shape="ainfix =aeval_exprV0asubst_exprV1V2V3aeval_exprasetV0V2aeval_exprV0V3V1F"> shape="ainfix =aeval_exprV0asubst_exprV1V2V3aeval_exprasetV0V2aeval_exprV0V3V1F">
<proof <proof
prover="coq" prover="coq"
...@@ -212,7 +233,7 @@ ...@@ -212,7 +233,7 @@
name="eval_subst" name="eval_subst"
sum="f9958c4b6b55b1609f43dd2ad3432473" sum="f9958c4b6b55b1609f43dd2ad3432473"
proved="true" proved="true"
expanded="false" expanded="true"
shape="aeval_fmlaasetV0V2aeval_exprV0V3V1qaeval_fmlaV0asubstV1V2V3F"> shape="aeval_fmlaasetV0V2aeval_exprV0V3V1qaeval_fmlaV0asubstV1V2V3F">
<proof <proof
prover="coq" prover="coq"
...@@ -226,7 +247,7 @@ ...@@ -226,7 +247,7 @@
name="skip_rule" name="skip_rule"
sum="dfc9be1a6c7c1951f0739b5eb00818fa" sum="dfc9be1a6c7c1951f0739b5eb00818fa"
proved="true" proved="true"
expanded="false" expanded="true"
shape="avalid_tripleV0aSskipV0F"> shape="avalid_tripleV0aSskipV0F">
<proof <proof
prover="alt-ergo" prover="alt-ergo"
...@@ -239,56 +260,56 @@ ...@@ -239,56 +260,56 @@
<goal <goal
name="assign_rule" name="assign_rule"
sum="2ce35dd2e431c206c4ef4d4353dd9c47" sum="2ce35dd2e431c206c4ef4d4353dd9c47"
proved="true" proved="false"
expanded="false" expanded="true"
shape="avalid_tripleasubstV0V1V2aSassignV1V2V0F"> shape="avalid_tripleasubstV0V1V2aSassignV1V2V0F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_assign_rule_1.v" edited="imp_n_Imp_assign_rule_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.72"/> <result status="valid" time="0.72"/>
</proof> </proof>
</goal> </goal>
<goal <goal
name="seq_rule" name="seq_rule"
sum="3da8614c2f6127af09be97a426dc327e" sum="3da8614c2f6127af09be97a426dc327e"
proved="true" proved="false"
expanded="false" expanded="true"
shape="avalid_tripleV0aSseqV3V4V1Iavalid_tripleV2V4V1Aavalid_tripleV0V3V2F"> shape="avalid_tripleV0aSseqV3V4V1Iavalid_tripleV2V4V1Aavalid_tripleV0V3V2F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_seq_rule_1.v" edited="imp_n_Imp_seq_rule_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.52"/> <result status="valid" time="0.52"/>
</proof> </proof>
</goal> </goal>
<goal <goal
name="if_rule" name="if_rule"
sum="5e738541b92efb7be1706db09a761442" sum="5e738541b92efb7be1706db09a761442"
proved="true" proved="false"
expanded="false" expanded="true"
shape="avalid_tripleV1aSifV0V3V4V2Iavalid_tripleaFandV1aFnotaFtermV0V4V2Aavalid_tripleaFandV1aFtermV0V3V2F"> shape="avalid_tripleV1aSifV0V3V4V2Iavalid_tripleaFandV1aFnotaFtermV0V4V2Aavalid_tripleaFandV1aFtermV0V3V2F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_if_rule_1.v" edited="imp_n_Imp_if_rule_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.68"/> <result status="valid" time="0.68"/>
</proof> </proof>
</goal> </goal>
<goal <goal
name="while_rule" name="while_rule"
sum="17f0b6240f5cfd179c6cea9bfc294a9d" sum="17f0b6240f5cfd179c6cea9bfc294a9d"
proved="true" proved="false"
expanded="false" expanded="true"
shape="avalid_tripleV1aSwhileV0V2aFandaFnotaFtermV0V1Iavalid_tripleaFandaFtermV0V1V2V1F"> shape="avalid_tripleV1aSwhileV0V2aFandaFnotaFtermV0V1Iavalid_tripleaFandaFtermV0V1V2V1F">
<proof <proof
prover="coq" prover="coq"
timelimit="3" timelimit="3"
edited="imp_n_Imp_while_rule_1.v" edited="imp_n_Imp_while_rule_1.v"
obsolete="false"> obsolete="true">
<result status="valid" time="0.57"/> <result status="valid" time="0.57"/>
</proof> </proof>
</goal> </goal>
...@@ -296,7 +317,7 @@ ...@@ -296,7 +317,7 @@
name="consequence_rule" name="consequence_rule"
sum="c6ee564de35ed1dc6ad77dbe593817ba" sum="c6ee564de35ed1dc6ad77dbe593817ba"
proved="true" proved="true"
expanded="false" expanded="true"
shape="avalid_tripleV1V4V3Iavalid_fmlaaFimpliesV2V3Iavalid_tripleV0V4V2Iavalid_fmlaaFimpliesV1V0F"> shape="avalid_tripleV1V4V3Iavalid_fmlaaFimpliesV2V3Iavalid_tripleV0V4V2Iavalid_fmlaaFimpliesV1V0F">
<proof <proof
prover="cvc3" prover="cvc3"
......
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