Stream Fusion Code (Q40304)

From MaRDI portal

!

This is the item page for this Wikibase entity, intended for internal use and editing purposes. Please use the normal view instead:

AFP entry Stream_Fusion_Code
Language Label Description Also known as
default for all languages
No label defined
    English
    Stream Fusion Code
    AFP entry Stream_Fusion_Code

      Statements

      0 references
      0 references
      0 references
      0 references
      Andreas Lochbihler
      0 references
      Alexandra Maximova
      0 references
      Stream Fusion is a system for removing intermediate list data structures from functional programs, in particular Haskell. This entry adapts stream fusion to Isabelle/HOL and its code generator. We define stream types for finite and possibly infinite lists and stream versions for most of the fusible list functions in the theories List and Coinductive_List, and prove them correct with respect to the conversion functions between lists and streams. The Stream Fusion transformation itself is implemented as a simproc in the preprocessor of the code generator. [Brian Huffman's AFP entry formalises stream fusion in HOLCF for the domain of lazy lists to prove the GHC compiler rewrite rules correct. In contrast, this work enables Isabelle's code generator to perform stream fusion itself. To that end, it covers both finite and coinductive lists from the HOL library and the Coinductive entry. The fusible list functions require specification and proof principles different from Huffman's.]
      0 references
      10 October 2014
      0 references
      Stream Fusion in HOL with Code Generation (English)
      0 references
      0 references

      Identifiers