Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] How to construct this simple proof term with tactics?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] How to construct this simple proof term with tactics?


Chronological Thread 
  • From: Gaëtan Gilbert <gaetan.gilbert AT skyskimmer.net>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] How to construct this simple proof term with tactics?
  • Date: Mon, 16 Apr 2018 14:21:36 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gaetan.gilbert AT skyskimmer.net; spf=Pass smtp.mailfrom=gaetan.gilbert AT skyskimmer.net; spf=None smtp.helo=postmaster AT relay12.mail.gandi.net
  • Ironport-phdr: 9a23:GJbiNhRNdfTsIKaeU/7Ku049Otpsv+yvbD5Q0YIujvd0So/mwa6yZRKN2/xhgRfzUJnB7Loc0qyK6/umATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfb1/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/nzJhMx+jKxVoxyvqBJwzIHWfI6bO+Fzfr/ecN4AWWZNQshcWixHD4ihb4UPFe0BPeNAoof8vVQJsQe+ChOqBOz3yzFIh3v20rYk3OQ7DQHNwQstH90Uv3vKsNX6LqESXfq6zKnJyTXMdO1Z2S3h6IXTaRAhovGNXalzccrQzEkvEh3Kjk+KpYzjITyVyv0Avm6G5ORuUuKvjnQoqwB3ojW3x8csjJXJiZwRylze6Cp23oA4LsC7Rk5jedOoDoZcuiOAO4Z0Xs8uWXxktSQ5x7Ecp5K2cjYGxIw5yxLCZfGLaZWE7xL9WOqLPDt1hWxpdKiiixqu/kWtzPD3WNOu31ZQtCVFl8HBtnAT2BzX7ciKUuF98Vml2TmV1wHf9/9ILVoxlaXBKp4hxqQ8lpUJvkTFAyD2mV/6jKmIeUU44uSo6uLnbav6ppKEKYN4lwPzPr4sl8CjG+g0LwoDUmuB9eii2rDv41X1QLBQgf03lqnZvoraJcMepqOhDA9ayJgs6wqlADegytgYkngHLFZedx2ZlYjpJ0rDIOv7Dfa/mFSskzZrx/XDPrL/GJXBNH7Dn6n9fbpl8U5T1BIzzcxD55JTErwOPPXzWlbouNPECh85Lhe7zv38CNR904MeQXiADrWYMKPUq1+I5/ggL/OCZI8P637BLK0u4Oerhnskk3cce7Oo1N0ZciOWBPNjdmqQ4mblhOAuEGMAsxAiBLjlgVCeWDgVaHe2Va8m+hkgC5O9DobGQ423xrqMwHHoTdVtemlaBwXUQj/TfIKeVqJUMXPAEopaijUBEIOZZcok3BCquhX9zuM5fPHX6zYbtJfm2cIz4eDPx0hrqW5ESv+F2mTIdFla23sSTmZojrt8sFd+y1KG3LI+hfFER4QKuqF5FzwiPJuZ9NRUTtD/XgWbIoWTRVKvU4z8RzQ4T9Z3zNYIb0c7Hdi+3EjO

Notice that the destruct is not needed:
P, H |- (H (or_intror (fun Pw : P => H (or_introl Pw)))) : False

Then you can unfold that into a string of applications to get JF Monin's proof.

Gaëtan Gilbert

On 16/04/2018 14:12, Soegtrop, Michael wrote:
Dear Coq Users,

doing some exercises I want to proof:

1 subgoal

P : Prop

H : P \/ ~ P -> False

______________________________________(1/1)

False

It is easy to see that this can be done with

destruct (H (or_intror (fun Pw : P => H (or_introl Pw)))).

The function argument to or_intror is (P->False) which is the ~P needed by or_intror to construct a (P \/ ~P) as argument for H. H applied to this gives False and that’s it.

But what I am looking for is a more conventional tactics based way to do this (except tauto – no cheating in exercises ;-). I guess I am missing something obvious …

Best regards,

Michael

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928




Archive powered by MHonArc 2.6.18.

Top of Page