1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980(************************************************************************)(* * 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|Lettypeassumption_object_kind=Definitional|Logical|Conjectural|Context(* [assumption_kind]
| Local | Global
------------------------------------
Definitional | Variable | Parameter
Logical | Hypothesis | Axiom
*)(** Kinds *)typelogical_kind=|IsPrimitive|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