我正在研究SF / PLF章Equiv
,它提到了“ behavioral equivalence is also a congruence”,并通过几个不同的定理表达了这一结论,例如CAss_congruence
,{{1} },CWhile_congruence
,CSeq_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
。