Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Custom Induction Principal for le_unique

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Custom Induction Principal for le_unique


Chronological Thread 
  • From: mukesh tiwari <mukeshtiwari.iiitm AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] Custom Induction Principal for le_unique
  • Date: Sun, 5 Jun 2022 19:12:47 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mukeshtiwari.iiitm AT gmail.com; spf=Pass smtp.mailfrom=mukeshtiwari.iiitm AT gmail.com; spf=None smtp.helo=postmaster AT mail-ej1-f46.google.com
  • Ironport-data: A9a23:WF08easvnVsxbgXW9HjekgXLYOfnVGhYMUV32f8akzHdYApBsoF/q tZmKWDXOavcZGSmctkiOYrk9B8E6pSAyt43SlY5riw0ESJBgMeUXt7xwmXYb3rDdJWbJK5Ex 5xDMYeYdJhcolv0/ErF3m3J9CEkvU2wbuOgTraCYEidfCc8IMsboUsLd9UR38g52LBVPyvX4 Ymo+5OHZQf8s9JJGjt8B5yr+EsHUMva42twUmwWPZina3eD/5W9JMt3yZCZdxMUcKEMdgKJb 7qrIIWCw4/s10xF5uVJPVrMWhZirrb6ZWBig5fNMkSoqkAqSicais7XOBeAAKtao23hojx/9 DlCnZWAdwQkFInJoe8EUBxeHw5YDZYaopaSdBBTseTLp6HHW37lwvErAUNveINEpKB4BmZB8 fFeIzcIBvyBr7jukfTrF68235RlcJeD0IA34hmMyRncEPUrWpDfQrrD/94e3TYxmsVmEvPXZ s5fYj1qBPjFS0YeZwdOVc1g9AuurnLicT1xmVG+n6QMwDPU3CtBjp39acWAL7RmQu0MxhrCz o7cxEzyBQhfP9iCwxKe43e0j6nOmzn6UcQcDtWFGuVChVSSwikeCkRTWwfl5/a+jUG6VpRUL El8FjcSQbYa/XyVTdTXexiBq2eHuxgQdPxgKLFgwVTYokbL2DqxCm8BRz9HTdUpss4qWDAnv mNlefu5VVSDV5XFGRqgGqeoQSCaYndKcDdTDcMQZU5UvIm5+dBbYgfnF447SMaIYsvJ9SYcK g1mQQA7jrQXyMMJjuC1oQ6BjDWrqZzECAUy4207v15JDCspNeZJhKTysTA3CMqsyq7HEzFtW 1BaxaCjABgmV83lqcB0aLxl8EuVz/iEKibAplVkAoMs8T+gk1b6I90Mu28heB03Y5haEdMMX KM1kVMBjHO0FCv6BZKbn6rsYyjX5fO8SY66Dq68giRmO8grLV/vEN5Sib64hjixyiDAYIkwP pCUdcvEMJrpIfUP8dZCfM9EieVD7nlmmwv7HMmnpzz6j+f2TCPKEd8tbQrWBshkvfjsiFiEo 753aZHWoz0BC7aWSneMoeYuwaUidydT6Wbe8JwJKIZu42NORAkcNhMm6epxIdA+w/sLyb6gE 7PUchYw9WcTTEbvcW2iAk2Popu2NXqmhX5kbyEqI3iy3H0vPdSm4KsFJsk4eLAm8KpoyvstF 6sJfMCJA/JuTDXb+mRFPcOt8tA6LBn71xiTOyeFYSQke8EySgHM/OjidFS9+SQLCB2xqsZj8 aar0RnWQMZYSgk7VJTWZfujwkmfp38YnO4uDULELsMCKkrp+YlubSf2i6Zvcc0LLBzCwBqc1 hqXUU9I/7mT/9dt/YCQ166eroqvH+9vJWZgHjHWveSsKC3X3mu/2osfAuuFeDbqUmmrqqivY ONiye6lbK8KkVNMhIpLE7hxyJU46day9aRRyR5pHSmSYlmmVuFgL32B0ZUdv6FB3OUC6w6/W 0bK99sDfLvVZoXqF1keIAdjZeOGjKlGlj7X5PUzAUP7+C4no+bdABsKZ0GB2H5HMb94EII52 uN96sQY3Aqy10gxOdGcgyEIqmmBci4aX6M8us1ICYPnkFBwmFRLYJiZBy2vpZ/TNZNDNU4lJ jLSj63H3uwOyk3Hens1NH7MwesN2shU6U4SlAcPdwaTh97Ipv4rxxkNoz45eQJYk0dc2OVpN 2k3akB4KM1iJduzaBSvgoxtJ+1AOPFd0kn4yl9MmW+ACkf0CCrCK2oyPevL90ccm46Zkv634 5nAoFsJkx6zFC0y4sf2cUFgov3nC9d282UuXei5St+dEcBSjSXN28eTiKlhl/cjKcw0jUzD4 +Jt+Y6crEE92TE4+8UGNmVR6VjcpN1o6oCPrTGNMZ7lxV3hRQw=
  • Ironport-hdrordr: A9a23:ZIYTV6x94qlpLcYnAJ40KrPwIb1zdoMgy1knxilNoH1uA6ulfq WV9sjzuiWE6wr5NEtBpTniAsi9qBHnhPxICOAqVN/IYOCMghrMEGgN1/qH/9QiIUHDHyxmuJ uIv5IQNDQ4NzZHsfo=
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: PBtTZoHhpGvY6relj7Dwuw+vOWLNkBaI2lcVYUd8yDMYXvqJl3B4JhtqBcxJlIRHgtS0Y4hOyc vrLo8a1rI0PcKKBpDpnYqGsF3rDEs6yBxTh7ju6fPU9nGvkj8/XnCwbNS7H+/3GK+MVxLdqT6f ld5EN3sT/0ixUTRZVQQMzkAUJ7ijiGbRwQry3PgJkxp98xw1G0J23ojGgqVIKEmUu/Gp2jy+QG 0rudYF0TqrVoD4bJ7ZZSFTpmFGU4BVhYEk1DqpkPzn+Jq4KkITQTUdKlVQcBJwwd5kzd7Oy9Un AI7cCX5XruI23t8pe/Nwjkhf

