diff options
author | Jason Gross <jgross@mit.edu> | 2016-03-08 14:29:57 -0500 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2016-03-08 14:29:57 -0500 |
commit | 406085b41e0b4d8cfc314da7abd3af4ac29d765b (patch) | |
tree | 455bfff6b105fb1ab16004b88b4c1e5518f7aab8 /coqprime | |
parent | 4bdd8f75a50ba4aad8dba5e91dbf6563dcd858cb (diff) |
Use [rewrite] rather than [change] to speed up Qed
[Opaque] tells kernel unification to defer unfolding a constant as long as
possible. This is not a problem for [change], when the functions are small and
directly convertible. It's disastrous for [Qed]/[Defined], which (if I
understand correctly) try to unify [Opaquemul x' y'] with [mul x y] by fully
unfolding [mul] and [x] and [y] before trying to unfold [Opaquemul]; when [x]
and [y] are large, this takes a very long time.
Rewrite avoids this by telling Coq *how* to unify [Opaquemul x' y'] with [mul x
y] (namely, by unifying [Opaquemul] with [mul], and then [x] with [x'] and [y]
with [y']).
Diffstat (limited to 'coqprime')
0 files changed, 0 insertions, 0 deletions