coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jake <jake.waksbaum AT gmail.com>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Induction on Permutation
- Date: Thu, 14 Mar 2019 20:32:00 -0400
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jake.waksbaum AT gmail.com; spf=Pass smtp.mailfrom=jake.waksbaum AT gmail.com; spf=None smtp.helo=postmaster AT mail-qt1-f170.google.com
- Ironport-phdr: 9a23:kiwY5hzT4XmQr0fXCy+O+j09IxM/srCxBDY+r6Qd1eIQIJqq85mqBkHD//Il1AaPAdyDraodw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze+/94DPbwlSmDaxfK55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRDniCkJOT03/nzJhMNsl69bpQ6tqgZlzoLIfI2YNvxzdb7dc9MAQmpBW95cWShbDYO/cYQEEu0MPeRCoIn+uVQCtxW/ChOvBOP00TBHnGL23agh3uQuFAHJxg0gH9YUvHvIq9X1Mb4fXOaox6fL1TXOd+1a1Sv55YTScR0soeuAUa9xfMbN00UjCgHIgkmWpIf4JT2azP4NvHKe7+d4VeKglWonqwZprziq3Mgsi43JipsMylDY6Cl12Yg1KcC6RUJne9KkH5xQtyaVN4tyXMwuWX1nuCE/yrEeuJ67ejYFyIg/yhLBd/CKd5KE7xHjWeqLPDt1hW5pdKiiixuw7USs0uj8WdO10FZOoCpFiN7MtnUV2hzR8MeHSeVy8l2v2DmV1ADT8fpLLloplareMJMhzbswmYASsUTHBCP5hEL2jKqOekU+5ueo8/jnYqnhppKEK4B0jRj+Pr0ylcy7HOQ3KRMDX3Ob+OS5zL3s51f1QLRMjv0sk6nWqorWJcoBpv3xPwgA2YE6rh27Ej2O0dICnHBBIkgWVgiAit3LMlLDaKT6BPSyxUulkyxhzu3DFrLkC5TJaHPEleGyLv5G90dAxV9rnphk7JVOB+RZeaOhagrKrNXdSyQBHUmxyufjBs9609pHC22KC66ddqjVtA3Rv759E6y3fIYQ/Q3FBb09/fe31C02nFYcee+i2p5FMCnlTMQjGF2QZD/XuvlEEWoOuVBgHunjiVnHSCIKInjrAPp66TY8B4arS4zEQ9L1jQ==
When doing induction on Permutation, I often get stuck in the transitive case because my induction hypothesis is not of the correct form. Is there a trick one can use to avoid this issue?
The simplest example I can find that I've encountered recently is proving the following theorem about the equivalence of two definitions of stable permutations:
Theorem perm_stable_stable_perm {A} `{E : EqDec A} : forall l l' : list A,
Permutation l l' -> StableFilter l l' -> StablePerm l l'.
This is the form that I often have issues with: there is Permutation and some other information. In the transitive case, that other information isn't available in the right way. In this example, in the transitive case we have the following hypotheses:
HP1 : Permutation l l'
HP2 : Permutation l' l''
IHHP1 : StableFilter l l' -> StablePerm l l'
IHHP2 : StableFilter l' l'' -> StablePerm l' l''
HS : StableFilter l l''
============================
StablePerm l l''
From here, we're stuck because we need to know StableFilter l l' and StableFilter l' l'' to apply our induction hypotheses, but we simply cannot conclude that from HP1, HP2, and HS.
I've attached the full file with all the definitions. For this specific theorem, I have worked around this issue by doing induction on the length of the lists. However, this type of issue comes up a lot when I'm working the Permutation and StablePerm because they both have transitive cases. I'm curious if there is a good way of dealing with this this, because otherwise it severely reduces the usefulness of these inductive predicates by making induction on them difficult.
Attachment:
Example.v
Description: Binary data
- [Coq-Club] Induction on Permutation, Jake, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jason -Zhong Sheng- Hu, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jake, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jason -Zhong Sheng- Hu, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Favonia, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jake, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jason -Zhong Sheng- Hu, 03/16/2019
- Re: [Coq-Club] Induction on Permutation, Jake, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Favonia, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jason -Zhong Sheng- Hu, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jake, 03/15/2019
- Re: [Coq-Club] Induction on Permutation, Jason -Zhong Sheng- Hu, 03/15/2019
Archive powered by MHonArc 2.6.18.