在REPL中使用重写

时间:2019-05-14 08:52:04

标签: idris

对于使用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在做什么?

0 个答案:

没有答案