(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* evars (** {5 Manipulation functions} *) val node : 'v lambda -> 'v node val unsafe_mkPArray : 'v lambda array -> 'v lambda -> 'v lambda val unsafe_mkPArray_val : 'v -> 'v lambda -> 'v lambda val decompose_Llam : 'v lambda -> Name.t binder_annot array * 'v lambda val decompose_Llam_Llet : 'v lambda -> (Name.t binder_annot * 'v lambda option) array * 'v lambda val free_rels : 'v lambda -> Int.Set.t (* {5 Simplification} *) val optimize : 'v lambda -> 'v lambda (** {5 Translation functions} *) val get_alias : Environ.env -> evars -> Constant.t -> Constant.t * bool array module type S = sig type value val as_value : int -> value lambda array -> value option val check_inductive : inductive -> Declarations.mutual_inductive_body -> unit end module Make (Val : S) : sig val lambda_of_constr : Environ.env -> evars -> Constr.constr -> Val.value lambda end (** {5 Printing} *) val pp_lam : 'v lambda -> Pp.t