这是群论中exp
的定义:
Definition exp : Z -> U -> U.
Proof.
intros n a.
elim n;
clear n.
exact e.
intro n.
elim n; clear n.
exact a.
intros n valrec.
exact (star a valrec).
intro n; elim n; clear n.
exact (inv a).
intros n valrec.
exact (star (inv a) valrec).
Defined.
我试图用这种方式定义((a ^ n)^ k)。
Definition exp2 (n k : Z) (a : U) := fun a => exp k (exp n a).
但exp k (exp n a)
属于U->U
类型,但我希望它属于U
类型。我该怎么办?
答案 0 :(得分:1)
正如吉尔斯指出的那样,exp2
函数的签名等同于
Definition exp2 (n k : Z) (a a(*won't work in Coq*) : U) :=
exp k (exp n a).
您需要删除其中一个a
:
Definition exp2 (n k : Z) (a : U) := exp k (exp n a).
Definition exp2_alt (n k : Z) : fun a => exp k (exp n a).