dc.rights.license | CC-BY-NC-ND | |
dc.contributor.advisor | Swierstra, W.S. | |
dc.contributor.author | Koetschruyter, Richard | |
dc.date.accessioned | 2025-07-24T00:01:54Z | |
dc.date.available | 2025-07-24T00:01:54Z | |
dc.date.issued | 2025 | |
dc.identifier.uri | https://studenttheses.uu.nl/handle/20.500.12932/49356 | |
dc.description.abstract | Using the Rocq proof assistant, Krijnen et al. prove semantic equivalence for compiler passes of the smart contract language Plutus, assuming that input programs are well-typed. Bugs in the compiler's type checker, dumping mechanism, or pretty-printing algorithms can invalidate this assumption.
This assumption is unnecessary: we decide type correctness within Rocq by implementing a sound and complete terminating type checker. Type-level computation requires proving strong normalization of the type language, which uses a named variable representation. We reason up to alpha-equivalence and present an embedding technique that lifts the strong normalization argument to richer languages. | |
dc.description.sponsorship | Utrecht University | |
dc.language.iso | EN | |
dc.subject | Writing a type checker in the Rocq proof assistant for an intermediate representation of the smart contract language Plutus. This involves a strong normalization proof to show computations in type do not loop. | |
dc.title | A terminating type checker for the smart contract language Plutus in Rocq | |
dc.type.content | Master Thesis | |
dc.rights.accessrights | Open Access | |
dc.subject.keywords | type checker; typechecker; Plutus; smart contract; proof verification; program verification; Rocq; Coq; Proof assistant; formal verification; System F; type system; progress and preservation; soundness; completeness; type safety; Plutus Intermediate Representation; verifying blockchains; Strong normalization; named representation; alpha equivalence; normalization; kind system; non-deterministic reduction relation; terminating normalizer; termination proof; dependent types; Plutus type checker; translation certification; compiler verification; verified type checker; verified compiler | |
dc.subject.courseuu | Computing Science | |
dc.thesis.id | 49113 | |