coq-club AT inria.fr
Subject: The Coq mailing list
List archive
[Coq-Club] Why does "functional induction" remove a definition from the context?
chronological Thread
- From: Ond�ej Ry�av� <rysavy AT fit.vutbr.cz>
- To: <coq-club AT inria.fr>
- Subject: [Coq-Club] Why does "functional induction" remove a definition from the context?
- Date: Tue, 29 Jun 2010 19:38:55 +0200
- Organization: Brno University of Technology
Greetings! I am trying to prove lemma L (radically
simplified to show the problem) using “functional induction”
tactic (the definition BigAnd is at the end of this email). However, after application of functional
induction tactic, the definition Q disappears from the context and newly
introduced hypothesis P0 cannot be used to prove the
case. Lemma L : forall (N : nat), (BigAnd N (fun
i => true) = true). Proof. intros. set (Q := fun i : nat => true). functional induction (BigAnd N0 Q). It is possible to workaround the problem by
asserting the required property on Q, e.g. assert (forall i :nat, Q i = true): Lemma L : forall (N : nat), (BigAnd N (fun
i => true) = true). Proof. intros. set (Q := fun i : nat => true). assert (forall i :nat, Q i = true). intro i. unfold Q. reflexivity. functional induction (BigAnd N0 Q). apply H. apply andb_true_intro. split. apply IHb. auto. auto. Qed. Nevertheless, is there any reason why this tactic
does not keep this definition, or am I using this tactic in a wrong way? Function BigAnd (i:nat)(P : nat->
bool){struct i} : bool := match i with | O => P O | (S i') => andb (BigAnd i' P) (P
i) end. Thank you, Ondrej Rysavy |
- [Coq-Club] Why does "functional induction" remove a definition from the context?, Ondøej Ry¹avý
Archive powered by MhonArc 2.6.16.