Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Existential variables or holes in Lemma types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Existential variables or holes in Lemma types


Chronological Thread 
  • From: Joachim Breitner <mail AT joachim-breitner.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Existential variables or holes in Lemma types
  • Date: Wed, 16 May 2018 12:31:21 -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:vF4Q4x2hZfepkPDBsmDT+DRfVm0co7zxezQtwd8Zse0fKfad9pjvdHbS+e9qxAeQG9mDsLQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHPbQhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLmizoJOT4n/m/ZiMNwgr5UrhWuqBFkzI7YfJuYOeBkc6/Bf94XQ3dKUMZLVyxGB4Oxd48BD+0bMulEr4n9pl4OpgajCAm2GuzvyyNIhnno0q0gzu8sFgTG0xYhH9IKq3nUrtL1O70OXuC1zanIyCzPYOhM2Tjj6YjIbhYhru+WXb5qbMXe11AiGgXYhVuerozlOima1uULs2WD7upgU/ivi289pA1rrDiv3N8giovOho0P1l/E9SR5wIMsKdKjUk50f9+kEIdWty6ELYt6WN4tTH9utS0nybMGoYa2cDUIxZkm3RLSb+aLf5aV7h/tTuqdPDl1iXxjdbminRi961Kgxff5VsSs0FZFsC5Fkt7Uu3ANyRPT8M2HReVm/ku7wjaAyRrT6v9aLkAuj6XbLoQuzqQtmZUNqUjDHyn2l1vqjKKOa0kp+Oml5/7jb7n8uJOQKoF5hhvjPqkglMGzGeE4PRIPX2if9+S8zrrj/UjhTbVPlPI2k63ZvYvYJcQcvKG2Hw9V0ocm6xqmFDimysoXnXgbLFJDZh2HlZLlNEzQL/zgF/ewn0yskCt3x/DBJrDuHpLNLmHanLj9ebZ99lVTxREozdFf4pJUEqsOLOjyWk/3rtzYDwU2Pxa6w+b9W51B0dYVXnvKCauEOovTt0WJ76QhObqifogQ7RT6IvMl5vump2U0mEMbcLPhiZ4eaXSQHPNvKEWYZD/mmNoADWEHpEwyQbq52xW5TTdPaiPqDOoH7TYhBdf+VNaRdsWWmLWEmRyDMNhTb2FCBEqLFC2xJYeDUvwMaSfXKNVskyACWKLnR4Jzj0jy5j+/8KJuK6/vwgNdrYjqjoEn5eranhEz8Hl+Fcmcz2eAVSd4kzFQHmJk7OVEuUV4j2y7/+14jvhfT4UB5/5TVwohc4XR1fJ3Edn3U0TNc4XRRQ==

Hi,

Am Mittwoch, den 16.05.2018, 18:12 +0200 schrieb Pierre Courtieu:
> I have several questions:
> 1) do you use functional induction in the proof of foo_ind_aux? It seems to
> be a good idea.

no, foo is defined in a way that functional induction is not available.
It is actually defined using a classical fixpoint operator in the
style of https://gitlab.inria.fr/charguer/tlc/blob/master/src/LibFix.v

> 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?

Well spotted. So far, P (foo x) is sufficient, but I do expect that I
might have to change that, depending on how my downstream proofs go.

Luckily, this whole scheme makes refactoring the induction principle
simpler, as there are less places where I need to change this.

> 3) the shape of this "functional scheme" is probably not accepted by
> "induction ... using foo_ind". Does it? Or do you have to apply the
> principle by hand?

Right now I use

revert e captured.
apply go_ind.

in my lemma (e and captured are the actual parameters to my function
go); changing that to

induction e, captured using go_ind.

gives me “Cannot recognize an induction scheme.”. So far I am happy
with apply; how would I have to change the lemma so that [induction]
works, and what would I gain from it?

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




Archive powered by MHonArc 2.6.18.

Top of Page