Stream: Archive Mirror: Isabelle Users Mailing List

Topic: [isabelle] Help with let expressions


view this post on Zulip Email Gateway (Aug 18 2022 at 12:26):

From: Glauber Cabral <glauber.sp@gmail.com>
Dear Isabelle users.

I've been using Isabelle as the theorem prover of Hets environment to prove
HasCASL specifications to my master thesis and I'm still a starter in this
field.
I'm trying to prove the ZipSpec theorem (attached file) that shows the
property of Haskell unzip/zip function. This is the first theorem that uses
let definitions and I've got problems with this.
I try do use Let_def and decompose let definitions, but I guess I'm going to
start a loop (the last apply command is again a let decomposition and it
suggests that induction should be used, I guess). Can anyone give any
suggestion or example of how to deal with let definition? The example in the
tutorial is trivial and I could not get much far from there.

Thank you in advance,
Glauber.

PS: The files the .thy file imports are attached and they should work OK
from the same folder. The 3 files are also compressed as I don't know if
this list accept zip or not. Sorry by this duplication.
email.zip
MainHCPairs.thy
prelude.ML
Prelude_List_E2.thy

view this post on Zulip Email Gateway (Aug 18 2022 at 12:27):

From: Florian Haftmann <florian.haftmann@informatik.tu-muenchen.de>
Hi Glauber,

Attached I have a sketch how a proof using induction could work (the
problem indeed has nothing to do with let). Note that there are some
auxiliary lemmas involving X_Ints and length' which surely hold but I
did not prove in detail.

An alternative could be to provide a rule for simultaneous induction on
two lists in the manner of the HOL theorem "list_induct2".

I don't know the details of the project and to which extent the
foundations are firm or can be changed, but after a look at the sources
a few observations (in descending relevance):

Feel free to ask further questions.

Hope this helps
Florian
ExampleProof.thy
florian.haftmann.vcf
signature.asc


Last updated: May 03 2024 at 01:09 UTC