根据idris中的函数输出得出结论

时间:2018-03-23 15:41:37

标签: idris

有没有办法根据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

这有可能证明吗?如果是:如何?

1 个答案:

答案 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引理失败了。