aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/reduction.mli
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2018-05-16 00:36:08 +0200
committerGravatar Maxime Dénès <mail@maximedenes.fr>2018-05-28 16:08:53 +0200
commit442bd1fe4007d2f3b46cb565abbcd64011db1af4 (patch)
tree083f5890a7a5763e884e24b1de45431573e87cae /kernel/reduction.mli
parent4552729b88058946055dddde1533057e25bfc5a9 (diff)
Fix #7333: vm_compute segfaults / Anomaly with cofix
We eta-expand cofixpoints when needed, so that their call-by-need evaluation is correctly implemented by VM and native_compute.
Diffstat (limited to 'kernel/reduction.mli')
-rw-r--r--kernel/reduction.mli3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/reduction.mli b/kernel/reduction.mli
index 2e10f98c5..e53ab6aef 100644
--- a/kernel/reduction.mli
+++ b/kernel/reduction.mli
@@ -118,9 +118,12 @@ val betazeta_appvect : int -> constr -> constr array -> constr
val dest_prod : env -> types -> Context.Rel.t * types
val dest_prod_assum : env -> types -> Context.Rel.t * types
+val dest_lam : env -> types -> Context.Rel.t * constr
val dest_lam_assum : env -> types -> Context.Rel.t * types
exception NotArity
val dest_arity : env -> types -> Term.arity (* raises NotArity if not an arity *)
val is_arity : env -> types -> bool
+
+val eta_expand : env -> constr -> types -> constr