(* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *)(* v * Copyright INRIA, CNRS and contributors *) (* \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) *) (************************************************************************)
java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 open Constr
when there open ftermjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 openRedFlags
(** Lazy reduction. *)ofjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
(** [fconstr] is the type of frozen constr *) Projection Sortsrelevance java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
| case_infoUVarsInstance.*constr *case_return*fconstr*case_branch *usubs (* predicate and branches are closures *) (** [fconstr] can be accessed by using the function [fterm_of] and by
matching on type [fterm] *)
type finvert
type evar_repack
type usubs = fconstr subs UVars.puniverses
type table_key = Constant.t UVars.puniverses tableKey
(** Relevances (eg in binder_annot or case_info) have NOT been substituted
when there is a usubs field *) type fterm =
| FRel of int
| FAtom of constr (** Metas and Sorts *) oftable_key
| FIndof pinductive
| FConstruct of pconstructor * fconstr array
| FApp of fconstr * fconstr array
| FProj of Projection.t * Sorts.relevance * fconstr
| FFix of fixpoint * usubs
| FCoFix of cofixpoint * usubs
| FCaseT of case_info * UVars.Instance.t * constr array * case_return * fconstr * case_branch array * usubsconstructorispartially.
| FCaseInvert of
| FLambda of int * (Name.t binder_annot * constr) list * constr * usubs val eta_expand_ind_stack : - pinductive ->fconstr-java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
| FLetIn of Name.t binder_annot * fconstr * fconstr * constr * usubs
| FEvar of Evar.t * constr list * usubs * evar_repack
| FInt of Uint63.t
| FFloat of Float64.t
| FString of
| FArray
| FLIFT of int * fconstr
| FCLOS of constr * usubs
| FIrrelevant
|java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(*********************************************************************** [stack]isacontextofarguments,argumentsarepushedby
[append_stack] one array at a time *) type'a next_native_args = (CPrimitives.arg_kind * 'a) list
type stack_member =
| Zapp of fconstr array
| ZcaseT of case_info * UVars.Instance.t * constr array * case_return * case_branch array * usubs
| Zproj of Projection.Repr.t * Sorts.relevance
| Zfix of fconstr * stack
| Zprimitive of CPrimitives.t * pconstant * fconstr list * fconstr next_native_args (* operator, constr def, arguments already seen (in rev order), next arguments *)
| Zshift of int
| Zupdate of fconstr
and stack = stack_member list
val empty_stack : stack val append_stack : fconstr array -> stack -> stack
val check_native_args : CPrimitives.t -> stack -> bool val get_native_args1 : CPrimitives.t -> pconstant -> stack ->
fconstr list * fconstr *
val get_invert : finvert -> fconstr array
val stack_args_size : stack -> int
val inductive_subst : Declarations.mutual_inductive_body
-> UVars.Instance.t
-> ->clos_tab
-> usubs
val - table_key val usubs_liftn : int>stack val usubs_cons : ->(fconstr * stack) option
(** identity if the first instance is empty *) get_ref_mask : clos_infos - clos_tab- table_key>boolarray val usubst_instance : 'a(** Hook for Reduction *)
val usubst_binder : _ UVars.puniverses -> 'a binder_annot -> 'a binder_annot
(** To lazy reduce a constr, create a [clos_infos] with [create_clos_infos],injectthetermtoreducewith[inject];thenuse
a reduction function *)
val inject : constr -> fconstr
val mk_clos : usubs -> constr -> fconstr val mk_clos_vect : usubs -> constr array -> fconstr array
val zip : fconstr -> stack -> fconstr
val fterm_of : fconstr -> fterm val term_of_fconstr : fconstr -> constr val term_of_process : fconstr -> stack -> constr val destFLambda :
(usubs -> constr -> fconstr) -> fconstr -> Name.t binder_annot * fconstr * fconstr
(** Global and local constant cache *) type clos_infos type clos_tab
type'a evar_expansion =
| EvarDefined of'a
| EvarUndefined of Evar.t * 'a list
val default_evar_handler : env -> evar_handler val create_conv_infos :
?univs:UGraph.t -> ?evars:evar_handler -> reds -> env -> clos_infos val create_clos_infos :
?univs:UGraph.t -> ?evars:evar_handler -> reds -> env -> clos_infos val oracle_of_infos : clos_infos -> Conv_oracle.oracle
val create_tab : unit -> clos_tab
val info_env : clos_infos -> env val info_flags: clos_infos -> reds val info_univs : clos_infos -> UGraph.t val unfold_projection : clos_infos -> Projection.t -> Sorts.relevance -> stack_member option
val push_relevance : clos_infos -> 'b binder_annot -> clos_infos val push_relevances : clos_infos -> 'b binder_annot array -> clos_infos val set_info_relevances : clos_infos -> Sorts.relevance Range.t -> clos_infos
val info_relevances : clos_infos -> Sorts.relevance Range.t
val is_irrelevant : clos_infos -> Sorts.relevance -> bool
val infos_with_reds : clos_infos -> reds -> clos_infos
(** Reduction function *)
(** [norm_val] is for strong normalization *) val norm_val : clos_infos -> clos_tab -> fconstr -> constr
(** Same as [norm_val] but for terms *) val norm_term : clos_infos -> clos_tab -> usubs -> Constr.constr -> Constr.constr
(** [whd_val] is for weak head normalization *) val whd_val : clos_infos -> clos_tab -> fconstr -> constr
(** [whd_stack] performs weak head normalization in a given stack. It
stops whenever a reduction is blocked. *) val whd_stack :
clos_infos -> clos_tab -> fconstr -> stack -> fconstr * stack
val skip_irrelevant_stack : clos_infos -> stack -> stack
(** Conversion auxiliary functions to do step by step normalisation *)
(** Like [unfold_reference], but handles primitives: if there are not enougharguments,return[None].Otherwisereturn[Some]with [ZPrimitive]addedtothestack.Producesa[FIrrelevant]whenthe referenceisirrelevantandtheinfoswascreatedwith
[create_conv_infos]. *) val unfold_ref_with_args
: clos_infos
-> clos_tab
-> table_key
-> stack
-> (fconstr * stack) option
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.