From 3dd52dacc7846b85a11f83c398945c00bb65bad2 Mon Sep 17 00:00:00 2001 From: mohring Date: Tue, 26 Mar 2002 16:29:59 +0000 Subject: Prise en compte des dependances dans la tactique Case git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2567 85f007b7-540e-0410-9357-904b9bb8a0f7 --- pretyping/termops.ml | 6 ++++++ pretyping/termops.mli | 1 + 2 files changed, 7 insertions(+) (limited to 'pretyping') diff --git a/pretyping/termops.ml b/pretyping/termops.ml index fec2a92549..7f77bcdba7 100644 --- a/pretyping/termops.ml +++ b/pretyping/termops.ml @@ -313,6 +313,12 @@ let occur_var_in_decl env hyp (_,c,typ) = occur_var env hyp (body_of_type typ) || occur_var env hyp body +(* Tests that t is a subterm of c *) +let occur_term t c = + let eq_constr_fail c = if eq_constr t c then raise Occur + in let rec occur_rec c = eq_constr_fail c; iter_constr occur_rec c + in try occur_rec c; false with Occur -> true + (* returns the list of free debruijn indices in a term *) let free_rels m = diff --git a/pretyping/termops.mli b/pretyping/termops.mli index c45b1b016c..ebcd93a348 100644 --- a/pretyping/termops.mli +++ b/pretyping/termops.mli @@ -67,6 +67,7 @@ val occur_var : env -> identifier -> types -> bool val occur_var_in_decl : env -> identifier -> 'a * types option * types -> bool +val occur_term : constr -> constr -> bool val free_rels : constr -> Intset.t (* Substitution of metavariables *) -- cgit v1.2.3