有没有办法根据Idris中函数的输出得出结论?例如,将函数定义为:
equalNumber: (x,y : Nat) -> Nat
equalNumber x y = case decEq x y of
Yes Refl => 42
No contra => 0
现在我真的想得出结论:
lemma : equalNumber x x = 42
这有可能证明吗?如果是:如何?
答案 0 :(得分:1)
这是一个解决方案:
total
lemma : equalNumber x x = 42
lemma {x} with (decEq x x)
lemma {x} | (Yes Refl) = Refl
lemma {x} | (No contra) = absurd $ contra Refl
不幸的是,我尝试使用decEqSelfIsYes
引理失败了。