diff options
author | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-02-26 18:52:05 +0000 |
---|---|---|
committer | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-02-26 18:52:05 +0000 |
commit | 7dd28b4772251af6ae3641ec63a8251153915e21 (patch) | |
tree | d11220b4ff19473215d77e9738d2a4eb58bf681d /kernel | |
parent | 2b09b02c136d3d68fa19e4493d5b5ad28c4f16db (diff) |
Names: shortcuts for building {kn, constant, mind} with empty sections
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16249 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/mod_subst.ml | 12 | ||||
-rw-r--r-- | kernel/modops.ml | 12 | ||||
-rw-r--r-- | kernel/names.ml | 8 | ||||
-rw-r--r-- | kernel/names.mli | 17 | ||||
-rw-r--r-- | kernel/nativecode.ml | 2 | ||||
-rw-r--r-- | kernel/safe_typing.ml | 6 | ||||
-rw-r--r-- | kernel/subtyping.ml | 8 |
7 files changed, 36 insertions, 29 deletions
diff --git a/kernel/mod_subst.ml b/kernel/mod_subst.ml index 6d558bf3c..731475fb4 100644 --- a/kernel/mod_subst.ml +++ b/kernel/mod_subst.ml @@ -190,16 +190,16 @@ let kn_of_deltas resolve1 resolve2 kn = if kn' == kn then kn_of_delta resolve2 kn else kn' let constant_of_delta_kn resolve kn = - Constant.make2 kn (kn_of_delta resolve kn) + Constant.make kn (kn_of_delta resolve kn) let constant_of_deltas_kn resolve1 resolve2 kn = - Constant.make2 kn (kn_of_deltas resolve1 resolve2 kn) + Constant.make kn (kn_of_deltas resolve1 resolve2 kn) let mind_of_delta_kn resolve kn = - MutInd.make2 kn (kn_of_delta resolve kn) + MutInd.make kn (kn_of_delta resolve kn) let mind_of_deltas_kn resolve1 resolve2 kn = - MutInd.make2 kn (kn_of_deltas resolve1 resolve2 kn) + MutInd.make kn (kn_of_deltas resolve1 resolve2 kn) let inline_of_delta inline resolver = match inline with @@ -288,7 +288,7 @@ let subst_ind sub mind = let knc' = progress (kn_of_delta resolve) (if user then knu else knc) ~orelse:knc in - MutInd.make2 knu knc' + MutInd.make knu knc' with No_subst -> mind let subst_con0 sub cst = @@ -305,7 +305,7 @@ let subst_con0 sub cst = let knc' = progress (kn_of_delta resolve) (if user then knu else knc) ~orelse:knc in - let cst' = Constant.make2 knu knc' in + let cst' = Constant.make knu knc' in cst', mkConst cst' let subst_con sub cst = diff --git a/kernel/modops.ml b/kernel/modops.ml index d07bacdf0..986118655 100644 --- a/kernel/modops.ml +++ b/kernel/modops.ml @@ -259,7 +259,7 @@ let add_retroknowledge mp = let rec add_signature mp sign resolver env = let add_one env (l,elem) = - let kn = make_kn mp DirPath.empty l in + let kn = KerName.make2 mp l in match elem with | SFBconst cb -> Environ.add_constant (constant_of_delta_kn resolver kn) cb env @@ -284,7 +284,7 @@ let strengthen_const mp_from l cb resolver = match cb.const_body with | Def _ -> cb | _ -> - let kn = make_kn mp_from DirPath.empty l in + let kn = KerName.make2 mp_from l in let con = constant_of_delta_kn resolver kn in { cb with const_body = Def (Declarations.from_val (mkConst con)); @@ -429,8 +429,8 @@ and strengthen_and_subst_struct (* If we are performing an inclusion we need to add the fact that the constant mp_to.l is \Delta-equivalent to resolver(mp_from.l) *) - let kn_from = make_kn mp_from DirPath.empty l in - let kn_to = make_kn mp_to DirPath.empty l in + let kn_from = KerName.make2 mp_from l in + let kn_to = KerName.make2 mp_to l in let old_name = kn_of_delta resolver kn_from in (add_kn_delta_resolver kn_to old_name resolve_out), item'::rest' @@ -446,8 +446,8 @@ and strengthen_and_subst_struct strengthen_and_subst_struct rest subst mp_alias mp_from mp_to alias incl resolver in if incl then - let kn_from = make_kn mp_from DirPath.empty l in - let kn_to = make_kn mp_to DirPath.empty l in + let kn_from = KerName.make2 mp_from l in + let kn_to = KerName.make2 mp_to l in let old_name = kn_of_delta resolver kn_from in (add_kn_delta_resolver kn_to old_name resolve_out), item'::rest' diff --git a/kernel/names.ml b/kernel/names.ml index 7e7a048e9..976415e37 100644 --- a/kernel/names.ml +++ b/kernel/names.ml @@ -323,6 +323,8 @@ module KerName = struct let make mp dir l = (mp,dir,l) let repr kn = kn + let make2 mp l = (mp,DirPath.empty,l) + let modpath (mp,_,_) = mp let label (_,_,l) = l @@ -409,7 +411,7 @@ module KerPair = struct let make knu knc = if knu == knc then Same knc else Dual (knu,knc) let make1 = same - let make2 = make + let make2 mp l = same (KerName.make2 mp l) let make3 mp dir l = same (KerName.make mp dir l) let repr3 kp = KerName.repr (user kp) let label kp = KerName.label (user kp) @@ -701,7 +703,7 @@ let kn_equal = KerName.equal type constant = Constant.t let constant_of_kn = Constant.make1 -let constant_of_kn_equiv = Constant.make2 +let constant_of_kn_equiv = Constant.make let make_con = Constant.make3 let repr_con = Constant.repr3 let canonical_con = Constant.canonical @@ -721,7 +723,7 @@ let con_with_label = Constant.change_label type mutual_inductive = MutInd.t let mind_of_kn = MutInd.make1 -let mind_of_kn_equiv = MutInd.make2 +let mind_of_kn_equiv = MutInd.make let make_mind = MutInd.make3 let canonical_mind = MutInd.canonical let user_mind = MutInd.user diff --git a/kernel/names.mli b/kernel/names.mli index 8181daa22..77d5ce8e6 100644 --- a/kernel/names.mli +++ b/kernel/names.mli @@ -207,6 +207,7 @@ sig (** Constructor and destructor *) val make : ModPath.t -> DirPath.t -> Label.t -> t + val make2 : ModPath.t -> Label.t -> t val repr : t -> ModPath.t * DirPath.t * Label.t (** Projections *) @@ -235,11 +236,14 @@ sig (** Constructors *) - val make2 : KerName.t -> KerName.t -> t + val make : KerName.t -> KerName.t -> t (** Builds a constant name from a user and a canonical kernel name. *) val make1 : KerName.t -> t - (** Special case of [make2] where the user name is canonical. *) + (** Special case of [make] where the user name is canonical. *) + + val make2 : ModPath.t -> Label.t -> t + (** Shortcut for [(make1 (KerName.make2 ...))] *) val make3 : ModPath.t -> DirPath.t -> Label.t -> t (** Shortcut for [(make1 (KerName.make ...))] *) @@ -301,11 +305,14 @@ sig (** Constructors *) - val make2 : KerName.t -> KerName.t -> t + val make : KerName.t -> KerName.t -> t (** Builds a mutual inductive name from a user and a canonical kernel name. *) val make1 : KerName.t -> t - (** Special case of [make2] where the user name is canonical. *) + (** Special case of [make] where the user name is canonical. *) + + val make2 : ModPath.t -> Label.t -> t + (** Shortcut for [(make1 (KerName.make2 ...))] *) val make3 : ModPath.t -> DirPath.t -> Label.t -> t (** Shortcut for [(make1 (KerName.make ...))] *) @@ -595,7 +602,7 @@ type constant = Constant.t (** @deprecated Alias type *) val constant_of_kn_equiv : KerName.t -> KerName.t -> constant -(** @deprecated Same as [Constant.make2] *) +(** @deprecated Same as [Constant.make] *) val constant_of_kn : KerName.t -> constant (** @deprecated Same as [Constant.make1] *) diff --git a/kernel/nativecode.ml b/kernel/nativecode.ml index 04a063044..7b878c53e 100644 --- a/kernel/nativecode.ml +++ b/kernel/nativecode.ml @@ -1440,7 +1440,7 @@ let compile_constant_field env prefix con (code, symb, (mupds, cupds)) cb = gl@code, !symbols_list, (mupds, cupds) let compile_mind_field prefix mp l (code, symb, (mupds, cupds)) mb = - let mind = make_mind mp empty_dirpath l in + let mind = MutInd.make2 mp l in reset_symbols_list symb; let code, upd = compile_mind prefix mb mind code in let mupds = Mindmap_env.add mind upd mupds in diff --git a/kernel/safe_typing.ml b/kernel/safe_typing.ml index a591fb433..8a9822b18 100644 --- a/kernel/safe_typing.ml +++ b/kernel/safe_typing.ml @@ -482,11 +482,9 @@ let end_module l restype senv = let add senv ((l,elem) as field) = let new_name = match elem with | SFBconst _ -> - let kn = make_kn mp_sup DirPath.empty l in - C (constant_of_delta_kn resolver kn) + C (constant_of_delta_kn resolver (KerName.make2 mp_sup l)) | SFBmind _ -> - let kn = make_kn mp_sup DirPath.empty l in - I (mind_of_delta_kn resolver kn) + I (mind_of_delta_kn resolver (KerName.make2 mp_sup l)) | SFBmodule _ -> M | SFBmodtype _ -> MT (MPdot(senv.modinfo.modpath, l)) in diff --git a/kernel/subtyping.ml b/kernel/subtyping.ml index 485b53729..8f46831b8 100644 --- a/kernel/subtyping.ml +++ b/kernel/subtyping.ml @@ -39,7 +39,7 @@ type namedmodule = constructors *) let add_mib_nameobjects mp l mib map = - let ind = make_mind mp DirPath.empty l in + let ind = MutInd.make2 mp l in let add_mip_nameobjects j oib map = let ip = (ind,j) in let map = @@ -88,8 +88,8 @@ let check_conv_error error why cst f env a1 a2 = (* for now we do not allow reorderings *) let check_inductive cst env mp1 l info1 mp2 mib2 spec2 subst1 subst2 reso1 reso2= - let kn1 = make_kn mp1 DirPath.empty l in - let kn2 = make_kn mp2 DirPath.empty l in + let kn1 = KerName.make2 mp1 l in + let kn2 = KerName.make2 mp2 l in let error why = error_signature_mismatch l spec2 why in let check_conv why cst f = check_conv_error error why cst f in let mib1 = @@ -180,7 +180,7 @@ let check_inductive cst env mp1 l info1 mp2 mib2 spec2 subst1 subst2 reso1 reso2 let kn2' = kn_of_delta reso2 kn2 in if KerName.equal kn2 kn2' || MutInd.equal (mind_of_delta_kn reso1 kn1) - (subst_ind subst2 (MutInd.make2 kn2 kn2')) + (subst_ind subst2 (MutInd.make kn2 kn2')) then () else error NotEqualInductiveAliases end; |