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

Making conclusions based on function output in 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

这可以证明吗?如果是:如何?

这是一种解决方案:

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 引理的尝试都失败了。