diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/term.ml | 7 | ||||
| -rw-r--r-- | kernel/term.mli | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/kernel/term.ml b/kernel/term.ml index af0f2e4b8d..b392d54525 100644 --- a/kernel/term.ml +++ b/kernel/term.ml @@ -659,17 +659,16 @@ exception LocalOccur (* (closedn n M) raises FreeVar if a variable of height greater than n occurs in M, returns () otherwise *) -let closedn = +let closedn n c = let rec closed_rec n c = match kind_of_term c with | Rel m -> if m>n then raise LocalOccur | _ -> iter_constr_with_binders succ closed_rec n c in - closed_rec + try closed_rec n c; true with LocalOccur -> false (* [closed0 M] is true iff [M] is a (deBruijn) closed term *) -let closed0 term = - try closedn 0 term; true with LocalOccur -> false +let closed0 = closedn 0 (* (noccurn n M) returns true iff (Rel n) does NOT occur in term M *) diff --git a/kernel/term.mli b/kernel/term.mli index 78802579a3..addcdce9a0 100644 --- a/kernel/term.mli +++ b/kernel/term.mli @@ -426,6 +426,9 @@ val under_outer_cast : (constr -> constr) -> constr -> constr (*s Occur checks *) +(* [closedn n M] is true iff [M] is a (deBruijn) closed term under n binders *) +val closedn : int -> constr -> bool + (* [closed0 M] is true iff [M] is a (deBruijn) closed term *) val closed0 : constr -> bool |
