coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Adam Chlipala <adamc AT hcoop.net>
- To: Andreas Lundblad <landreas AT kth.se>
- Cc: Coq Mailing List <coq-club AT pauillac.inria.fr>
- Subject: Re: [Coq-Club] Apply argument to fix-expression
- Date: Sat, 19 Sep 2009 08:36:45 -0400
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Andreas Lundblad wrote:
I've run into a situation, similar to the situation below.[...]
Theorem test :
forall l,
nth 2 l 7 = 0 ->
0 = ((fix func (l0: list nat) :=
match nth 2 l0 7 with
| 0 => 0
| _ => 1
end) l)
I don't think this example quite expresses the important issues here, because your [fix] isn't recursive. You could rewrite it as a simple [fun] and then probably prove the theorem without trouble.
Generally, a [fix] application only reduces when the top-level constructor of the recursive argument is known. For your example, you can [destruct l] to reduce the theorem to two simple cases.
- [Coq-Club] Apply argument to fix-expression, Andreas Lundblad
- Re: [Coq-Club] Apply argument to fix-expression, Adam Chlipala
- Re: [Coq-Club] Apply argument to fix-expression,
Andreas Lundblad
- Re: [Coq-Club] Apply argument to fix-expression, Stéphane Glondu
- Re: [Coq-Club] Apply argument to fix-expression,
Andreas Lundblad
- Re: [Coq-Club] Apply argument to fix-expression, Adam Chlipala
Archive powered by MhonArc 2.6.16.