coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jonathan Leivent <jonikelee AT gmail.com>
- To: Coq Club <coq-club AT inria.fr>
- Subject: [Coq-Club] what is firstorder supposed to do?
- Date: Sat, 7 Nov 2015 13:57:08 -0500
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jonikelee AT gmail.com; spf=Pass smtp.mailfrom=jonikelee AT gmail.com; spf=None smtp.helo=postmaster AT mail-vk0-f47.google.com
- Ironport-phdr: 9a23:oHUxkhGLjmAoVm/DaJOSj51GYnF86YWxBRYc798ds5kLTJ75r8mwAkXT6L1XgUPTWs2DsrQf27eQ7/irCDdIyK3CmU5BWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYsExnyfTB4Ov7yUtaLyZ/niqbuo9aCOE1hv3mUX/BbFF2OtwLft80b08NJC50a7V/3mEZOYPlc3mhyJFiezF7W78a0+4N/oWwL46pyv+YJa6jxfrw5QLpEF3xmdjltvIy4gzCYElDKvidUEjhO00kAPw+QxxbjFrz1ryGy4uF6wWyROdD8ZbEyQzWrqalxHkzGkiACYhw+9mjLisV2xIZWoQysoQA3l4zTZoCWOf5zc4vSeNobQSxKWcMHBH8JOZ+1c4ZaV7lJBu1ftYSo4gZWoA==
I've been experimenting with firstorder - but, other than hitting bugs (4401), all I've succeeded in doing is convince myself that I don't really know what it is supposed to do. Can someone explain?
The two sentence description in doc is is confusing to me. It says "The tactic firstorder is an experimental extension of tauto to first-order reasoning, written by Pierre Corbineau. It is not restricted to usual logical connectives but instead may reason about any
first-order class inductive definition."
In terms of what the "first-order reasoning" part means, my naive conception of what firstorder might do is: do as the intuition tactic would do - and if any branch of intuition can't make progress, but contains appliable hypotheses such that not all parameterizations of those appliable hypotheses vs. other hypotheses exist as hypotheses, then do the missing generation and recurse. Sort of like:
Ltac firstorder tac := intuition (tac || progress generate_new_parameterizations; firstorder tac).
where Set Firstorder Depth is used to limit that recursion. Is firstorder indended to do just that, or something else? Might it have some smarter way to generate useful parameterizations vs. all permutations, for instance?
As for the "may reason about any first-order class inductive definition" means - this has something to do with being able to construct and eliminate inductive definitions of things beyond just "and" and "or". For instance:
Goal bool. firstorder idtac. Qed.
works. But, surprisingly:
Goal nat. firstorder.
does nothing. Why? Is firstorder limited to non-recursive inductive definitions only? I can possibly see why that would be a useful limitation when doing elimination (but isn't that limitation redundant with Set Firstorder Depth?). But why when doing construction, if there is a non-recursive constructor (as 0 for nat)?
-- Jonathan
- [Coq-Club] what is firstorder supposed to do?, Jonathan Leivent, 11/07/2015
- Re: [Coq-Club] what is firstorder supposed to do?, Daniel Schepler, 11/08/2015
- Re: [Coq-Club] what is firstorder supposed to do?, Hugo Herbelin, 11/08/2015
- Re: [Coq-Club] what is firstorder supposed to do?, Jonathan Leivent, 11/09/2015
- Re: [Coq-Club] what is firstorder supposed to do?, Jonathan Leivent, 11/10/2015
- Re: [Coq-Club] what is firstorder supposed to do?, Jonathan Leivent, 11/09/2015
Archive powered by MHonArc 2.6.18.