1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253(************************************************************************)(* * 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) *)(************************************************************************)openNames(** The kinds of existential variable *)(** Should the obligation be defined (opaque or transparent (default)) or
defined transparent and expanded in the term? *)typeobligation_definition_status=Defineofbool|Expandtypematching_var_kind=FirstOrderPatVarofId.t|SecondOrderPatVarofId.ttypesubevar_kind=Domain|Codomain|Body(* maybe this should be a Projection.t *)typerecord_field={fieldname:Constant.t;recordname:Names.inductive}typequestion_mark={qm_obligation:obligation_definition_status;qm_name:Name.t;qm_record_field:record_fieldoption;}letdefault_question_mark={qm_obligation=Definetrue;qm_name=Anonymous;qm_record_field=None;}typet=|ImplicitArgofGlobRef.t*(int*Id.toption)*bool(** Force inference *)|BinderTypeofName.t|EvarTypeofId.toption*Evar.t(* type of an optionally named evar *)|NamedHoleofId.t(* coming from some ?[id] syntax *)|QuestionMarkofquestion_mark|CasesTypeofbool(* true = a subterm of the type *)|InternalHole|TomatchTypeParameterofinductive*int|GoalEvar|ImpossibleCase|MatchingVarofmatching_var_kind|VarInstanceofId.t|SubEvarofsubevar_kindoption*Evar.t