coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Beta Ziliani <beta AT mpi-sws.org>
- To: Coq Club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Top-down proofs in Coq by introducing new variables?
- Date: Sat, 26 Sep 2020 12:00:30 -0300
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=beta AT mpi-sws.org; spf=Pass smtp.mailfrom=beta AT mpi-sws.org; spf=None smtp.helo=postmaster AT jupiter.mpi-klsb.mpg.de
- Ironport-phdr: 9a23:JpztUhQR4w6GO618LaenpjvOgNpsv+yvbD5Q0YIujvd0So/mwa6yYBKN2/xhgRfzUJnB7Loc0qyK6v+mAzZLsc7JmUtBWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+MRe7oR/PusUIjodvKbo9wQbVr3VVfOhb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPHw768PttRnYUAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD+v4btnRAPuhSwaLDMy7n3ZhdJsg6JauBKhpgJww4jIYIGOKfFyerrRcc4GSWZdW8pcUTFKDIGhYIsVF+cOMuhYoIv9qVUArhWwGBeiC//0xzBSmnP7x7c33/g9HQzE2gErAtIAsG7TrNXwLKofTP66zLXSwj7ebPxW2DP96InSfRAnoPGHQLV9ftHPxkkzDQzIlVCQqZTkPz+MzeQMvXOb4/BnVeK1hG4qsgd8qSWgyckwkIfGnJ4Vykza+iVjxoY4PdK1RUplbdOlEJZcqSKXOopyT80sXm1ltjo3x6MatJOlfSUG1ogrygDDZvGbd4WF7Q/vWPuVLDtmmH5oeLKxigq0/EO9yeP8TtG53EtEoydBiNXAq3QA2wbQ58WGUPdx40es1S6R2wzP7uxIO0M5mKrBJ5I/37I9l4AfvEvBEyLwhU74lrWZdl8+9eit8+nnYqvpppubN4JsiAH+L7wums2jAesmKAgCRW2b+fy91LH6/k35RK5KgeYsnqncqJDaKt4XqbOnDANN04Yj7QiwDyu+3dgFk3QKKEhJdA+DgoTzOFzDIer0Aeq/jli0lTdk3fHGPrnvApXXKXjDla/scq1j5E5A0gU+1tVf54pVCr0YO/LyVFTxuMbfDh8jPAy42/znB8ll1oMCRWKPBbeUP7/VsV+R/+4gP+2MZJIOtzvmMPgk5/vujWcjllMHfKmp24EXaHGiEfh8LUWZeymkvtBUOmAT9iE6Ueai3FaFSHtYY2u4d6M6/DAyToy8W9TtXIeo1ZaMwC7zLJxSZ2lACxjYG3r0fq2BQ/ZJcz2JZMh7nWpXBvCaV4Y92ET250fBwL19I7+Ro3VA7MOx5J1O/+TW0CoK23lxBsWZ3XuKSjgvzGYQRnotw7s5plZymA7ajPpIxsdAHNkW3MtnFwc3MZmGkr54FsjzRg/bONKRSROlRs6sRzQpQZQ9zo1WOhovK5CZlhnGmhGSLfoNjbXSX84x6qOZxGfqYcFnxCSe2Q==
HI Ashish, unless I’m mistaken you just need to specialize the hypothesis with some a and b, right? You can do this with the specialize
tactic:specialize (H a b)
and then destruct
as usual.
Best,
Beta
On Sat, Sep 26, 2020 at 11:13 AM Kumar, Ashish <azk640 AT psu.edu> wrote:
In a particular proof I was working on, I had the following hypothesis and goal:
H: forall a b, P <-> Q.
------------------
False
Context: a and b are user defined inductive types, and P and Q are propositions which use a and b.
Idea on how to prove it: Informally, the above proof holds as (for all a b, ~Q ) holds and I can supply some specific value of a and b, for which P holds.
So using the above idea, I proved the result, using a bottom-up approach i.e. by proving the following intermediate results using 'assert'.
Proof.
assert{H1: forall a b, ~Q}. { ... }
assert{H2: P' }. { ... } (* P' is an instance of P with specific a and b values.*)
assert(H3: ~(P' -> Q') ). { ... }
assert(H4: ~(P' <-> Q') ). {... }
unfold not in H4, apply H4; apply H. Qed.
My question is that is there some way I could have use 'destruct' on the original H, to produce variables a0, b0 and hypothesis H1: P -> Q and H2 : Q -> P, i.e. a top-down approach? If so, I could have gotten a contradiction very easily by H1 and H2. I can't use it now, as I don't have any variables in proof context to supply a and b with.
With regards,
Ashish
- [Coq-Club] Top-down proofs in Coq by introducing new variables?, Kumar, Ashish, 09/26/2020
- Re: [Coq-Club] Top-down proofs in Coq by introducing new variables?, Beta Ziliani, 09/26/2020
- Re: [Coq-Club] Top-down proofs in Coq by introducing new variables?, Maximilian Wuttke, 09/26/2020
- Re: [Coq-Club] Top-down proofs in Coq by introducing new variables?, jonikelee AT gmail.com, 09/26/2020
Archive powered by MHonArc 2.6.19+.