diff options
| author | herbelin | 1999-12-02 22:58:48 +0000 |
|---|---|---|
| committer | herbelin | 1999-12-02 22:58:48 +0000 |
| commit | 4318eefacae280fed3a159acfede35c568b2942b (patch) | |
| tree | fcbec538a568a7cc75af45fec579e121f84e2c77 | |
| parent | 8404c8cd83aa8c802b628afe0c222b87bc7956ef (diff) | |
Modifs suite à intégration de class.ml
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@192 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | .depend | 151 | ||||
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | dev/changements.txt | 3 | ||||
| -rw-r--r-- | library/declare.ml | 4 | ||||
| -rwxr-xr-x | pretyping/classops.ml | 12 | ||||
| -rw-r--r-- | pretyping/classops.mli | 4 | ||||
| -rw-r--r-- | toplevel/vernacentries.ml | 10 |
7 files changed, 113 insertions, 73 deletions
@@ -33,8 +33,8 @@ kernel/univ.cmi: kernel/names.cmi lib/pp.cmi lib/gmapl.cmi: lib/gmap.cmi lib/pp.cmi: lib/pp_control.cmi lib/util.cmi: lib/pp.cmi -library/declare.cmi: kernel/constant.cmi kernel/inductive.cmi \ - kernel/names.cmi kernel/sign.cmi kernel/term.cmi +library/declare.cmi: kernel/constant.cmi kernel/environ.cmi \ + kernel/inductive.cmi kernel/names.cmi kernel/sign.cmi kernel/term.cmi library/global.cmi: kernel/constant.cmi kernel/environ.cmi \ kernel/inductive.cmi kernel/names.cmi kernel/safe_typing.cmi \ kernel/sign.cmi kernel/term.cmi kernel/univ.cmi @@ -51,7 +51,8 @@ library/summary.cmi: kernel/names.cmi parsing/ast.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/names.cmi \ parsing/pcoq.cmi lib/pp.cmi parsing/astterm.cmi: parsing/coqast.cmi kernel/environ.cmi kernel/evd.cmi \ - kernel/names.cmi pretyping/rawterm.cmi kernel/sign.cmi kernel/term.cmi + kernel/names.cmi pretyping/rawterm.cmi kernel/sign.cmi \ + pretyping/tacred.cmi kernel/term.cmi parsing/coqast.cmi: lib/dyn.cmi parsing/egrammar.cmi: parsing/ast.cmi parsing/coqast.cmi parsing/extend.cmi \ parsing/pcoq.cmi @@ -138,12 +139,15 @@ tactics/tacentries.cmi: proofs/proof_trees.cmi proofs/tacmach.cmi tactics/tacticals.cmi: proofs/clenv.cmi kernel/names.cmi tactics/pattern.cmi \ proofs/proof_trees.cmi kernel/reduction.cmi kernel/sign.cmi \ proofs/tacmach.cmi kernel/term.cmi tactics/wcclausenv.cmi -tactics/tactics.cmi: proofs/clenv.cmi kernel/evd.cmi kernel/names.cmi \ - proofs/proof_trees.cmi kernel/reduction.cmi proofs/tacmach.cmi \ - pretyping/tacred.cmi tactics/tacticals.cmi kernel/term.cmi +tactics/tactics.cmi: proofs/clenv.cmi kernel/environ.cmi kernel/evd.cmi \ + kernel/names.cmi proofs/proof_trees.cmi kernel/reduction.cmi \ + proofs/tacmach.cmi pretyping/tacred.cmi tactics/tacticals.cmi \ + kernel/term.cmi tactics/termdn.cmi: tactics/dn.cmi kernel/generic.cmi kernel/term.cmi tactics/wcclausenv.cmi: proofs/clenv.cmi kernel/evd.cmi kernel/names.cmi \ proofs/proof_trees.cmi kernel/sign.cmi proofs/tacmach.cmi kernel/term.cmi +toplevel/class.cmi: pretyping/classops.cmi library/declare.cmi \ + kernel/names.cmi kernel/term.cmi toplevel/command.cmi: parsing/coqast.cmi library/declare.cmi kernel/names.cmi \ pretyping/tacred.cmi kernel/term.cmi toplevel/errors.cmi: parsing/coqast.cmi lib/pp.cmi @@ -152,6 +156,7 @@ toplevel/himsg.cmi: kernel/environ.cmi kernel/names.cmi lib/pp.cmi \ toplevel/metasyntax.cmi: parsing/coqast.cmi parsing/extend.cmi toplevel/mltop.cmi: library/libobject.cmi toplevel/protectedtoplevel.cmi: lib/pp.cmi +toplevel/record.cmi: kernel/names.cmi kernel/term.cmi toplevel/searchisos.cmi: library/libobject.cmi kernel/names.cmi \ kernel/term.cmi toplevel/toplevel.cmi: parsing/pcoq.cmi lib/pp.cmi @@ -288,18 +293,18 @@ lib/tlm.cmo: lib/gmap.cmi lib/gset.cmi lib/tlm.cmi lib/tlm.cmx: lib/gmap.cmx lib/gset.cmx lib/tlm.cmi lib/util.cmo: lib/pp.cmi lib/util.cmi lib/util.cmx: lib/pp.cmx lib/util.cmi -library/declare.cmo: kernel/constant.cmi kernel/evd.cmi kernel/generic.cmi \ - library/global.cmi library/impargs.cmi library/indrec.cmi \ - kernel/inductive.cmi library/lib.cmi library/libobject.cmi \ - kernel/names.cmi library/nametab.cmi kernel/reduction.cmi kernel/sign.cmi \ - library/summary.cmi kernel/term.cmi kernel/univ.cmi lib/util.cmi \ - library/declare.cmi -library/declare.cmx: kernel/constant.cmx kernel/evd.cmx kernel/generic.cmx \ - library/global.cmx library/impargs.cmx library/indrec.cmx \ - kernel/inductive.cmx library/lib.cmx library/libobject.cmx \ - kernel/names.cmx library/nametab.cmx kernel/reduction.cmx kernel/sign.cmx \ - library/summary.cmx kernel/term.cmx kernel/univ.cmx lib/util.cmx \ - library/declare.cmi +library/declare.cmo: kernel/constant.cmi kernel/environ.cmi kernel/evd.cmi \ + kernel/generic.cmi library/global.cmi library/impargs.cmi \ + library/indrec.cmi kernel/inductive.cmi library/lib.cmi \ + library/libobject.cmi kernel/names.cmi library/nametab.cmi \ + kernel/reduction.cmi kernel/sign.cmi library/summary.cmi kernel/term.cmi \ + kernel/univ.cmi lib/util.cmi library/declare.cmi +library/declare.cmx: kernel/constant.cmx kernel/environ.cmx kernel/evd.cmx \ + kernel/generic.cmx library/global.cmx library/impargs.cmx \ + library/indrec.cmx kernel/inductive.cmx library/lib.cmx \ + library/libobject.cmx kernel/names.cmx library/nametab.cmx \ + kernel/reduction.cmx kernel/sign.cmx library/summary.cmx kernel/term.cmx \ + kernel/univ.cmx lib/util.cmx library/declare.cmi library/global.cmo: kernel/environ.cmi kernel/generic.cmi \ kernel/inductive.cmi kernel/instantiate.cmi kernel/safe_typing.cmi \ kernel/sign.cmi library/summary.cmi kernel/term.cmi lib/util.cmi \ @@ -362,20 +367,22 @@ parsing/ast.cmo: parsing/coqast.cmi lib/dyn.cmi lib/hashcons.cmi \ kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi lib/util.cmi parsing/ast.cmi parsing/ast.cmx: parsing/coqast.cmx lib/dyn.cmx lib/hashcons.cmx \ kernel/names.cmx parsing/pcoq.cmi lib/pp.cmx lib/util.cmx parsing/ast.cmi -parsing/astterm.cmo: parsing/ast.cmi toplevel/command.cmi parsing/coqast.cmi \ - library/declare.cmi kernel/environ.cmi pretyping/evarutil.cmi \ - kernel/evd.cmi kernel/generic.cmi library/global.cmi library/impargs.cmi \ - kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi pretyping/pretyping.cmi \ +parsing/astterm.cmo: parsing/ast.cmi kernel/closure.cmi toplevel/command.cmi \ + parsing/coqast.cmi library/declare.cmi kernel/environ.cmi \ + pretyping/evarutil.cmi kernel/evd.cmi kernel/generic.cmi \ + library/global.cmi library/impargs.cmi kernel/names.cmi \ + library/nametab.cmi parsing/pcoq.cmi lib/pp.cmi pretyping/pretyping.cmi \ pretyping/rawterm.cmi kernel/reduction.cmi kernel/sign.cmi \ - pretyping/syntax_def.cmi kernel/term.cmi pretyping/typing.cmi \ - lib/util.cmi toplevel/vernac.cmi parsing/astterm.cmi -parsing/astterm.cmx: parsing/ast.cmx toplevel/command.cmx parsing/coqast.cmx \ - library/declare.cmx kernel/environ.cmx pretyping/evarutil.cmx \ - kernel/evd.cmx kernel/generic.cmx library/global.cmx library/impargs.cmx \ - kernel/names.cmx parsing/pcoq.cmi lib/pp.cmx pretyping/pretyping.cmx \ + pretyping/syntax_def.cmi pretyping/tacred.cmi kernel/term.cmi \ + pretyping/typing.cmi lib/util.cmi toplevel/vernac.cmi parsing/astterm.cmi +parsing/astterm.cmx: parsing/ast.cmx kernel/closure.cmx toplevel/command.cmx \ + parsing/coqast.cmx library/declare.cmx kernel/environ.cmx \ + pretyping/evarutil.cmx kernel/evd.cmx kernel/generic.cmx \ + library/global.cmx library/impargs.cmx kernel/names.cmx \ + library/nametab.cmx parsing/pcoq.cmi lib/pp.cmx pretyping/pretyping.cmx \ pretyping/rawterm.cmi kernel/reduction.cmx kernel/sign.cmx \ - pretyping/syntax_def.cmx kernel/term.cmx pretyping/typing.cmx \ - lib/util.cmx toplevel/vernac.cmx parsing/astterm.cmi + pretyping/syntax_def.cmx pretyping/tacred.cmx kernel/term.cmx \ + pretyping/typing.cmx lib/util.cmx toplevel/vernac.cmx parsing/astterm.cmi parsing/coqast.cmo: lib/dyn.cmi lib/hashcons.cmi parsing/coqast.cmi parsing/coqast.cmx: lib/dyn.cmx lib/hashcons.cmx parsing/coqast.cmi parsing/egrammar.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/extend.cmi \ @@ -592,18 +599,20 @@ proofs/tacinterp.cmo: parsing/ast.cmi parsing/coqast.cmi proofs/macros.cmi \ proofs/tacinterp.cmx: parsing/ast.cmx parsing/coqast.cmx proofs/macros.cmx \ kernel/names.cmx lib/pp.cmx proofs/proof_trees.cmx proofs/tacmach.cmx \ kernel/term.cmx lib/util.cmx proofs/tacinterp.cmi -proofs/tacmach.cmo: parsing/ast.cmi parsing/astterm.cmi kernel/environ.cmi \ - proofs/evar_refiner.cmi kernel/evd.cmi kernel/generic.cmi \ - kernel/instantiate.cmi proofs/logic.cmi kernel/names.cmi lib/pp.cmi \ - parsing/printer.cmi proofs/proof_trees.cmi kernel/reduction.cmi \ - proofs/refiner.cmi kernel/sign.cmi lib/stamps.cmi pretyping/tacred.cmi \ - kernel/term.cmi pretyping/typing.cmi lib/util.cmi proofs/tacmach.cmi -proofs/tacmach.cmx: parsing/ast.cmx parsing/astterm.cmx kernel/environ.cmx \ - proofs/evar_refiner.cmx kernel/evd.cmx kernel/generic.cmx \ - kernel/instantiate.cmx proofs/logic.cmx kernel/names.cmx lib/pp.cmx \ - parsing/printer.cmx proofs/proof_trees.cmx kernel/reduction.cmx \ - proofs/refiner.cmx kernel/sign.cmx lib/stamps.cmx pretyping/tacred.cmx \ - kernel/term.cmx pretyping/typing.cmx lib/util.cmx proofs/tacmach.cmi +proofs/tacmach.cmo: parsing/ast.cmi parsing/astterm.cmi library/declare.cmi \ + kernel/environ.cmi proofs/evar_refiner.cmi kernel/evd.cmi \ + kernel/generic.cmi kernel/instantiate.cmi proofs/logic.cmi \ + kernel/names.cmi lib/pp.cmi parsing/printer.cmi proofs/proof_trees.cmi \ + kernel/reduction.cmi proofs/refiner.cmi kernel/sign.cmi lib/stamps.cmi \ + pretyping/tacred.cmi kernel/term.cmi pretyping/typing.cmi lib/util.cmi \ + proofs/tacmach.cmi +proofs/tacmach.cmx: parsing/ast.cmx parsing/astterm.cmx library/declare.cmx \ + kernel/environ.cmx proofs/evar_refiner.cmx kernel/evd.cmx \ + kernel/generic.cmx kernel/instantiate.cmx proofs/logic.cmx \ + kernel/names.cmx lib/pp.cmx parsing/printer.cmx proofs/proof_trees.cmx \ + kernel/reduction.cmx proofs/refiner.cmx kernel/sign.cmx lib/stamps.cmx \ + pretyping/tacred.cmx kernel/term.cmx pretyping/typing.cmx lib/util.cmx \ + proofs/tacmach.cmi tactics/auto.cmo: tactics/btermdn.cmi proofs/clenv.cmi library/declare.cmi \ tactics/dhyp.cmi kernel/evd.cmi kernel/generic.cmi library/global.cmi \ tactics/hiddentac.cmi kernel/inductive.cmi library/lib.cmi \ @@ -688,20 +697,22 @@ tactics/tacticals.cmx: proofs/clenv.cmx library/declare.cmx \ tactics/pattern.cmx lib/pp.cmx proofs/proof_trees.cmx \ kernel/reduction.cmx kernel/sign.cmx proofs/tacmach.cmx kernel/term.cmx \ lib/util.cmx tactics/wcclausenv.cmx tactics/tacticals.cmi -tactics/tactics.cmo: proofs/clenv.cmi library/declare.cmi kernel/environ.cmi \ - kernel/evd.cmi kernel/generic.cmi library/global.cmi library/indrec.cmi \ - kernel/inductive.cmi proofs/logic.cmi kernel/names.cmi \ - tactics/pattern.cmi proofs/pfedit.cmi lib/pp.cmi proofs/proof_trees.cmi \ - kernel/reduction.cmi kernel/sign.cmi proofs/tacinterp.cmi \ - proofs/tacmach.cmi pretyping/tacred.cmi tactics/tacticals.cmi \ - kernel/term.cmi lib/util.cmi tactics/tactics.cmi -tactics/tactics.cmx: proofs/clenv.cmx library/declare.cmx kernel/environ.cmx \ - kernel/evd.cmx kernel/generic.cmx library/global.cmx library/indrec.cmx \ - kernel/inductive.cmx proofs/logic.cmx kernel/names.cmx \ - tactics/pattern.cmx proofs/pfedit.cmx lib/pp.cmx proofs/proof_trees.cmx \ - kernel/reduction.cmx kernel/sign.cmx proofs/tacinterp.cmx \ - proofs/tacmach.cmx pretyping/tacred.cmx tactics/tacticals.cmx \ - kernel/term.cmx lib/util.cmx tactics/tactics.cmi +tactics/tactics.cmo: parsing/ast.cmi parsing/astterm.cmi proofs/clenv.cmi \ + library/declare.cmi kernel/environ.cmi kernel/evd.cmi kernel/generic.cmi \ + library/global.cmi library/indrec.cmi kernel/inductive.cmi \ + proofs/logic.cmi kernel/names.cmi tactics/pattern.cmi proofs/pfedit.cmi \ + lib/pp.cmi proofs/proof_trees.cmi kernel/reduction.cmi kernel/sign.cmi \ + lib/stamps.cmi proofs/tacinterp.cmi proofs/tacmach.cmi \ + pretyping/tacred.cmi tactics/tacticals.cmi kernel/term.cmi lib/util.cmi \ + tactics/tactics.cmi +tactics/tactics.cmx: parsing/ast.cmx parsing/astterm.cmx proofs/clenv.cmx \ + library/declare.cmx kernel/environ.cmx kernel/evd.cmx kernel/generic.cmx \ + library/global.cmx library/indrec.cmx kernel/inductive.cmx \ + proofs/logic.cmx kernel/names.cmx tactics/pattern.cmx proofs/pfedit.cmx \ + lib/pp.cmx proofs/proof_trees.cmx kernel/reduction.cmx kernel/sign.cmx \ + lib/stamps.cmx proofs/tacinterp.cmx proofs/tacmach.cmx \ + pretyping/tacred.cmx tactics/tacticals.cmx kernel/term.cmx lib/util.cmx \ + tactics/tactics.cmi tactics/termdn.cmo: tactics/dn.cmi kernel/generic.cmi kernel/term.cmi \ lib/util.cmi tactics/termdn.cmi tactics/termdn.cmx: tactics/dn.cmx kernel/generic.cmx kernel/term.cmx \ @@ -714,6 +725,18 @@ tactics/wcclausenv.cmx: proofs/clenv.cmx kernel/environ.cmx kernel/evd.cmx \ kernel/generic.cmx library/global.cmx proofs/logic.cmx kernel/names.cmx \ lib/pp.cmx proofs/proof_trees.cmx kernel/reduction.cmx kernel/sign.cmx \ proofs/tacmach.cmx kernel/term.cmx lib/util.cmx tactics/wcclausenv.cmi +toplevel/class.cmo: pretyping/classops.cmi kernel/constant.cmi \ + library/declare.cmi kernel/environ.cmi kernel/evd.cmi kernel/generic.cmi \ + library/global.cmi kernel/inductive.cmi kernel/instantiate.cmi \ + library/lib.cmi toplevel/metasyntax.cmi kernel/names.cmi parsing/pcoq.cmi \ + lib/pp.cmi pretyping/retyping.cmi kernel/term.cmi pretyping/typing.cmi \ + lib/util.cmi toplevel/class.cmi +toplevel/class.cmx: pretyping/classops.cmx kernel/constant.cmx \ + library/declare.cmx kernel/environ.cmx kernel/evd.cmx kernel/generic.cmx \ + library/global.cmx kernel/inductive.cmx kernel/instantiate.cmx \ + library/lib.cmx toplevel/metasyntax.cmx kernel/names.cmx parsing/pcoq.cmi \ + lib/pp.cmx pretyping/retyping.cmx kernel/term.cmx pretyping/typing.cmx \ + lib/util.cmx toplevel/class.cmi toplevel/command.cmo: parsing/ast.cmi parsing/astterm.cmi kernel/constant.cmi \ parsing/coqast.cmi library/declare.cmi kernel/environ.cmi kernel/evd.cmi \ kernel/generic.cmi library/global.cmi library/indrec.cmi \ @@ -768,6 +791,10 @@ toplevel/protectedtoplevel.cmo: toplevel/errors.cmi parsing/pcoq.cmi \ toplevel/protectedtoplevel.cmx: toplevel/errors.cmx parsing/pcoq.cmi \ lib/pp.cmx toplevel/vernac.cmx toplevel/vernacinterp.cmx \ toplevel/protectedtoplevel.cmi +toplevel/record.cmo: toplevel/class.cmi library/declare.cmi kernel/names.cmi \ + kernel/term.cmi lib/util.cmi toplevel/record.cmi +toplevel/record.cmx: toplevel/class.cmx library/declare.cmx kernel/names.cmx \ + kernel/term.cmx lib/util.cmx toplevel/record.cmi toplevel/toplevel.cmo: parsing/ast.cmi toplevel/errors.cmi toplevel/mltop.cmi \ lib/options.cmi parsing/pcoq.cmi proofs/pfedit.cmi lib/pp.cmi \ toplevel/protectedtoplevel.cmi lib/util.cmi toplevel/vernac.cmi \ @@ -793,9 +820,9 @@ toplevel/vernacentries.cmo: parsing/ast.cmi parsing/astterm.cmi \ lib/options.cmi parsing/pcoq.cmi proofs/pfedit.cmi lib/pp.cmi \ lib/pp_control.cmi parsing/pretty.cmi parsing/printer.cmi \ proofs/proof_trees.cmi kernel/reduction.cmi proofs/refiner.cmi \ - toplevel/searchisos.cmi lib/stamps.cmi library/states.cmi lib/system.cmi \ - proofs/tacmach.cmi kernel/term.cmi kernel/typeops.cmi lib/util.cmi \ - toplevel/vernacinterp.cmi toplevel/vernacentries.cmi + lib/stamps.cmi library/states.cmi lib/system.cmi proofs/tacmach.cmi \ + kernel/term.cmi kernel/typeops.cmi lib/util.cmi toplevel/vernacinterp.cmi \ + toplevel/vernacentries.cmi toplevel/vernacentries.cmx: parsing/ast.cmx parsing/astterm.cmx \ toplevel/command.cmx parsing/coqast.cmx library/declare.cmx \ kernel/environ.cmx kernel/evd.cmx parsing/extend.cmi library/global.cmx \ @@ -805,9 +832,9 @@ toplevel/vernacentries.cmx: parsing/ast.cmx parsing/astterm.cmx \ lib/options.cmx parsing/pcoq.cmi proofs/pfedit.cmx lib/pp.cmx \ lib/pp_control.cmx parsing/pretty.cmx parsing/printer.cmx \ proofs/proof_trees.cmx kernel/reduction.cmx proofs/refiner.cmx \ - toplevel/searchisos.cmi lib/stamps.cmx library/states.cmx lib/system.cmx \ - proofs/tacmach.cmx kernel/term.cmx kernel/typeops.cmx lib/util.cmx \ - toplevel/vernacinterp.cmx toplevel/vernacentries.cmi + lib/stamps.cmx library/states.cmx lib/system.cmx proofs/tacmach.cmx \ + kernel/term.cmx kernel/typeops.cmx lib/util.cmx toplevel/vernacinterp.cmx \ + toplevel/vernacentries.cmi toplevel/vernacinterp.cmo: parsing/ast.cmi parsing/coqast.cmi lib/dyn.cmi \ toplevel/himsg.cmi kernel/names.cmi lib/options.cmi lib/pp.cmi \ proofs/proof_trees.cmi proofs/tacinterp.cmi lib/util.cmi \ @@ -75,7 +75,7 @@ TACTICS=tactics/dn.cmo tactics/termdn.cmo tactics/btermdn.cmo \ tactics/tacentries.cmo tactics/hiddentac.cmo tactics/elim.cmo TOPLEVEL=toplevel/himsg.cmo toplevel/errors.cmo toplevel/vernacinterp.cmo \ - toplevel/metasyntax.cmo toplevel/command.cmo \ + toplevel/metasyntax.cmo toplevel/command.cmo pretyping/class.cmo \ toplevel/vernacentries.cmo toplevel/vernac.cmo toplevel/mltop.cmo \ toplevel/protectedtoplevel.cmo toplevel/toplevel.cmo diff --git a/dev/changements.txt b/dev/changements.txt index 80698a0be8..92251833f9 100644 --- a/dev/changements.txt +++ b/dev/changements.txt @@ -51,6 +51,9 @@ Changements dans les fonctions : mis_arity -> instantiate_arity mis_lc -> instantiate_lc + Ex-Environ + mind_path -> Global.lookup_mind + Printer gentermpr -> gen_pr_term diff --git a/library/declare.ml b/library/declare.ml index 2305f31ffa..ed63983f71 100644 --- a/library/declare.ml +++ b/library/declare.ml @@ -243,7 +243,9 @@ let global_reference_imps kind id = c, list_of_implicits (constructor_implicits ((sp,i),j)) | _ -> assert false -let global env id = global_reference CCI id +let global env id = + try let _ = lookup_glob id (Environ.context env) in VAR id + with Not_found -> global_reference CCI id let is_global id = try diff --git a/pretyping/classops.ml b/pretyping/classops.ml index b8a95a0bcf..d21e1ba813 100755 --- a/pretyping/classops.ml +++ b/pretyping/classops.ml @@ -16,13 +16,13 @@ open Generic type cte_typ = | NAM_Var of identifier | NAM_SP of section_path - | NAM_Construct of section_path*int*int + | NAM_Construct of constructor_path let cte_of_constr = function | DOPN(Const sp,_) -> NAM_SP sp | DOPN(MutInd (sp,_),_) -> NAM_SP sp | VAR id -> NAM_Var id - | DOPN(MutConstruct ((sp,i),j) ,_) -> NAM_Construct (sp,i,j) + | DOPN(MutConstruct cstr_cp,_) -> NAM_Construct cstr_cp | _ -> raise Not_found type cl_typ = @@ -119,6 +119,10 @@ let search_info x l = let class_info cl = search_info cl (!cLASSES) +let class_exists cl = + try let _ = class_info cl in true + with Not_found -> false + (* class_info_from_index : int -> cl_typ * cl_info_typ *) let class_info_from_index i = List.assoc i (!cLASSES) @@ -127,6 +131,10 @@ let class_info_from_index i = List.assoc i (!cLASSES) let coercion_info coe = search_info coe (!cOERCIONS) +let coercion_exists coe = + try let _ = coercion_info coe in true + with Not_found -> false + (* coercion_info_from_index : int -> coe_typ * coe_info_typ *) let coercion_info_from_index i = diff --git a/pretyping/classops.mli b/pretyping/classops.mli index 26188c8535..a4bf0ee8fc 100644 --- a/pretyping/classops.mli +++ b/pretyping/classops.mli @@ -26,7 +26,7 @@ type cl_info_typ = { type cte_typ = | NAM_Var of identifier | NAM_SP of section_path - | NAM_Construct of section_path * int * int + | NAM_Construct of constructor_path type coe_typ = cte_typ @@ -45,7 +45,9 @@ val coercions : unit -> (int * (coe_typ * coe_info_typ)) list val cte_of_constr : constr -> cte_typ val class_info : cl_typ -> (int * cl_info_typ) +val class_exists : cl_typ -> bool val class_info_from_index : int -> cl_typ * cl_info_typ +val coercion_exists : coe_typ -> bool val coercion_info : coe_typ -> (int * coe_info_typ) val coercion_info_from_index : int -> coe_typ * coe_info_typ val constructor_at_head : constr -> cl_typ * int diff --git a/toplevel/vernacentries.ml b/toplevel/vernacentries.ml index 25e29d7032..20d0a40c12 100644 --- a/toplevel/vernacentries.ml +++ b/toplevel/vernacentries.ml @@ -735,11 +735,11 @@ let _ = definition_body_red id stre c red_option; message ((string_of_id id) ^ " is defined"); if coe then begin - Class.try_add_new_coercion (Some id) stre None None false; + Class.try_add_new_coercion id stre; message ((string_of_id id) ^ " is now a coercion") end; if idcoe then - Class.try_add_new_coercion None stre (Some (Left id)) None true; + Class.try_add_new_coercion_subclass stre id; if objdef then Recordobj.objdef_declare id | _ -> bad_vernac_args "DEFINITION") @@ -767,8 +767,7 @@ let _ = hypothesis_def_var (refining()) (string_of_id s) stre c; if coe then - Class.try_add_new_coercion (Some s) - stre None None false; + Class.try_add_new_coercion s stre; message ((string_of_id s) ^ " is assumed")) sl) slcl @@ -1142,8 +1141,7 @@ let _ = in let isid = identity = "IDENTITY" in fun () -> - Class.try_add_new_coercion (Some id) stre (Some (Left ids)) - (Some idt) isid; + Class.try_add_new_coercion id stre ids idt isid; message ((string_of_id id) ^ " is now a coercion") | _ -> bad_vernac_args "COERCION") ***) |
