coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jason -Zhong Sheng- Hu <fdhzs2010 AT hotmail.com>
- To: Jake <jake.waksbaum AT gmail.com>, "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Induction on Permutation
- Date: Fri, 15 Mar 2019 00:55:34 +0000
- Accept-language: en-CA, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=fdhzs2010 AT hotmail.com; spf=Pass smtp.mailfrom=fdhzs2010 AT hotmail.com; spf=Pass smtp.helo=postmaster AT NAM05-BY2-obe.outbound.protection.outlook.com
- Ironport-phdr: 9a23:pCbY0BK4aPdS5FUqN9mcpTZWNBhigK39O0sv0rFitYgeLf7xwZ3uMQTl6Ol3ixeRBMOHsqoC07OempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffhlEiCChbb9vMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhicZOTAk7GHZhM9+jKxZrx29qBNy2JTbbJ2JOPdkYq/RYc0WSGxcVchRTSxBBYa8YpMLAeUbJuZYqI/9rEYXoRS9BQmsA+XvyjBVjXHr3a01zeIhEQ7f0Ac9HdwOrWnfodL7NKgPUeC0zbLIwSvfY/9LxTvw84jIchc9ofGJR71wcM7RxVMzGAPCi1WdsIroNC6W2OQVq2WW4PZsWfirhmI5sQ19vyajyt0oh4XXno4VxE7L+CZlzIswINC3VlJ3bNqmHZZVtiyWKoV7T8EnTmxrpio3yKAJtJu4cSQU1ZgnyRjSYOGdfYeS+BLsTuORLC94hH17fLK/gA6//1C8x+P7SsW50E9GozdHndXSr3wN0Afc5dadRvt640ehxS2A1wfO6uFCPE84j7LbK4Qmwr4siJUcrVjDHi7xmEXwlqOWcVgk+vSs6+TgZbXmpYWQOJNzigH7Kqgum8q/DvokMgUWUGWX5f6w2bn98UHjXblGkOc6n63HvJzCIMQUvK+5Awtb0oY57Ba/Ci+r0NoFknkHLVNFYwyLg5T0N13SO/34DfC/g0ipkDhxxvDGOqftDYnKLnjGiLvhZ6py61ZAyAovytBS/45bCrYYIP7qRkDxsMHYAQQiPgyvw+fnDc192ZkEVWKOBK+ZKqLSvkWS6uIhOenfLLMS7RT0KPVts/znjnJ/hlYeZqOgwJ4/Z3WxH/AgKEKcNz6kyNwGCCIBuhc0ZO3sklyLFzBJLT7mVKUlozo/FYiODIHZR4nrjqbXjwmhGZgDRGldDVbEVEXocIOLE8wMZSSdZ4dBj3RQW7ShWZR7jUj2nA/9179uL+6S8Sod48GwnONp7vHewElhvQd/CN6QhjnUHjNE21gQTjpz55hR5El0y1ONy6992qcKFdtP4vpIVkExMpuOlrUmWeC3YRrIe5KycHjjWs+vWGpjTtUtxtYPZwB2HNDw1kmejRrvOKcckvmwPLJx8q/Y2CSudeBU7i6bkYMQ1RwhSMYJMnC6jKli8QSVH5TOj0iSi6etc+IbwTLJ82CAi2GJuRMBXQ==
Hi Jake,
I didn't look deep into your problem, but I guess I can try to explain why this proof cannot work.
Consider the following list, [x, y]. For the sake of it, let's forget about setoids and just work with propositional equality. Let x != y in this case.
I can definitely conclude [x, y] is both a permutation and a stable permutation of itself.
Now consider use of transtivity, which goes like this,
[x, y] => [y, x] => [x, y]
Clearly, [x, y] and [y, x] are not stable. The fact that you can apply a stable filter to the end results doesn't prevent the internal structure of permutation from violating it, so the theorem is simply not closed under transitivity and you cannot prove such
fixpoint exists.
Hope that makes sense. I have no idea how to prove your particular theorem without looking into it. Sorry about that. My wild guess is StableFilter is a too shallow restriction on the lists, and therefore something stronger might help.
From: coq-club-request AT inria.fr <coq-club-request AT inria.fr> on behalf of Jake <jake.waksbaum AT gmail.com>
Sent: March 14, 2019 8:32 PM
To: coq-club AT inria.fr
Subject: [Coq-Club] Induction on Permutation
Sent: March 14, 2019 8:32 PM
To: coq-club AT inria.fr
Subject: [Coq-Club] Induction on Permutation
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.
- [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.