QArith 中的平等

Equality in QArith

我想使用 QArith 的交换性属性将一个表达式替换为另一个表达式:

Require Import QArith.

Variable q1 q2 : Q.
Lemma l1 : q1 + q2 = q2 + q1.
Proof.
rewrite Qplus_comm. (* Fail *)

有没有办法将 "Qeq" 等式用作“=”?

q1 == q2q1 = q2 不同。这是一个证明,表明假设它们相等导致 False,一个矛盾。

Require Import QArith.
Lemma Qeq_is_not_eq: (forall q1 q2:Q, q1==q2 -> q1=q2) -> False.
  intro HQ.
  assert (H12: 1#1 == 2#2) by (ring).
  generalize (HQ (1#1) (2#2) H12).
  intros H2.
  inversion H2.
Qed.

请参阅 ,其中 Arthur A A 显示 1#1 <> 2#2,并解释原因。