diff options
author | 2014-07-03 18:51:13 +0200 | |
---|---|---|
committer | 2014-07-03 18:53:17 +0200 | |
commit | e7ba2a9be24823503495e959f0dffc131e99801b (patch) | |
tree | db0a3979974c88e101804438cfb89c1ddc70742d /kernel/closure.mli | |
parent | f2327aa3c69f1695f99e2ccbfe00c4e54e56e7d2 (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.mli | 12 |
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 |