Isabelle 对二元谓词表示的关系有什么支持?

What support does Isabelle have for relations represented by binary predicates?

在 Isabelle 形式化中,我用二元谓词表示关系。我希望运算符能够使用此表示执行典型的关系操作,例如组合和反转。

文档“What's in Main”中只提到了这样的算子,以成对的集合表示。 Relation 理论在开头说,“关系——作为成对的集合和二元谓词”。然而,我在这个理论中找不到对二元谓词表示的太多支持。我只找到了几个带有神秘 pred_set_conv 属性的引理。

是否广泛支持二元谓词表示的关系?特别是,是否定义了公共关系操作的运算符?这些东西记录在哪里?

对作为成对集合的关系的支持比对二元谓词的支持稍微好一些,但是有很多可用的。然而,许多关系操作是对函数和谓词的更一般操作的实例,或者它们确实是使用 pred_set_conv 获得的。因此,它们可能很难找到。使用 find_theorems 命令或面板查找词条。下面简单总结一下常用的操作:

  • 组成:relcompp(中缀OO
  • 逆:conversep(符号_\<inverse>\<inverse>
  • (自反)传递闭包:tranclprtranclp
  • 路口:inf
  • 联盟:sup
  • 包含:op <=(我发现引理 predicate2Ipredicate2D 特别有用)
  • 仅限域的函数图:BNF_Def.Grp
  • 两个函数下的反像:BNF_Def.vimage2p
  • 有根据和可访问性:wfPaccp