aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel
diff options
context:
space:
mode:
authorGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-02-26 18:52:05 +0000
committerGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-02-26 18:52:05 +0000
commit7dd28b4772251af6ae3641ec63a8251153915e21 (patch)
treed11220b4ff19473215d77e9738d2a4eb58bf681d /kernel
parent2b09b02c136d3d68fa19e4493d5b5ad28c4f16db (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.ml12
-rw-r--r--kernel/modops.ml12
-rw-r--r--kernel/names.ml8
-rw-r--r--kernel/names.mli17
-rw-r--r--kernel/nativecode.ml2
-rw-r--r--kernel/safe_typing.ml6
-rw-r--r--kernel/subtyping.ml8
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;