Implementation of a Pragmatic Translation from Haskell into Isabelle/HOL
Patrick Bahr pa-ba@arcor.de
NICTA Sydney, TU Wien
December 17, 2008
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 1 / 29
Implementation of a Pragmatic Translation from Haskell into - - PowerPoint PPT Presentation
Implementation of a Pragmatic Translation from Haskell into Isabelle/HOL Patrick Bahr pa-ba@arcor.de NICTA Sydney, TU Wien December 17, 2008 Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 1 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 1 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 2 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 3 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 4 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 4 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 4 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 5 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 5 / 29
◮ preserve syntactic structure as much as possible ◮ translate syntactic sugar as well
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 6 / 29
◮ preserve syntactic structure as much as possible ◮ translate syntactic sugar as well
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 6 / 29
◮ preserve syntactic structure as much as possible ◮ translate syntactic sugar as well
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 6 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 7 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 8 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 8 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 8 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 8 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 8 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 9 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 9 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 10 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 10 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 10 / 29
◮ an identifier has to be defined before usage ◮ mutual recursive definitions have to be made in parallel Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 11 / 29
◮ an identifier has to be defined before usage ◮ mutual recursive definitions have to be made in parallel
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 11 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 12 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 13 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 13 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 13 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 14 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 14 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 15 / 29
Haskell syntax trees Haskell modules Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 16 / 29
Haskell syntax trees (simplified) Haskell syntax trees Haskell modules Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 17 / 29
Haskell syntax trees (simplified) Haskell syntax trees Haskell modules Context Information Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 18 / 29
Isabelle syntax trees (intermediate) Haskell syntax trees (simplified) Haskell syntax trees Haskell modules Context Information Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 19 / 29
Isabelle syntax trees (intermediate) Haskell syntax trees (simplified) Haskell syntax trees Haskell modules Isabelle syntax trees Context Information Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 20 / 29
Isabelle syntax trees (intermediate) Haskell syntax trees (simplified) Haskell syntax trees Haskell modules Isabelle syntax trees Isabelle theories Context Information Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 21 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 22 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 23 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 23 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 24 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 24 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 25 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 25 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 26 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 26 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 26 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 27 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 27 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 27 / 29
= changes environment
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 28 / 29
= changes environment
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 28 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 29 / 29
Patrick Bahr (NICTA Sydney, TU Wien) Translating Haskell into Isabelle/HOL December 17, 2008 29 / 29