aboutsummaryrefslogtreecommitdiff
path: root/engine/termops.mli
diff options
context:
space:
mode:
authorMaxime Dénès2018-01-18 18:00:17 +0100
committerMaxime Dénès2018-01-18 18:00:17 +0100
commit9aa2464375c1515aa64df7dc910e2f324e34c82f (patch)
treeadae0cab32f7d2fb01c29d74c9dfc7dc93c3bf6f /engine/termops.mli
parentf26bf29cfe6fb154400f3a1305b86b34ad88e0e2 (diff)
parent7f60ab72facdee620467c0c48c914273f70aa96f (diff)
Merge PR #6555: Use let-in aware prod_applist_assum in dtauto and firstorder.
Diffstat (limited to 'engine/termops.mli')
-rw-r--r--engine/termops.mli10
1 files changed, 10 insertions, 0 deletions
diff --git a/engine/termops.mli b/engine/termops.mli
index c1600abe80..a3559a693b 100644
--- a/engine/termops.mli
+++ b/engine/termops.mli
@@ -159,8 +159,18 @@ val eta_reduce_head : Evd.evar_map -> constr -> constr
(** Flattens application lists *)
val collapse_appl : Evd.evar_map -> constr -> constr
+(** [prod_applist] [forall (x1:B1;...;xn:Bn), B] [a1...an] @return [B[a1...an]] *)
val prod_applist : Evd.evar_map -> constr -> constr list -> constr
+(** In [prod_applist_assum n c args], [c] is supposed to have the
+ form [∀Γ.c] with [Γ] of length [m] and possibly with let-ins; it
+ returns [c] with the assumptions of [Γ] instantiated by [args] and
+ the local definitions of [Γ] expanded.
+ Note that [n] counts both let-ins and prods, while the length of [args]
+ only counts prods. In other words, varying [n] changes how many
+ trailing let-ins are expanded. *)
+val prod_applist_assum : Evd.evar_map -> int -> constr -> constr list -> constr
+
(** Remove recursively the casts around a term i.e.
[strip_outer_cast (Cast (Cast ... (Cast c, t) ... ))] is [c]. *)
val strip_outer_cast : Evd.evar_map -> constr -> constr