伊莎贝尔解析解说

Isabelle resolves interpretation

我正在使用 Isabelle 2019,遇到了一些关于当地人的问题:

我正在构建一个带有缩写的语言环境,例如:

interpretation myInstance : myLocale "abbreviation"

我将其与语言环境中的函数一起使用,例如:

myInstance.getter myinput

但是 apply simp 现在 "simplifies" 目标是这样的

myLocale.getter "abbreviation" myinput

我怎样才能避免 simp 这样做? (我很确定,这就是为什么我的代码需要很长时间才能处理的原因)...

最佳

这是已知的issue,没有完美的解决方案。部分解决方案:

  • 和 it/avoid 一起生活,使用可以简化的东西。使用定义而不是缩写(并最终将定义标记为 simp 以自动展开它)。

  • 添加同余规则(如mentioned):⋀a b. myLocale.getter a b == myLocale.getter "abbreviation" myinput a b。它并不总是有效。

  • 定义一个新常数并将所有定理提升到该常数。这很烦人(并且会降低大锤的威力)。