Go Code Generation for Isabelle

Terru St├╝binger ­čîÉ and Lars Hupel ­čîÉ

January 22, 2024

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


This entry contains a standalone code generation target for the Go programming language. Unlike the previous targets, Go is not a functional language and encourages code in an imperative style, thus many of the features of Isabelle's language (particularly data types, pattern matching, and type classes) have to be emulated using imperative language constructs in Go. To generate Go code, users can simply import this entry, which makes the Go target available.


BSD License


Related publications

  • St├╝binger, T., & Hupel, L. (2023). Extending Isabelle/HOL's Code Generator with support for the Go programming language (Version 2). arXiv. https://doi.org/10.48550/ARXIV.2310.02704
  • Lars Hupel, & terru. (2024). isabelle-prover/isabelle-go-codegen: v0.3.1 (Version v0.3.1) [Computer software]. Zenodo. https://doi.org/10.5281/ZENODO.8401392

Session Go

Session Go_Test_Quick

Session Go_Test_Slow