在 Isabelle/HOL 中指定规则的方向
Specifying direction of rule in Isabelle/HOL
我在证明几个引理时发现了同样的问题:具有相等性的规则有时只能在一个方向上起作用。
例如,我想使用 append_assoc
从 xs @ ys @ zs
到 (xs @ ys) @ zs
,但由于 append_assoc
被定义为 (xs @ ys) @ zs = xs @ ys @ zs
,我不能。
有什么方法可以表明我想反向使用某些规则吗?
提前致谢。
交换左右边的规则是通过将属性 symmetric
应用于原始规则获得的:
lemma "xs @ ys @ zs = (xs @ ys) @ zs"
by (rule append_assoc [symmetric])
我在证明几个引理时发现了同样的问题:具有相等性的规则有时只能在一个方向上起作用。
例如,我想使用 append_assoc
从 xs @ ys @ zs
到 (xs @ ys) @ zs
,但由于 append_assoc
被定义为 (xs @ ys) @ zs = xs @ ys @ zs
,我不能。
有什么方法可以表明我想反向使用某些规则吗?
提前致谢。
交换左右边的规则是通过将属性 symmetric
应用于原始规则获得的:
lemma "xs @ ys @ zs = (xs @ ys) @ zs"
by (rule append_assoc [symmetric])