Commit 24e890cc authored by Joachim Bard's avatar Joachim Bard

very little work on IEEE_connection

parent 82ac18d4
......@@ -4,7 +4,7 @@ From Coq
From Flover
Require Import Expressions Infra.RationalSimps TypeValidator IntervalValidation
ErrorAnalysis CertificateChecker FPRangeValidator RoundoffErrorValidator
ErrorAnalysis CertificateChecker SubdivsChecker FPRangeValidator RoundoffErrorValidator
Environments Infra.RealRationalProps Infra.Ltacs.
From Flocq
......@@ -1218,7 +1218,7 @@ Proof.
Qed.
*)
Theorem IEEE_connection_expr e A P qMap E1 E2 defVars DeltaMap:
Theorem IEEE_connection_expr e A P qMap subdivs E1 E2 defVars DeltaMap:
(forall (e' : expr R) (m' : mType),
exists d : R, DeltaMap e' m' = Some d /\ (Rabs d <= mTypeToR m')%R) ->
is64BitEval (B2Qexpr e) ->
......@@ -1226,8 +1226,9 @@ Theorem IEEE_connection_expr e A P qMap E1 E2 defVars DeltaMap:
noDowncast (B2Qexpr e) ->
eval_expr_valid e E2 ->
unsat_queries qMap ->
(forall qMap, In qMap (queriesInSubdivs subdivs) -> unsat_queries qMap) ->
eval_precond E1 P ->
CertificateChecker (B2Qexpr e) A P qMap defVars = true ->
CertificateChecker (B2Qexpr e) A P qMap subdivs defVars = true ->
exists Gamma, (* m, currently = M64 *)
approxEnv E1 Gamma A (freeVars (B2Qexpr e)) (NatSet.empty) (toREnv E2) ->
exists iv err vR vF,
......@@ -1237,7 +1238,7 @@ Theorem IEEE_connection_expr e A P qMap E1 E2 defVars DeltaMap:
eval_expr (toREnv E2) Gamma DeltaMap (toRExp (B2Qexpr e)) (Q2R (B2Q vF)) M64 /\
(Rabs (vR - Q2R (B2Q vF )) <= Q2R err)%R.
Proof.
intros * deltas_matched is64eval is64bitenv no_cast eval_valid unsat_qs
intros * deltas_matched is64eval is64bitenv no_cast eval_valid unsat_qs unsat_qs_subdiv
P_valid certificate_valid.
unfold CertificateChecker in certificate_valid.
destruct (getValidMap defVars (B2Qexpr e) (FloverMap.empty mType)) eqn:?; try congruence.
......@@ -1250,7 +1251,7 @@ Proof.
{ eapply getValidMap_top_correct; eauto.
intros. cbn in *; congruence. }
(* rewrite <- andb_lazy_alt in certificate_valid. *)
andb_to_prop certificate_valid.
(* andb_to_prop certificate_valid. *)
pose proof (NatSetProps.empty_union_2 (freeVars e) NatSet.empty_spec) as union_empty.
hnf in union_empty.
assert (dVars_range_valid NatSet.empty E1 A).
......
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