coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Joachim Breitner <mail AT joachim-breitner.de>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] How much can I expect from higher-order unification?
- Date: Thu, 17 May 2018 20:18:05 -0400
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mail AT joachim-breitner.de; spf=Neutral smtp.mailfrom=mail AT joachim-breitner.de; spf=None smtp.helo=postmaster AT hermes.serverama.de
- Ironport-phdr: 9a23:iqhyCRSMdvzZiCY8KBTj8sGRKNpsv+yvbD5Q0YIujvd0So/mwa69YxWN2/xhgRfzUJnB7Loc0qyK6/umATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfb1/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/mLKhMJwkqxVrg6uqRtwzIPPb4GZKOBzc7nHcN8GR2dMWNtaWSxbAoO7aosCF+4PPeFCoIbhp1sOrB6+DhSxCeP11DBIh2P23ask3OQ7DArL2wkgEMgPsHTQt9j1NqASXvqpw6nIzDXDaupa1izn6IfWcxAhvfeMUqxqccbL1EYgCRrIg1ONooLrODOV0/4Cs2md7+d4V+KvjHQopB1xojiuw8cgk5LGhpgLxVDF6SV5xpg6JceiREFmf9GpFoZbuSKCN4ZuX88vQWBltDw+x7Ecp5K3YSYHxI46yxPRZfGKdZWD7Aj5W+aLOzh4gWpoeLKhiBa29kit0u38Wdeu0FZPsCVFicPAtmsT2BzJ9MiIVOF98V2k2TmVzQzc9/9LLVg1lardNZEh3qY9mocRvEnCBCP7nF/6gLGLekgq4OSk9urqb7v+qp+ZLYB0iwX+Mqo0msy4BOQ1Kg0OUHKa+eS4z7Dj/0r5T69Wgf02k6nZtYnWKt8BpqGnAg9VzoAj5AilDzu8zdsXg2ELLEhZdxKfk4jpJ1bOLejkAve4mlSgiStkx/TbPrL6GZjNNXjCkLL5fbln8UJcyQwzzcpe551OEL0BLujzCQfNs4nTCQZ8OAipyc7mDs9838UQQzGhGKicZYHVuFSI5+dnCfOBZZMTtSy1f/0s5vrGj3gwkl8ceOyjx5YWdHa1BLJqLhPKMjLXnt4dHDJS7UIFR+vwhQjaCG8BVzOJR6s5owoDJsejBIbHSJqqhebYjiW8F5ZWZ2UDAEqBEGvuep/CV/peMnvOcP8kqSQNUP2ac6FkzQun7laoyb1uJerV/2gSr5/iyN54/avfmENqrGEmP4Gmy2iIClpMsCYISjsxhvktoUFnz1qYl7N1meJVD9VW7rVFX1ViOA==
Hi,
Pierre writes in another thread:
> 2) I would expect (P x (foo x)) for the conclusion of foo_ind_aux instead
> of (P (foo x)). Did you just simplify your example or do you manage to use
> it like that?
and of course he is right. But now I am running into problems with
higher-order unification when I try to apply the custom induction rule:
Unable to unify "?P (take n b) n b" with
"length (take n b) = Init.Nat.min n (length b)".
I can work around by instantiating P explicitly, with
apply take_ind where (P := fun r n b => … ).
but I wonder if I can do better. Is there a trick that would make Coq
figure out P on its own? Maybe some particular order of arguments of P,
or a different tactic?
(I know that higher order unification is in general undecidable, and
that this instance admits multiple solutions… but still, hope dies
last.)
Cheers,
Joachim
--
Joachim Breitner
mail AT joachim-breitner.de
http://www.joachim-breitner.de/
Attachment:
signature.asc
Description: This is a digitally signed message part
- [Coq-Club] How much can I expect from higher-order unification?, Joachim Breitner, 05/18/2018
- Re: [Coq-Club] How much can I expect from higher-order unification?, Pierre Courtieu, 05/18/2018
- Re: [Coq-Club] How much can I expect from higher-order unification?, Enrico Tassi, 05/18/2018
Archive powered by MHonArc 2.6.18.