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
Rodolphe Lepigre
Iris
Commits
dcd28632
Commit
dcd28632
authored
Jan 09, 2016
by
Ralf Jung
Browse files
optimize the step_by_value proof: Determine which case we are in, and call the appropriate tactic
parent
5f8cdc5f
Changes
1
Show whitespace changes
Inline
Sidebyside
channel/heap_lang.v
View file @
dcd28632
...
...
@@ 320,13 +320,24 @@ Proof.
exists
K''
;
by
eauto
using
f_equal
,
f_equal2
,
f_equal3
,
v2e_inj
.
intros
Hfill
Hred
Hnval
.
revert
K'
Hfill
;
induction
K
=>
K'
/=
Hfill
;
Time
revert
K'
Hfill
;
induction
K
=>
K'
/=
Hfill
;
first
(
now
eexists
;
reflexivity
)
;
destruct
K'
;
simpl
;
try
discriminate
Hfill
;
try
first
[
bad_red
Hfill
e'
Hred

bad_fill
Hfill

good
Hfill
IHK
].
(
destruct
K'
;
simpl
;
(* The first case is: K' is EmpyCtx. *)
first
(
by
bad_red
Hfill
e'
Hred
)
;
(* Many of the other cases result in contradicting equalities. *)
try
discriminate
Hfill
;
(* The remaining cases are "compatible" contexts  that result in the same head symbol of the expression.
Test whether the context als has the same head, and use the appropriate tactic. *)
match
goal
with

[

exists
x
,
?C
_
=
?C
_
]
=>
by
good
Hfill
IHK

[

exists
x
,
?C
_
_
=
?C
_
_
]
=>
by
good
Hfill
IHK

[

exists
x
,
?C
_
_
_
=
?C
_
_
_
]
=>
by
good
Hfill
IHK

[

exists
x
,
?C
_
_
_
_
=
?C
_
_
_
_
]
=>
by
good
Hfill
IHK

[

exists
x
,
?C
_
_
_
_
_
=
?C
_
_
_
_
_
]
=>
by
good
Hfill
IHK

[

exists
x
,
?C
_
_
_
_
_
_
=
?C
_
_
_
_
_
_
]
=>
by
good
Hfill
IHK

_
=>
by
bad_fill
Hfill
end
).
Qed
.
End
step_by_value
.
...
...
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