Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorSwierstra, W.S.
dc.contributor.authorKoetschruyter, Richard
dc.date.accessioned2025-07-24T00:01:54Z
dc.date.available2025-07-24T00:01:54Z
dc.date.issued2025
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/49356
dc.description.abstractUsing 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.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectWriting 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.titleA terminating type checker for the smart contract language Plutus in Rocq
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordstype 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.courseuuComputing Science
dc.thesis.id49113


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record