diff options
| author | mohring | 2002-03-26 16:29:59 +0000 |
|---|---|---|
| committer | mohring | 2002-03-26 16:29:59 +0000 |
| commit | 3dd52dacc7846b85a11f83c398945c00bb65bad2 (patch) | |
| tree | 4f5f004e7f617b1bfe8aab8f9eebb0508954da26 /pretyping | |
| parent | 3bd24bddb74d7a351cbfc8cba7a5e3735f478832 (diff) | |
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
Diffstat (limited to 'pretyping')
| -rw-r--r-- | pretyping/termops.ml | 6 | ||||
| -rw-r--r-- | pretyping/termops.mli | 1 |
2 files changed, 7 insertions, 0 deletions
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 *) |
