Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
AVA
FloVer
Commits
d9796e96
Commit
d9796e96
authored
Feb 24, 2017
by
Heiko Becker
Browse files
Fix minor issue in soundness proof
parent
0c91f793
Changes
1
Hide whitespace changes
Inline
Side-by-side
coq/CertificateChecker.v
View file @
d9796e96
...
...
@@ -48,9 +48,13 @@ Proof.
destruct
iv
as
[
ivlo
ivhi
].
rewrite
absenv_eq
;
simpl
.
eapply
validErrorbound_sound
;
eauto
.
intros
v
v_in_empty
.
rewrite
NatSet
.
mem_spec
in
v_in_empty
.
inversion
v_in_empty
.
-
hnf
.
intros
a
in_diff
.
rewrite
NatSet
.
diff_spec
in
in_diff
.
apply
fVars_subset
.
destruct
in_diff
;
auto
.
-
intros
v
v_in_empty
.
rewrite
NatSet
.
mem_spec
in
v_in_empty
.
inversion
v_in_empty
.
Qed
.
Definition
CertificateCheckerCmd
(
f
:
cmd
Q
)
(
absenv
:
analysisResult
)
(
P
:
precond
)
:=
...
...
@@ -64,6 +68,7 @@ Theorem Certificate_checking_cmds_is_sound (f:cmd Q) (absenv:analysisResult) P:
(
forall
v
,
NatSet
.
mem
v
fVars
=
true
->
exists
vR
,
E1
v
=
Some
vR
/
\
(
Q2R
(
fst
(
P
v
))
<=
vR
<=
Q2R
(
snd
(
P
v
)))
%
R
)
->
NatSet
.
Subset
(
Commands
.
freeVars
f
)
fVars
->
ssaPrg
f
fVars
outVars
->
bstep
(
toRCmd
f
)
E1
0
vR
->
bstep
(
toRCmd
f
)
E2
(
Q2R
machineEpsilon
)
vF
->
...
...
@@ -74,7 +79,7 @@ Theorem Certificate_checking_cmds_is_sound (f:cmd Q) (absenv:analysisResult) P:
validator
and
the
error
bound
validator
.
**
)
Proof
.
intros
E1
E2
outVars
vR
vF
fVars
approxE1E2
P_valid
ssa_f
eval_real
eval_float
intros
E1
E2
outVars
vR
vF
fVars
approxE1E2
P_valid
fVars_subset
ssa_f
eval_real
eval_float
certificate_valid
.
unfold
CertificateCheckerCmd
in
certificate_valid
.
rewrite
<-
andb_lazy_alt
in
certificate_valid
.
...
...
@@ -92,11 +97,10 @@ Proof.
destruct
in_union
as
[
in_fVars
|
in_empty
];
try
auto
.
inversion
in_empty
.
+
rewrite
NatSet
.
union_spec
;
auto
.
-
hnf
.
intros
a
in_set
.
rewrite
NatSet
.
diff_spec
in
in_set
.
destruct
in_set
as
[
in_set
not_in_empty
].
eapply
ssa_subset_freeVars
;
eauto
.
-
hnf
;
intros
a
in_diff
.
rewrite
NatSet
.
diff_spec
in
in_diff
.
destruct
in_diff
.
apply
fVars_subset
;
auto
.
-
intros
v
v_in_empty
.
rewrite
NatSet
.
mem_spec
in
v_in_empty
.
inversion
v_in_empty
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment