Program Verification Made Easy with Imperative State Threads

This work formulates and implements a sublanguage for expressing verified, efficient, imperative programs inside a dependently typed functional programming language. The functional language base is Agda, and the new facilities are closely modeled on Haskell&rsquo;s <code>ST</code>. I place emphasis on minimizing the complexity of the design and leveraging Agda&rsquo;s complex type system to provide the most intuitive experience possible. I also develop a principled proof automation macro, which is robust and should be extensible to new data types. I demonstrate the capability of my system by implementing well-known imperative algorithms such as the loop-based calculation of the Fibonacci numbers and insertion sort.

Institutions

Publication Details

Journal
UNC Libraries
Published
2025-06-12
DOI
https://doi.org/10.17615/05h2-ge91
Primary Topic
Logic, programming, and type systems
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Program Verification Made Easy with Imperative State Threads

UNC Libraries
Logic, programming, and type systems
article

Program Verification Made Easy with Imperative State Threads

article en

Abstract

This work formulates and implements a sublanguage for expressing verified, efficient, imperative programs inside a dependently typed functional programming language. The functional language base is Agda, and the new facilities are closely modeled on Haskell&rsquo;s <code>ST</code>. I place emphasis on minimizing the complexity of the design and leveraging Agda&rsquo;s complex type system to provide the most intuitive experience possible. I also develop a principled proof automation macro, which is robust and should be extensible to new data types. I demonstrate the capability of my system by implementing well-known imperative algorithms such as the loop-based calculation of the Fibonacci numbers and insertion sort.

UNC Libraries
University of North Carolina at Chapel Hill (US)
Openalex Percentile: Top 78%
Logic, programming, and type systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.