Coq書き換え方法モジューロ連合性と可換性(aac_tactics
)をテストしていました。次の例は、整数(Z
)に対して機能しますが、整数を有理数(Q
)に置き換えるとエラーが発生します。Coq aac_tacticsの合理性ではなく整数に対しては書き直し
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 QArith.
等でRequire Import ZArith.
を交換する場合、エラーが発生した。
Error: Tactic failure: No matching occurence modulo AC found.
aac_rewrite H.
に関連することが判明Z
とQ
間の類似矛盾の問題がありましたがZ
/Q
スコープが開いているかどうかを示します。
しかし、なぜaacの書き換えがここではうまくいかなかったのか分かりません。矛盾の原因は何ですか?Z
とQ
で同じように動作させるにはどうすればよいですか?