考虑理论避免匹配(λ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'? 或者(也许更骇人听闻),如果第一个结果的目标没有在场所中修改,为什么不能'规则'回溯。 –