The Coq docs say that the ring of booleans is predefined, and that all one has to do is Require Ring.
The docs also say that the ring
tactic works by normalizing w.r.t. associativity and commutativity.
However, the ring
tactic fails for this trivial proof that relies only on commutativity of ||
(orb
):
Lemma ors: forall (a b: bool), a || b = b || a.
Proof.
intros.
ring.
Error: Tactic failure: not a valid ring equation.
What went wrong?