Hi everyone,

I am trying to understand this proof [1]. It is very difficult to
understand by replaying the proof so I decided to write a custom
induction principle (le_pair_ind) which would make the proof trivial
and easier to read. However, I am stuck with a pattern in le_pair_ind.
In le_pair_ind, the first pattern, on l, is fine but the problem
arises in the second pattern match, on h. I don't know how to force h
to be le_n. Any help would be appreciated.



Lemma le_pair_ind :
forall (n : nat)
(P : forall m : nat, n <= m -> n <= m -> Prop),
P n (le_n n) (le_n n) ->
(forall (m : nat) (l h : n <= m), P m l h ->
P (S m) (le_S n m l) (le_S n m h)) ->
forall (m : nat) (l h : n <= m), P m l h.
Proof.
intros ? P Hb Hc.
refine(
fix Fn m l :=
match l as lp in (_ <= mp) return forall h, P mp lp h with
| le_n _ => fun h => _ (* I DON'T KNOW HOW TO FORCE h TO BE le_n *)
| le_S _ m lp => _
end).
Admitted.

Lemma le_unique : forall {m n : nat}
(p q : m <= n), p = q.
Proof.
intros ? ? ? ?.
apply (le_pair_ind m
(fun (n : nat) (a : m <= n) (b : m <= n) => a = b)).
+ exact eq_refl.
+ intros ? ? ? He;
subst; reflexivity.
Qed.

Best,
Mukesh

[1] https://github.com/coq/coq/blob/master/theories/Arith/Peano_dec.v#L40



Archive powered by MHonArc 2.6.19+.

Top of Page