Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Joonwon Choi

dblp:205/7063 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
4since 2021 · last 2025
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 3 first-author · 3 since 2021Security and privacy · 1Human-computer interaction and ubiquitous computing · 1 · 1 since 2021Theory of computation · 1 · 1 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Program verification · 82% Compilers and program optimization · 18%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Electronic design automation · 45% Memory systems · 30% Processor architecture and microarchitecture · 17%
Network and information security
1 paper
Cryptographic primitives and cryptanalysis · 77% Blockchain and cryptocurrency security · 23%

Topics — the 15 heaviest of 20, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification
deductive verification
0.912025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Program verification › mechanized verification
foundational verification
0.912025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Electronic design automation
hardware verification and test
0.912025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Electronic design automation › hardware description language
verilog semantics
0.912025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Program verification
proof assistants
0.722022
Integration verification across software and hardware for a simple embedded system · PLDI 2021
Hemiola: A DSL and Verification Tools to Guide Design and Proof of Hierarchical Cache-Coherence Protocols · CAV (2) 2022
Memory systems › cache coherence › cache coherence protocol
cache coherence protocol verification
0.612022
Hemiola: A DSL and Verification Tools to Guide Design and Proof of Hierarchical Cache-Coherence Protocols · CAV (2) 2022
Memory systems › cache coherence › cache coherence protocol
hierarchical cache coherence protocol
0.612022
Hemiola: A DSL and Verification Tools to Guide Design and Proof of Hierarchical Cache-Coherence Protocols · CAV (2) 2022
Program verification › formal proof
mechanized proof
0.512021
Integration verification across software and hardware for a simple embedded system · PLDI 2021
Program verification › security property verification
verified cryptographic implementation
0.412020
EverCrypt: A Fast, Verified, Cross-Platform Cryptographic Provider · SP 2020
Compilers and program optimization › verified compilation
translation validation
0.312018
Crellvm: verified credible compilation for LLVM · PLDI 2018
Compilers and program optimization
verified compilation
0.312018
Crellvm: verified credible compilation for LLVM · PLDI 2018
Processor architecture and microarchitecture › pipelining
pipelined processor
0.312025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Processor architecture and microarchitecture › microprocessor design
RISC-V processor
0.312025
Revamping Verilog Semantics for Foundational Verification · Proc. ACM Program. Lang. 2025
Program verification › proof assistants
coq verification
0.212022
Hemiola: A DSL and Verification Tools to Guide Design and Proof of Hierarchical Cache-Coherence Protocols · CAV (2) 2022
Processor architecture and microarchitecture › instruction set architecture
RISC-V
0.112021
Integration verification across software and hardware for a simple embedded system · PLDI 2021

Methods — techniques the papers use, named apart from their topics

modular reasoning · 1.7mechanized proof · 1.7invariant proof · 1.1domain-specific language · 1.1coq · 1.1modular proof structuring · 1.0coq proof assistant · 1.0least fixpoints · 0.9least fixpoint · 0.9zero-cost generic programming · 0.9formal verification · 0.9
YearPublicationVenuePosition
2025 Revamping Verilog Semantics for Foundational Verification
abstract
In formal hardware verification, particularly for Register-Transfer Level (RTL) designs in Verilog, model checking has been the predominant technique. However, it suffers from state explosion, limited expressive power, and a large trusted computing base (TCB). Deductive verification offers greater expressive power and enables foundational verification with a minimal TCB. Nevertheless, Verilog’s standard semantics, characterized by its nondeterministic and global scheduling, pose significant challenges to its application. To address these challenges, we propose a new Verilog semantics designed to facilitate deductive verification. Our semantics is based on least fixpoints to enable cycle-level functional evaluation and modular reasoning. For foundational verification, we prove our semantics equivalent to the standard scheduling semantics for synthesizable designs. We demonstrate the benefits of our semantics with a modular verification of a pipelined RISC-V processor’s functional correctness and progress guarantees. All our results are mechanized in Rocq.
Joonwon Choi, Jeehoon Kang
Proc. ACM Program. Lang.1
2024 Stochastic-skill-level-based Shared Control for Human Training in Urban Air Mobility Scenario
abstract
This article proposes a novel stochastic-skill-level-based shared control framework to assist human novices to emulate human experts in complex dynamic control tasks. The proposed framework aims to infer stochastic-skill-levels (SSLs) of the human novices and provide personalized assistance based on the inferred SSLs. SSL can be assessed as a stochastic variable that denotes the probability that the novice will behave similarly to experts. We propose a data-driven method that can characterize novice demonstrations as a novice model and expert demonstrations as an expert model, respectively. Then, our SSL inference approach utilizes the novice and expert models to assess the SSL of the novices in complex dynamic control tasks. The shared control scheme is designed to dynamically adjust the level of assistance based on the inferred SSL to prevent frustration or tedium during human training due to poorly imposed assistance. The proposed framework is demonstrated by a human subject experiment in a human training scenario for a remotely piloted urban air mobility vehicle. The results show that the proposed framework can assess the SSL and tailor the assistance for an individual in real time. The proposed framework is compared to practice-only training (no assistance) and a baseline shared control approach to test the human learning rates in the designed training scenario with human subjects. A subjective survey is also examined to monitor the user experience of the proposed framework.
Sooyung Byeon, Joonwon Choi, Yutong Zhang 0012, Inseok Hwang 0002
ACM Trans. Hum. Robot Interact.2
2022 Hemiola: A DSL and Verification Tools to Guide Design and Proof of Hierarchical Cache-Coherence Protocols
abstract
Abstract Cache-coherence protocols have been one of the greatest challenges in formal verification of hardware, due to their central complication of executing multiple memory-access transactions concurrently within a distributed message-passing system. In this paper, we introduce Hemiola, a framework embedded in Coq that guides the user to design protocols that never experience inconsistent interleavings while handling transactions concurrently. The framework provides a DSL, where any protocol designed in the DSL always satisfies the serializability property, allowing a user to verify the protocol assuming that transactions are executed one-at-a-time. Hemiola also provides a novel invariant proof method, for protocols designed in Hemiola, that only requires considering execution histories without interleaved memory accesses. We used Hemiola to design and prove hierarchical MSI and MESI protocols as case studies. We also demonstrated that the case-study protocols are hardware-synthesizable, by using a compilation/synthesis toolchain targeting FPGAs.
Joonwon Choi, Adam Chlipala, Arvind 0001
CAV (2)1
2021 Integration verification across software and hardware for a simple embedded system
abstract
The interfaces between layers of a system are susceptible to bugs if developers of adjacent layers proceed under subtly different assumptions. Formal verification of two layers against the same formal model of the interface between them can be used to shake out these bugs. Doing so for every interface in the system can, in principle, yield unparalleled assurance of the correctness and security of the system as a whole. However, there have been remarkably few efforts that carry out this exercise, and all of them have simplified the task by restricting interactivity of the application, inventing new simplified instruction sets, and using unrealistic input and output mechanisms. We report on the first verification of a realistic embedded system, with its application software, device drivers, compiler, and RISC-V processor represented inside the Coq proof assistant as one mathematical object, with a machine-checked proof of functional correctness. A key challenge is structuring the proof modularly, so that further refinement of the components or expansion of the system can proceed without revisiting the rest of the system.
Andres Erbsen, Samuel Gruetter, Joonwon Choi, Clark Wood, Adam Chlipala
PLDI3
2020 EverCrypt: A Fast, Verified, Cross-Platform Cryptographic Provider
abstract
We present EverCrypt: a comprehensive collection of verified, high-performance cryptographic functionalities available via a carefully designed API. The API provably supports agility (choosing between multiple algorithms for the same functionality) and multiplexing (choosing between multiple implementations of the same algorithm). Through abstraction and zero-cost generic programming, we show how agility can simplify verification without sacrificing performance, and we demonstrate how C and assembly can be composed and verified against shared specifications. We substantiate the effectiveness of these techniques with new verified implementations (including hashes, Curve25519, and AES-GCM) whose performance matches or exceeds the best unverified implementations. We validate the API design with two high-performance verified case studies built atop EverCrypt, resulting in line-rate performance for a secure network protocol and a Merkle-tree library, used in a production blockchain, that supports 2.7 million insertions/sec. Altogether, EverCrypt consists of over 124K verified lines of specs, code, and proofs, and it produces over 29K lines of C and 14K lines of assembly code.
Jonathan Protzenko, Bryan Parno, Aymeric Fromherz, Chris Hawblitzel, Marina Polubelova, Karthikeyan Bhargavan, Benjamin Beurdouche, Joonwon Choi, Antoine Delignat-Lavaud, Cédric Fournet, Natalia Kulatova, Tahina Ramananandro, Aseem Rastogi, Nikhil Swamy, Christoph M. Wintersteiger, Santiago Zanella-Béguelin
SP8
2018 Crellvm: verified credible compilation for LLVM
abstract
Production compilers such as GCC and LLVM are large complex software systems, for which achieving a high level of reliability is hard. Although testing is an effective method for finding bugs, it alone cannot guarantee a high level of reliability. To provide a higher level of reliability, many approaches that examine compilers' internal logics have been proposed. However, none of them have been successfully applied to major optimizations of production compilers.
Jeehoon Kang, Yoonseung Kim, Youngju Song, Juneyoung Lee, Mark Dongyeon Shin, Sungkeun Cho, Joonwon Choi, Chung-Kil Hur, Kwangkeun Yi
PLDI9
2017 Kami: a platform for high-level parametric hardware specification and its modular verification
abstract
It has become fairly standard in the programming-languages research world to verify functional programs in proof assistants using induction, algebraic simplification, and rewriting. In this paper, we introduce Kami, a Coq library that enables similar expressive and modular reasoning for hardware designs expressed in the style of the Bluespec language. We can specify, implement, and verify realistic designs entirely within Coq, ending with automatic extraction into a pipeline that bottoms out in FPGAs. Our methodology, using labeled transition systems, has been evaluated in a case study verifying an infinite family of multicore systems, with cache-coherent shared memory and pipelined cores implementing (the base integer subset of) the RISC-V instruction set.
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, Arvind 0001
Proc. ACM Program. Lang.1