aboutsummaryrefslogtreecommitdiff
path: root/library/impargs.ml
diff options
context:
space:
mode:
authorherbelin2001-01-27 17:06:48 +0000
committerherbelin2001-01-27 17:06:48 +0000
commit0dfbabcee3629056ebfb0a63dcee60cd601cfa21 (patch)
treeeab749510f99d235ccfd460f3ee0a3b7c03e10fc /library/impargs.ml
parente5659553469032c61b076645b98f29f8d4e70d3d (diff)
Ré-introduction des implicites à la volée dans la définition des inductifs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1279 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/impargs.ml')
-rw-r--r--library/impargs.ml10
1 files changed, 6 insertions, 4 deletions
diff --git a/library/impargs.ml b/library/impargs.ml
index 3232c48486..2644944ac3 100644
--- a/library/impargs.ml
+++ b/library/impargs.ml
@@ -32,7 +32,7 @@ let add_free_rels_until bound m acc =
(* calcule la liste des arguments implicites *)
-let poly_args env sigma t =
+let compute_implicits env sigma t =
let rec aux env n t =
match kind_of_term (whd_betadeltaiota env sigma t) with
| IsProd (x,a,b) ->
@@ -45,9 +45,11 @@ let poly_args env sigma t =
Intset.elements (aux (push_rel_assum (x,a) env) 1 b)
| _ -> []
+type implicits_list = int list
+
type implicits =
- | Impl_auto of int list
- | Impl_manual of int list
+ | Impl_auto of implicits_list
+ | Impl_manual of implicits_list
| No_impl
let implicit_args = ref false
@@ -73,7 +75,7 @@ let using_implicits = function
| No_impl -> with_implicits false
| _ -> with_implicits true
-let auto_implicits env ty = Impl_auto (poly_args env Evd.empty ty)
+let auto_implicits env ty = Impl_auto (compute_implicits env Evd.empty ty)
let list_of_implicits = function
| Impl_auto l -> l