鑑於我有一個非常簡單的代碼生成定義。它僅在某些情況下被定義,否則會引發運行時異常。如何使用「undefined」常量驗證代碼正確性引理
definition "blubb a = (if P a then True else undefined)"
現在我想顯示blubb
正確。應該忽略拋出異常的情況(從我的觀點來看,不是數學觀點)。然而,我最終得到一個子目標,它假設X
是undefined
的一些任意值。下面的引理或多或少地等同於子目標。我想顯示False
,因爲我想忽略拋出異常的情況(即,返回undefined
)。
lemma "X = undefined ⟹ False"
這是不可證明的。
try
Nitpick found a counterexample for card 'a = 1:
Free variable:
X = a1
什麼是展示的功能正確性可能會拋出異常錯誤或處理undefined
的最佳方式? 這涉及到this的問題。
通過顯示「blubb」正確,你的意思是什麼?對我而言,這只是'P == ==> blubb',這對於給定的定義來說是微不足道的。 – chris 2013-03-20 02:41:05
'blubb'就是一個例子。例如,'blubb a'可能是一種有效的算法,可以比默認實現更快地計算'distinct a',但只是爲排序列表定義的(壞例子)...... – corny 2013-03-20 13:11:45