考慮理論避免匹配(λx.x)
theory Scratch imports Main begin notepad begin fix P and f g h :: "int ⇒ int" assume prems: "P f" "P g" "P h" assume comp: "⋀ f g. P f ⟹ P g ⟹ P (λ x. f (g x))" have "P (λ x. f (g (h x)))" sorry end end
顯然引理可以從prems
和comp
顯示。實際上,乍看之下,人們可以預料,它可以通過
by (intro prems comp)
但這只是循環。原因是comp
與目標的一個可能的統一是f = (λa. a)
和g = (λ x. f (g (h x)))
(可以通過使用apply (rule comp)
看出)並且沒有取得進展。
我知道這是rule
代表的有效行爲。 intro
。儘管如此,從務實的角度來看,我經常會遇到簡化或引入規則,在與匹配的所有情況下,除匹配(λx. x)
之外,這些規則都會非常有用。
有什麼辦法陳述comp
讓伊莎貝爾的匹配將不考慮一個解決方案,f
或g
是(λx. x)
?
如果不是,那麼爲什麼不是這種情況的技術和/或理論原因是什麼?
HOLCF的連續性當然是我激勵的例子。但是,如果有很多例子,那麼我的第二個問題變得更加相關:爲什麼我們不能有一種不匹配'λx的方法。 x'? 或者(也許更駭人聽聞),如果第一個結果的目標沒有在場所中修改,爲什麼不能'規則'回溯。 –