*To*: Lucas Cavalcante <thesupervisar at gmail.com>*Subject*: Re: [isabelle] induction: list*From*: Tobias Nipkow <nipkow at in.tum.de>*Date*: Sat, 20 Oct 2007 15:03:26 +0200*Cc*: cl-isabelle-users at lists.cam.ac.uk*In-reply-to*: <b4d8f2180710191541t4b5fbafdha83c3596fc2330b3@mail.gmail.com>*References*: <b4d8f2180710191541t4b5fbafdha83c3596fc2330b3@mail.gmail.com>*User-agent*: Thunderbird 2.0.0.0 (Macintosh/20070326)

Use method "induct" instead. I believe foldl is already defined in Isabelle2005 - it certainly is now.

Tobias Lucas Cavalcante schrieb:

Dear users and developers, I have defined this function: consts foldl :: "('a * 'b => 'b) => 'b => 'a list => 'b" primrec "foldl f e [] = e" "foldl f e (x#xs) = foldl f (f (x,e)) xs" Then I tried to prove this lemma: lemma a1: "foldl f z x = foldl f y x ==> z = y" But when I used the 'induct_tac' command over the variable 'x' (apply (induct_tac x)) It resulted on these subgoals: goal (lemma (a1), 2 subgoals): 1. foldl f z x = foldl f y x ==> z = y 2. !!a list. [| foldl f z x = foldl f y x; z = y |] ==> z = y Why 'x' is not been replaced by '[]' in first subgoal and 'a#list' in the second one, as it should be? I thank you in advance for any clarification concerning my above doubts! Lucas Cavalcante PS.: Is not 'isabelle-interface' supported by emacs22?

**References**:**[isabelle] induction: list***From:*Lucas Cavalcante

- Previous by Date: [isabelle] induction: list
- Next by Date: Re: [isabelle] induction: list
- Previous by Thread: [isabelle] induction: list
- Next by Thread: Re: [isabelle] induction: list
- Cl-isabelle-users October 2007 archives indexes sorted by: [ thread ] [ subject ] [ author ] [ date ]
- Cl-isabelle-users list archive Table of Contents
- More information about the Cl-isabelle-users mailing list