diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-04-10 18:24:45 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-04-10 19:15:42 +0200 |
commit | 7913b03ba5072efeb9f6ef009ce27cec8ff19cac (patch) | |
tree | bd6b9cdf466c6a4c7973b2209d0c292e05bd854d /engine/termops.ml | |
parent | 834530272b9006e28a4b7ba35b1f8f861f51e7ce (diff) |
Replace uses of Termops.dependent by more specific functions.
This is more efficient in general, because Termops.dependent doesn't take
advantage of the knowledge of its pattern argument.
Diffstat (limited to 'engine/termops.ml')
-rw-r--r-- | engine/termops.ml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/engine/termops.ml b/engine/termops.ml index b7531f6fc..e9d17e3c5 100644 --- a/engine/termops.ml +++ b/engine/termops.ml @@ -851,6 +851,13 @@ let occur_meta_or_existential sigma c = | _ -> EConstr.iter sigma occrec c in try occrec c; false with Occur -> true +let occur_metavariable sigma m c = + let rec occrec c = match EConstr.kind sigma c with + | Meta m' -> if Int.equal m m' then raise Occur + | _ -> EConstr.iter sigma occrec c + in + try occrec c; false with Occur -> true + let occur_evar sigma n c = let rec occur_rec c = match EConstr.kind sigma c with | Evar (sp,_) when Evar.equal sp n -> raise Occur |