对于使用Idris进行类型驱动开发中的一项练习,我写了以下内容:
myPlusCommutes : (n : Nat) -> (m : Nat) -> n + m = m + n
myPlusCommutes Z m = rewrite plusZeroRightNeutral m in Refl
myPlusCommutes (S n) m =
rewrite myPlusCommutes n m in
rewrite plusSuccRightSucc m n in Refl
然后我想和REPL中的rewrite
一起玩,这样我就可以“看到”幕后发生的事情。我以为以下方法可能有用,但是没有用。
λΠ> :let m : Nat
defined
λΠ> :let s : (plus 0 m = plus m 0)
defined
λΠ> rewrite plusZeroRightNeutral m in s
rewriting plus m 0 to m did not change type iType
是否可以使用REPL查看rewrite
在做什么?