When doing an interactive proof about a piece of software, it is important that the underlying programming language’s semantics does not make the proof unnecessarily difficult or unwieldy. Both smallstep and big-step semantics are commonly used, and the latter is typically given by an inductively defined relation. In this paper, we consider an alternative: using a recursive function akin to an interpreter for the language. The advantages include a better induction theorem, less duplication, accessibility to ordinary functional programmers, and the ease of doing symbolic simulation in proofs via rewriting. We believe that this style of semantics is well suited for compiler verification, including proofs of divergence preservation. We do not ...
Normalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
We investigate representations of imperative programs as constrained Horn clauses. Starting from ope...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
AbstractUsing a call-by-value functional language as an example, this article illustrates the use of...
Big-step semantics for languages with abrupt termination and/or divergence suffer from a serious dup...
Abstract. This paper illustrates the use of coinductive definitions and proofs in big-step operation...
International audienceIn spite of the popularity of small-step semantics, big-step semantics remain ...
The goal of this research is to design and implement a small functional programming language that in...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
. Starting from a denotational and a term-rewriting based operational semantics (an interpreter) fo...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
. In this paper we show that the critical part of a correctness proof for implementations of higher-...
University of Minnesota Ph.D. dissertation.December 2016. Major: Computer Science. Advisor: Gopalan...
AbstractFormal semantics of programming languages needs to model the potentially infinite state tran...
Normalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
We investigate representations of imperative programs as constrained Horn clauses. Starting from ope...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
AbstractUsing a call-by-value functional language as an example, this article illustrates the use of...
Big-step semantics for languages with abrupt termination and/or divergence suffer from a serious dup...
Abstract. This paper illustrates the use of coinductive definitions and proofs in big-step operation...
International audienceIn spite of the popularity of small-step semantics, big-step semantics remain ...
The goal of this research is to design and implement a small functional programming language that in...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
. Starting from a denotational and a term-rewriting based operational semantics (an interpreter) fo...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
. In this paper we show that the critical part of a correctness proof for implementations of higher-...
University of Minnesota Ph.D. dissertation.December 2016. Major: Computer Science. Advisor: Gopalan...
AbstractFormal semantics of programming languages needs to model the potentially infinite state tran...
Normalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
We investigate representations of imperative programs as constrained Horn clauses. Starting from ope...