diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-09-09 15:01:54 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-09-09 15:01:54 +0000 |
commit | 1e4c9c6dd74162c5fd75de59f1cab117e458e8de (patch) | |
tree | 77dc73065ba7879147af5372482a745f7ce07cae /kernel | |
parent | 984e59594c751b842a26d251ed312819e6e9641c (diff) |
Mécanisme pour faire remonter les contraintes de typage sur les variables de section au niveau du discharge, sans avoir à garder tout l'environnement de la section
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1934 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cooking.ml | 3 | ||||
-rw-r--r-- | kernel/cooking.mli | 3 | ||||
-rw-r--r-- | kernel/safe_typing.mli | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/kernel/cooking.ml b/kernel/cooking.ml index 482be2fb9..e8ed6ca32 100644 --- a/kernel/cooking.ml +++ b/kernel/cooking.ml @@ -161,4 +161,5 @@ let cook_constant env r = let body = option_app (expmod_constr env r.d_modlist) cb.const_body in let hyps = List.map (fun (sp,c,t) -> (basename sp,c,t)) cb.const_hyps in let hyps = map_named_context (expmod_constr env r.d_modlist) hyps in - abstract_constant r.d_abstract hyps (body,typ) + let body,typ = abstract_constant r.d_abstract hyps (body,typ) in + (body, typ, cb.const_constraints) diff --git a/kernel/cooking.mli b/kernel/cooking.mli index d9b564835..db2ba1551 100644 --- a/kernel/cooking.mli +++ b/kernel/cooking.mli @@ -12,6 +12,7 @@ open Names open Term open Declarations open Environ +open Univ (*s Cooking the constants. *) @@ -32,7 +33,7 @@ type recipe = { d_abstract : identifier list; d_modlist : work_list } -val cook_constant : env -> recipe -> constr option * constr +val cook_constant : env -> recipe -> constr option * constr * constraints (*s Utility functions used in module [Discharge]. *) diff --git a/kernel/safe_typing.mli b/kernel/safe_typing.mli index 102fbb228..ff1a8131d 100644 --- a/kernel/safe_typing.mli +++ b/kernel/safe_typing.mli @@ -38,6 +38,13 @@ val push_named_assum : val push_named_def : identifier * constr -> safe_environment -> safe_environment +val check_and_push_named_assum : + identifier * constr -> safe_environment -> + (constr option * types * constraints) * safe_environment +val check_and_push_named_def : + identifier * constr -> safe_environment -> + (constr option * types * constraints) * safe_environment + type local_names = (identifier * variable_path) list val add_parameter : |