coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Cao Qinxiang <caoqinxiang AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] unable to set up rewriting upto mod equivalence
- Date: Tue, 5 Nov 2019 14:29:23 +0800
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=caoqinxiang AT gmail.com; spf=Pass smtp.mailfrom=caoqinxiang AT gmail.com; spf=None smtp.helo=postmaster AT mail-oi1-f173.google.com
- Ironport-phdr: 9a23:xjq3vxPRvAjBRRGWutYl6mtUPXoX/o7sNwtQ0KIMzox0Lfn9rarrMEGX3/hxlliBBdydt6sfzbOP7+uxBCQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTagb75+Ngi6oRjeu8UZhYZvKrs6xwfUrHdPZ+lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRneVgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gyoBKjU38nzYitZoga1UrhKupRxxzYDXbo+IKvRxYrjQcskGSWdbRMtdSzBND4G6YoASD+QBJ+FYr4zlqlYQtxS+AhSnCvjuyj9OiX723Lc10+IuEQrb2wEvA8gBsHPNrNX0MqcTXuG1w7POzTXMdP5W1jL955LJchAlu/2DQbVwcc/IxEQpCgjLgFKQqYn/MDOU0OQAq3SU7+16VeKplWEnrwVxriKxycgxl4nEgJ8exFPc9Shh3oo5Odm1RFR4bNOkCpdcqiCXOolsTs8/QWxltiA3waAct5GhZigF0pEnygbfa/OZd4iI5QruVOOLLjd5gHJpYbW/hxev/US5xO3wS8u53VhQoipKldnMsX8N1xjN5cSdVvR9+UKh1S6O1wDV9O5EPVg5mbTHJ5Ml2LI9lZoevV7eEiL3mkj6lrKae0cq9+Sw7uToeLTmppuSN49ujQH+N7wjldClDuQ/KwgOXm6b+Ou91LL5+035T65HjvIzkqbDsZDaId4XqbK+Aw9Qyooj8QqwDy+60NQEmnkKNE5KeBWej4TwJ17OJO34AuykjlS3kDZrwujGMaf7DpXMKHjDirbhcqxn505S0gpghexYsplTE/QKJO/5ck73rt3RSBEjYCKuxOOyI9x6nrofX3KOC6mWePfZuFiR5+Q/IuCKa6cavT/8L74u4Pu43ixxokMUYaT8hchfU3u/BPkzexzFM0qpuc8IFCIxhiR7VPbj0QTQXjtaZnL0VKU5tGliWdCWSLzbT4Xou4SvmSKyH5lYfGdDUwneHnLhdoHCUPAJOnvLf51R1wccXL3kcLcPkBGjsAiglehiJ+vQvyoZ7NftjYcuoeLUkh42+Hp/CMHPi2w=
The following line should work:
rewrite (modEq0 d) at 2.
Qinxiang Cao
Shanghai Jiao Tong University, John Hopcroft Center
Room 1110-2, SJTUSE Building
800 Dongchuan Road, Shanghai, China, 200240
On Tue, Nov 5, 2019 at 1:32 PM Abhishek Anand <abhishek.anand.iitg AT gmail.com> wrote:
I tried to set up rewriting up to mod equivalence (see modEq below).`rewrite` does not seem to work in the last lemma below even though I can prove it manually using only the declared instances.Require Import ZArith.
Open Scope Z_scope.
Require Import Morphisms.
Definition modEq (d:Z) := fun (a b :Z)=> a mod d = b mod d.
Global Instance modProperAdd (d:Z) :
Proper ((modEq d) ==> (modEq d) ==>(modEq d)) Z.add.
Proof using.
intros a b Hx e f Hy.
unfold modEq in *.
rewrite Zplus_mod.
symmetry.
rewrite Zplus_mod.
f_equal.
congruence.
Qed.
Global Instance modProperSub (d:Z) :
Proper ((modEq d) ==> (modEq d) ==>(modEq d)) Z.sub.
Proof using.
intros a b Hx e f Hy.
unfold modEq in *.
rewrite Zminus_mod.
symmetry.
rewrite Zminus_mod.
f_equal.
congruence.
Qed.
Lemma modEqRw (d a b:Z) :
modEq d a b -> a mod d = b mod d.
Proof using.
tauto.
Qed.
Global Instance modEqR (d:Z): Reflexive (modEq d).
Proof using.
hnf. intros. unfold modEq in *. congruence.
Qed.
Global Instance modEqS (d:Z): Symmetric (modEq d).
Proof using.
hnf. intros. unfold modEq in *. congruence.
Qed.
Global Instance modEqT (d:Z): Transitive (modEq d).
Proof using.
hnf. intros. unfold modEq in *. congruence.
Qed.
Lemma modEq0 (d:Z): modEq d d 0.
Proof using.
hnf. rewrite Z_mod_same_full.
reflexivity.
Qed.
Global Instance modProperOpp (d:Z) :
Proper ((modEq d) ==> (modEq d)) Z.opp.
Admitted.
Lemma rwTest (d a b:Z):
(d+a-b) mod d = (a-b) mod d.
Proof using.
erewrite modEqRw.
2:{
Fail rewrite modEq0. (* help! why does this fail? *)
apply modProperAdd;[ | reflexivity].
apply modProperAdd;[ | reflexivity].
apply modEq0.
}
reflexivity.
Qed.Thanks.-- Abhishekhttp://www.cs.cornell.edu/~aa755/
- [Coq-Club] unable to set up rewriting upto mod equivalence, Abhishek Anand, 11/05/2019
- Re: [Coq-Club] unable to set up rewriting upto mod equivalence, Cao Qinxiang, 11/05/2019
- Re: [Coq-Club] unable to set up rewriting upto mod equivalence, Abhishek Anand, 11/05/2019
- Re: [Coq-Club] unable to set up rewriting upto mod equivalence, Cao Qinxiang, 11/05/2019
- Re: [Coq-Club] unable to set up rewriting upto mod equivalence, Abhishek Anand, 11/05/2019
- Re: [Coq-Club] unable to set up rewriting upto mod equivalence, Cao Qinxiang, 11/05/2019
Archive powered by MHonArc 2.6.18.