如何在Coq / Agda / Idris中以一般方式表示“同等”属性?

时间:2018-08-22 09:55:53

标签: coq idris agda

我正在研究SF / PLF章Equiv,它提到了“ behavioral equivalence is also a congruence”,并通过几个不同的定理表达了这一结论,例如CAss_congruence,{{1} },CWhile_congruenceCSeq_congruence等。它们分别对应于CIf_congruence的构造函数(这是AST的类型名称,它以com玩具语言表示命令)。

这些代码似乎很冗长,所以我想知道是否有一种简单方式来表示行为Imp congruence 属性,像

com

这里的Theorem cequiv_congruence : ∀ (cp : com_pattern) (a b : com), cequiv a b -> cequiv (cp a) (cp b). 表示cp : com_pattern上没有填充单个孔,而com表示该孔被(cp a)填充了,但是我不知道如何在此处定义a

此外,我想以一般的方式表达 congruence 属性,这不仅适用于com_pattern的{​​{1}}关系,但对于所有表达式树及其上的等价关系。

也许是这样的:

cequiv_congruence

但是我也不知道如何在这里定义com

0 个答案:

没有答案