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.

Nicolas Koh

dblp:230/8074 · DBLP profile ↗
← Back
3ranked-venue papers
1as first author
2since 2021 · last 2023
0000-0002-3719-4502ORCID · corroborated

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

Software engineering, systems software and programming languages · 2 · 1 first-author · 1 since 2021Theory of computation · 2 · 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
1 paper
Program verification · 100%
Theoretical computer science
1 paper
Logic in computer science · 77% Computational geometry · 23%

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

TopicWeightPapersLastEvidence papers
Program verification › invariant generation
loop invariant generation
0.712023
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic · Proc. ACM Program. Lang. 2023
Program verification
safety verification
0.712023
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic · Proc. ACM Program. Lang. 2023
Logic in computer science › first-order logic
arithmetic theories
0.712023
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic · Proc. ACM Program. Lang. 2023
Computational geometry › polytopes › polyhedra
convex polyhedra
0.212023
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic · Proc. ACM Program. Lang. 2023

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

consequence-finding · 1.3conjunctive fragment reasoning · 1.3
YearPublicationVenuePosition
2023 When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic
abstract
This paper presents a theory of non-linear integer/real arithmetic and algorithms for reasoning about this theory. The theory can be conceived of as an extension of linear integer/real arithmetic with a weakly-axiomatized multiplication symbol, which retains many of the desirable algorithmic properties of linear arithmetic. In particular, we show that the conjunctive fragment of the theory can be effectively manipulated (analogously to the usual operations on convex polyhedra, the conjunctive fragment of linear arithmetic). As a result, we can solve the following consequence-finding problem: given a ground formula F , find the strongest conjunctive formula that is entailed by F . As an application of consequence-finding, we give a loop invariant generation algorithm that is monotone with respect to the theory and (in a sense) complete. Experiments show that the invariants generated from the consequences are effective for proving safety properties of programs that require non-linear reasoning.
Zachary Kincaid, Nicolas Koh, Shaowei Zhu 0001
Proc. ACM Program. Lang.2
2021 Verifying an HTTP Key-Value Server with Interaction Trees and VST
abstract
We present a networked key-value server, implemented in C and formally verified in Coq. The server interacts with clients using a subset of the HTTP/1.1 protocol and is specified and verified using interaction trees and the Verified Software Toolchain. The codebase includes a reusable and fully verified C string library that provides 17 standard POSIX string functions and 17 general purpose non-POSIX string functions. For the KVServer socket system calls, we establish a refinement relation between specifications at user-space level and at CertiKOS kernel-space level.
Hengchu Zhang, Wolf Honoré, Nicolas Koh, Yao Li 0004, Yishuai Li, Li-yao Xia, Lennart Beringer, William Mansky, Benjamin C. Pierce, Steve Zdancewic
ITP3
2019 From C to interaction trees: specifying, verifying, and testing a networked server
abstract
We present the first formal verification of a networked server implemented in C. Interaction trees, a general structure for representing reactive computations, are used to tie together disparate verification and testing tools (Coq, VST, and QuickChick) and to axiomatize the behavior of the operating system on which the server runs (CertiKOS). The main theorem connects a specification of acceptable server behaviors, written in a straightforward “one client at a time” style, with the CompCert semantics of the C program. The variability introduced by low-level buffering of messages and interleaving of multiple TCP connections is captured using network refinement, a variant of observational refinement.
Nicolas Koh, Yao Li 0004, Yishuai Li, Li-yao Xia, Lennart Beringer, Wolf Honoré, William Mansky, Benjamin C. Pierce, Steve Zdancewic
CPP1