12345678910111213141516171819202122232425262728293031323334353637383940414243444546(************************************************************************)(* * 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(** {5 Patterns} *)(** Cases pattern variables *)typepatvar=Id.ttypecase_info_pattern={cip_style:Constr.case_style;cip_ind:inductiveoption;cip_extensible:bool(** does this match end with _ => _ ? *)}typeconstr_pattern=|PRefofGlobRef.t|PVarofId.t|PEvarof(Evar.t*constr_patternlist)|PRelofint|PAppofconstr_pattern*constr_patternarray|PSoAppofpatvar*constr_patternlist|PProjofProjection.t*constr_pattern|PLambdaofName.t*constr_pattern*constr_pattern|PProdofName.t*constr_pattern*constr_pattern|PLetInofName.t*constr_pattern*constr_patternoption*constr_pattern|PSortofSorts.family|PMetaofpatvaroption|PIfofconstr_pattern*constr_pattern*constr_pattern|PCaseofcase_info_pattern*(Name.tarray*constr_pattern)option*constr_pattern*(int*Name.tarray*constr_pattern)list(** index of constructor, nb of args *)|PFixof(intarray*int)*(Name.tarray*constr_patternarray*constr_patternarray)|PCoFixofint*(Name.tarray*constr_patternarray*constr_patternarray)|PIntofUint63.t|PFloatofFloat64.t|PArrayofconstr_patternarray*constr_pattern*constr_pattern(** Nota : in a [PCase], the array of branches might be shorter than
expected, denoting the use of a final "_ => _" branch *)