From 63c3abfcb53bbe3dc7f601c6595c05d56f498299 Mon Sep 17 00:00:00 2001 From: herbelin Date: Tue, 12 Feb 2002 16:26:59 +0000 Subject: Raffinement library_part git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2472 85f007b7-540e-0410-9357-904b9bb8a0f7 --- library/declare.ml | 16 ++++++++++++++-- library/declare.mli | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'library') diff --git a/library/declare.ml b/library/declare.ml index 5c2ab7182..9741ca9fa 100644 --- a/library/declare.ml +++ b/library/declare.ml @@ -386,6 +386,18 @@ let strength_of_global = function | VarRef id -> variable_strength id | IndRef _ | ConstructRef _ -> NeverDischarge -let library_part sp = +let library_part ref = + let sp = Nametab.sp_of_global (Global.env ()) ref in let dir,_ = repr_path sp in - extract_dirpath_prefix (depth_of_strength (constant_strength sp)) dir + match strength_of_global ref with + | DischargeAt (dp,n) -> extract_dirpath_prefix n dp + | NeverDischarge -> + if is_dirpath_prefix_of dir (Lib.cwd ()) then + (* Theorem/Lemma not yet (fully) discharged *) + extract_dirpath_prefix (Lib.sections_depth ()) (Lib.cwd ()) + else + (* Theorem/Lemma outside its outer section of definition *) + dir + | NotDeclare -> assert false + + diff --git a/library/declare.mli b/library/declare.mli index fd0ec9ff7..c914245ff 100644 --- a/library/declare.mli +++ b/library/declare.mli @@ -101,4 +101,4 @@ val is_global : identifier -> bool val strength_of_global : global_reference -> strength -val library_part : section_path -> dir_path +val library_part : global_reference -> dir_path -- cgit v1.2.3