aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/closure.mli
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2014-07-03 18:51:13 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2014-07-03 18:53:17 +0200
commite7ba2a9be24823503495e959f0dffc131e99801b (patch)
treedb0a3979974c88e101804438cfb89c1ddc70742d /kernel/closure.mli
parentf2327aa3c69f1695f99e2ccbfe00c4e54e56e7d2 (diff)
Fix eta expansion of primitive records (HoTT bug #78), which now fails cleanly when called
on partially applied constructors. Also protect evar_conv from that case.
Diffstat (limited to 'kernel/closure.mli')
-rw-r--r--kernel/closure.mli12
1 files changed, 9 insertions, 3 deletions
diff --git a/kernel/closure.mli b/kernel/closure.mli
index ee35e7d49..8c3eb81f4 100644
--- a/kernel/closure.mli
+++ b/kernel/closure.mli
@@ -187,9 +187,15 @@ val whd_val : clos_infos -> fconstr -> constr
val whd_stack :
clos_infos -> fconstr -> stack -> fconstr * stack
-val eta_expand_ind_stack : env -> lift -> pinductive -> fconstr -> stack ->
- (lift * (fconstr * stack)) -> lift * (fconstr * stack)
-
+(** [eta_expand_ind_stacks env ind c s t] computes stacks correspoding
+ to the conversion of the eta expansion of t, considered as an inhabitant
+ of ind, and the Constructor c of this inductive type applied to arguments
+ s.
+ @assumes [t] is a rigid term, and not a constructor. [ind] is the inductive
+ of the constructor term [c]
+ @raises Not_found if the inductive is not a primitive record, or if the
+ constructor is partially applied.
+ *)
val eta_expand_ind_stacks : env -> inductive -> fconstr -> stack ->
(fconstr * stack) -> stack * stack