【发布时间】:2017-04-22 19:03:09
【问题描述】:
我想定义一个函数,其行为取决于它的参数是否(至少)是一个 n 位函数。一个基本的(失败的)尝试是
Definition rT {y:Type}(x:y) := ltac: (match y with
| _ -> _ -> _ => exact True
| _ => exact False end).
Check prod: Type -> Type -> Type.
Compute rT prod. (*= False: Prop*)
Print rT. (*rT = fun (y : Type) (_ : y) => False: forall y : Type, y -> Prop*)
如您所见,rT 将所有内容映射到 False。为什么?如果我将匹配子句中的y 替换为type of x,结果保持不变
【问题讨论】:
标签: function match definition coq