Commit 56ddcb3a authored by ='s avatar =

IntervalValidation and ssaPrg are now ported

parent 86eec2be
......@@ -97,8 +97,8 @@ Proof.
apply andb_prop_elim in approx_true.
destruct approx_true; auto.
- intros approx_true v0 v_in_fV; simpl in *.
inversion v_in_fV.
- intros approx_unary_true v v_in_fV; simpl in *.
inversion v_in_fV.
- intros approx_unary_true v v_in_fV; simpl in *.
apply Is_true_eq_left in approx_unary_true.
simpl in *.
destruct (absenv (Unop u f)); destruct (absenv f); simpl in *.
......@@ -170,7 +170,7 @@ Proof.
apply le_neq_bool_to_lt_prop; auto.
Qed.
Theorem validIntervalbounds_sound (f:exp Q) (absenv:analysisResult) (P:precond) fVars dVars (E:env) defVars:
forall vR,
validIntervalbounds f absenv P dVars = true ->
......@@ -351,7 +351,7 @@ Proof.
destruct valid_rec as [valid_e1 valid_e2].
apply Is_true_eq_true in valid_e1; apply Is_true_eq_true in valid_e2.
destruct m1; destruct m2; cbv in H2; inversion H2.
specialize (IHf1 v1 valid_e1 valid_definedVars).
specialize (IHf1 v1 valid_e1 valid_definedVars).
specialize (IHf2 v2 valid_e2 valid_definedVars).
rewrite absenv_f1 in IHf1.
rewrite absenv_f2 in IHf2.
......
......@@ -173,6 +173,11 @@ val meps_0_deterministic = store_thm("meps_0_deterministic",
\\ fs [])
>- (rw [] \\ rpt (qpat_x_assum `eval_exp _ _ (toREval _) _ _` (fn thm => ASSUME_TAC (ONCE_REWRITE_RULE [toREval_def] thm))) \\ fs [] \\ res_tac));
val toREvalVars_def = Define `
toREvalVars (d:num -> mType option) (n:num) : mType option =
case d n of
| SOME m => SOME M0
| NONE => NONE`;
(**
Helping lemma. Needed in soundness proof.
......
This diff is collapsed.
This diff is collapsed.
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