2019
DOI: 10.1007/978-3-030-33636-3_10
|View full text |Cite
|
Sign up to set email alerts
|

System F in Agda, for Fun and Profit

Abstract: System F, also known as the polymorphic λ-calculus, is a typed λcalculus independently discovered by the logician Jean-Yves Girard and the computer scientist John Reynolds. We consider F ωµ , which adds higher-order kinds and iso-recursive types. We present the first complete, intrinsically typed, executable, formalisation of System F ωµ that we are aware of. The work is motivated by verifying the core language of a smart contract system based on System F ωµ. The paper is a literate Agda script [14].

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
14
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 18 publications
(14 citation statements)
references
References 26 publications
0
14
0
Order By: Relevance
“…They formalise and reason about their models in Agda. Chapman et al [14] formalise System F ωµ , which is polymorphic λ-calculus with higher-kinded and arbitrary recursive types, in Agda. System F ωµ correspondence to Plutus Core, which is the core of the smart contract language Plutus that is featured by the Cardano blockchain.…”
Section: Related Workmentioning
confidence: 99%
“…They formalise and reason about their models in Agda. Chapman et al [14] formalise System F ωµ , which is polymorphic λ-calculus with higher-kinded and arbitrary recursive types, in Agda. System F ωµ correspondence to Plutus Core, which is the core of the smart contract language Plutus that is featured by the Cardano blockchain.…”
Section: Related Workmentioning
confidence: 99%
“…This is because the Agda type system and its interactive programming environment provide greater assistance to the programmer that help speed up development on certain tasks. Building on the methodology described in this paper, Plutus Core (the compilation target for the Plutus language) has an executable specification written in Agda [CKNW19]. Plutus is a general purpose language for designing smart contracts that is closely related to Haskell.…”
Section: Upcoming Features: Smart Contracts Languages Plutus and Marlmentioning
confidence: 99%
“…Note that this means we really must perform a substitution rather than creating a let-binding, since that would simply create another abstract type. 8 Consider the following example:…”
Section: Non-recursive Datatype Bindingsmentioning
confidence: 99%
“…In this paper we construct an IR suitable for a powerful functional programming language like Haskell. We take as our lambda calculus System F µ ω (System F ω with indexed fixpoints: see [27,Chapter 30], formalized recently in [8]), which allows us to talk about higher-kinded recursive types, and extend it to an IR called FIR which adds the following features:…”
Section: Introductionmentioning
confidence: 99%