12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see LICENSE file for the text of the license) *)(************************************************************************)(** This module registers tables for some non-logical informations
associated declarations *)openNamesopenLibnamestypetheorem_kind=|Theorem|Lemma|Fact|Remark|Property|Proposition|Corollarytypedefinition_object_kind=|Definition|Coercion|SubClass|CanonicalStructure|Example|Fixpoint|CoFixpoint|Scheme|StructureComponent|IdentityCoercion|Instance|Method|Let|LetContexttypeassumption_object_kind=Definitional|Logical|Conjectural|Context(* [assumption_kind]
| Local | Global
------------------------------------
Definitional | Variable | Parameter
Logical | Hypothesis | Axiom
*)(** Kinds *)typelogical_kind=|IsPrimitive|IsSymbol|IsAssumptionofassumption_object_kind|IsDefinitionofdefinition_object_kind|IsProofoftheorem_kind(** Data associated to section variables and local definitions *)typevariable_data={opaque:bool;kind:logical_kind;}letvartab=Summary.ref(Id.Map.empty:(variable_data*DirPath.t)Id.Map.t)~name:"VARIABLE"letsecpath()=drop_dirpath_prefix(Lib.library_dp())(Lib.cwd())letadd_variable_dataido=vartab:=Id.Map.addid(o,secpath())!vartabletvariable_opacityid=let{opaque},_=Id.Map.findid!vartabinopaqueletvariable_kindid=let{kind},_=Id.Map.findid!vartabinkindletvariable_secpathid=let_,dir=Id.Map.findid!vartabinmake_qualiddiridletvariable_existsid=Id.Map.memid!vartab