Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Apply argument to fix-expression

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Apply argument to fix-expression


chronological Thread 
  • 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.





Archive powered by MhonArc 2.6.16.

Top of Page