I'm trying to prove the following theorem:
Theorem Zeq_to_eq: forall (a b : Z), Zneq_bool a b = true -> a <> b.
Proof.
intros a b.
intros neq.
rewrite Zeq_bool_neq.
Admitted.
I get the following error:
Error:
Tactic failure: setoid rewrite failed: Unable to satisfy the following constraints:
UNDEFINED EVARS:
?X22==[a b neq |- Relation_Definitions.relation Prop] (internal placeholder) {?r}
?X23==[a b neq |- Relation_Definitions.relation Z] (internal placeholder) {?r0}
?X24==[a b neq (do_subrelation:=Morphisms.do_subrelation)
|- Morphisms.Proper
(Morphisms.respectful (fun x y : Z => x <> y)
(Morphisms.respectful ?X23@{__:=a; __:=b; __:=neq}
?X22@{__:=a; __:=b; __:=neq})) eq] (internal placeholder) {?p}
?X25==[a b neq |- Morphisms.ProperProxy ?X23@{__:=a; __:=b; __:=neq} b]
(internal placeholder) {?p0}
?X26==[a b neq (do_subrelation:=Morphisms.do_subrelation)
|- Morphisms.Proper
(Morphisms.respectful ?X22@{__:=a; __:=b; __:=neq}
(Basics.flip Basics.impl)) not] (internal placeholder) {?p1}
I assume that something "deep" is going wrong, but I have no idea how to debug it. Help would be appreciated.