我正在测试 Coq 重写策略模关联性和交换性 ( aac_tactics)。以下示例适用于整数 ( Z),但当整数替换为有理数 ( Q) 时会生成错误。
Require Import ZArith.
Import Instances.Z.
Goal (forall x:Z, x + (-x) = 0)
-> forall a b c:Z, a + b + c + (-(c+a)) = b.
intros H ? ? ?.
aac_rewrite H.
Require Import ZArith.用etc替换Require Import QArith.的时候报错:
错误:策略失败:未找到模数 AC 的匹配发生。
在aac_rewrite H.
Z和之间也存在类似的不一致问题Q,这与Z/Q范围是否开放有关。
但我不明白为什么 aac rewrite 在这里不起作用。不一致的原因是什么,如何使它对Z和表现相同Q?