coq-club AT inria.fr
Subject: The Coq mailing list
List archive
[Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect
Chronological Thread
- From: "Soegtrop, Michael" <michael.soegtrop AT intel.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect
- Date: Mon, 30 May 2016 15:44:29 +0000
- Accept-language: de-DE, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=michael.soegtrop AT intel.com; spf=Pass smtp.mailfrom=michael.soegtrop AT intel.com; spf=None smtp.helo=postmaster AT mga03.intel.com
- Ironport-phdr: 9a23:0kUaoBJFtje++wD2uNmcpTZWNBhigK39O0sv0rFitYgULf3xwZ3uMQTl6Ol3ixeRBMOAu6MC1rGd4/6ocFdDyKjCmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TWM5DIfUi/yKRBybrysXNWC3oLqjKvipdX6WEZhunmUWftKNhK4rAHc5IE9oLBJDeIP8CbPuWZCYO9MxGlldhq5lhf44dqsrtY4q3wD86Fpy8kVG679ZuEzSaFSJDUgKWE8osPx/1GXRgyWo3AYT28+kxxSAgGD4gusDbnrtS6v/NF61SaGJ8ruCfgRWD+i5qpvAle8jSYMNzc09CfMjcF/kLhcuDqgoQByx8jfZ4TDZ6k2Rb/UYd5PHTkJZc1WTSEUWo4=
Dear Coq Users,
I am way stuck trying to use an existential hypothesis with elim:
1 subgoal t : Type p : list t -> Type H0 : p [ ] HS : forall (x : t) (l : list t), p (l ++ [x]) x : t l : list t HM : exists (x2 : t) (l2 : list t), l ++ [x] = [x2] ++ l2 ______________________________________(1/1) p ([x] ++ l)
now I want to elim HM to get the equation to rewrite the goal, so that I can use HS to solve it. But when I try “elim HM” I get the error “Error: Cannot find the elimination combinator ex_rect, the elimination of the inductive definition ex on sort Type is probably not allowed.”.
What I want to achieve macroscopically is to simplify my (educational) proofs on various induction schemes on lists, e.g.
Lemma induction_list_append_rev : forall (t : Type) (p : list t -> Type), p [] -> (forall (x : t) (l : list t), p (l ++ [x])) -> forall l : list t, p l.
I have a rather lengthy proof for this, but thought it wouldn’t be complicated to derive it from
Lemma induction_list_append : forall (t : Type) (p : list t -> Type), p [] -> (forall (x : t) (l : list t), p ([x] ++ l)) -> forall l : list t, p l.
Using this lemma:
Lemma list_mirror : forall {t : Type} (x1 : t) (l1 : list t), exists (x2 : t), exists (l2 : list t), l1 ++ [x1] = [x2] ++ l2.
I get into the above situation this way:
Lemma induction_list_append_rev : forall (t : Type) (p : list t -> Type), p [] -> (forall (x : t) (l : list t), p (l ++ [x])) -> forall l : list t, p l. Proof. intros t p H0 HS. apply induction_list_append. - exact H0. - intros x l. assert( HM := list_mirror x l ). elim HM.
I would appreciate some help with the mysteries of existential elimination J
Best regards,
Michael Intel Deutschland GmbH |
- [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Soegtrop, Michael, 05/30/2016
- Re: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Adam Chlipala, 05/30/2016
- Re: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Jonathan Leivent, 05/30/2016
- RE: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Soegtrop, Michael, 05/30/2016
- Re: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Tej Chajed, 05/30/2016
- RE: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Soegtrop, Michael, 05/31/2016
- Re: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Dominique Larchey-Wendling, 05/31/2016
- Re: [Coq-Club] Elim of existential hypothesis => Error: Cannot find the elimination combinator ex_rect, Arnaud Spiwack, 05/31/2016
Archive powered by MHonArc 2.6.18.