Stream: Archive Mirror: Isabelle Users Mailing List

Topic: [isabelle] New AFP entry: Lifting Definition Option


view this post on Zulip Email Gateway (Aug 19 2022 at 16:19):

From: Tobias Nipkow <nipkow@in.tum.de>
Author: René Thiemann

We implemented a command that can be used to easily generate elements of a
restricted type {x :: 'a. P x}, provided the definition is of the form f ys =
(if check ys then Some(generate ys :: 'a) else None) where ys is a list of
variables y1 ... yn and check ys ==> P(generate ys) can be proved.

In principle, such a definition is also directly possible using the
lift_definition command. However, then this definition will not be suitable for
code-generation. To this end, we automated a more complex construction of
Joachim Breitner which is amenable for code-generation, and where the test check
ys will only be performed once. In the automation, one auxiliary type is
created, and Isabelle's lifting- and transfer-package is invoked several times.

http://afp.sourceforge.net/entries/Lifting_Definition_Option.shtml

Thanks you, René!
smime.p7s


Last updated: Apr 26 2024 at 01:06 UTC