diff options
| author | Pierre-Marie Pédrot | 2015-11-17 12:39:35 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2015-11-17 14:25:12 +0100 |
| commit | af399d81b0505d1f0be8e73cf45044266d5749e5 (patch) | |
| tree | 1723eebf74e332635ad08a1d5dc073363f051bcd /tactics | |
| parent | 8e482fc932fa2b1893025d914d42dd17881c2fac (diff) | |
Performance fix for destruct.
The clenv_fchain function was needlessly merging universes coming from
two evarmaps even though one was an extension of the other. A flag was
added so that the tactic just retrieves the newer universes.
Diffstat (limited to 'tactics')
| -rw-r--r-- | tactics/tactics.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml index 0a013e95f7..0551787e3a 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -1319,7 +1319,9 @@ let simplest_elim c = default_elim false None (c,NoBindings) *) let clenv_fchain_in id ?(flags=elim_flags ()) mv elimclause hypclause = - try clenv_fchain ~flags mv elimclause hypclause + (** The evarmap of elimclause is assumed to be an extension of hypclause, so + we do not need to merge the universes coming from hypclause. *) + try clenv_fchain ~with_univs:false ~flags mv elimclause hypclause with PretypeError (env,evd,NoOccurrenceFound (op,_)) -> (* Set the hypothesis name in the message *) raise (PretypeError (env,evd,NoOccurrenceFound (op,Some id))) |
