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

Philip Johnson-Freyd

dblp:167/5917 · DBLP profile ↗
← Back
5ranked-venue papers
1as first author
2since 2021 · last 2024
0000-0001-5973-0671ORCID · corroborated

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

Software engineering, systems software and programming languages · 4 · 1 first-author · 1 since 2021Theory of computation · 1 · 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.

Theoretical computer science
2 papers
Logic in computer science · 70% Automated reasoning and model checking · 30%
Software engineering, system software, and programming languages
1 paper
Program verification · 50% Programming languages and type systems · 50%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › language semantics
formal semantics
0.812024
A Formalization of Core Why3 in Coq · Proc. ACM Program. Lang. 2024
Program verification › deductive verification
intermediate verification language
0.812024
A Formalization of Core Why3 in Coq · Proc. ACM Program. Lang. 2024
Program verification
proof system
0.812024
A Formalization of Core Why3 in Coq · Proc. ACM Program. Lang. 2024
Programming languages and type systems › type systems
soundness
0.812024
A Formalization of Core Why3 in Coq · Proc. ACM Program. Lang. 2024
Logic in computer science
categorical semantics
0.812024
A Nominal Approach to Probabilistic Separation Logic · LICS 2024
Logic in computer science
nominal sets
0.812024
A Nominal Approach to Probabilistic Separation Logic · LICS 2024
Automated reasoning and model checking
program verification
0.812024
A Nominal Approach to Probabilistic Separation Logic · LICS 2024
Logic in computer science › program logic
separation logic
0.812024
A Nominal Approach to Probabilistic Separation Logic · LICS 2024
Automated reasoning and model checking › satisfiability modulo theories
SMT solvers
0.212024
A Formalization of Core Why3 in Coq · Proc. ACM Program. Lang. 2024

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

natural deduction · 1.5formalisation · 1.5coq · 1.5schanuel topos · 0.8measure theory · 0.8category theory · 0.8
YearPublicationVenuePosition
2024 A Nominal Approach to Probabilistic Separation Logic
abstract
Currently, there is a gap between the tools used by probability theorists and those used in formal reasoning about probabilistic programs. On the one hand, a probability theorist decomposes probabilistic state along the simple and natural product of probability spaces. On the other hand, recently developed probabilistic separation logics decompose state via relatively unfamiliar measure-theoretic constructions for computing unions of sigma-algebras and probability measures. We bridge the gap between these two perspectives by showing that these two methods of decomposition are equivalent up to a suitable equivalence of categories. Our main result is a probabilistic analog of the classic equivalence between the category of nominal sets and the Schanuel topos. Through this equivalence, we validate design decisions in prior work on probabilistic separation logic and create new connections to nominal-setlike models of probability.
John M. Li, Jon Aytac, Philip Johnson-Freyd, Amal Ahmed 0001, Steven Holtzen
LICS3
2024 A Formalization of Core Why3 in Coq
abstract
Intermediate verification languages like Why3 and Boogie have made it much easier to build program verifiers, transforming the process into a logic compilation problem rather than a proof automation one. Why3 in particular implements a rich logic for program specification with polymorphism, algebraic data types, recursive functions and predicates, and inductive predicates; it translates this logic to over a dozen solvers and proof assistants. Accordingly, it serves as a backend for many tools, including Frama-C, EasyCrypt, and GNATProve for Ada SPARK. But how can we be sure that these tools are correct? The alternate foundational approach, taken by tools like VST and CakeML, provides strong guarantees by implementing the entire toolchain in a proof assistant, but these tools are harder to build and cannot directly take advantage of SMT solver automation. As a first step toward enabling automated tools with similar foundational guarantees, we give a formal semantics in Coq for the logic fragment of Why3. We show that our semantics are useful by giving a correct-by-construction natural deduction proof system for this logic, using this proof system to verify parts of Why3’s standard library, and proving sound two of Why3’s transformations used to convert terms and formulas into the simpler logics supported by the backend solvers.
Joshua M. Cohen, Philip Johnson-Freyd
Proc. ACM Program. Lang.2
2020 Abstracting models of strong normalization for classical calculi
Paul Downen, Philip Johnson-Freyd, Zena M. Ariola
J. Log. Algebraic Methods Program.2
2017 Call-by-name extensionality and confluence
abstract
Abstract Designing rewriting systems that respect functional extensionality for call-by-name languages with effects turns out to be surprisingly challenging. Simply interpreting extensional laws like η as reduction rules easily breaks confluence. We explore these issues in the setting of a sequent calculus. Building on an insight that appears in different aspects of the theory of call-by-name functional languages—confluent rewriting for two independent control calculi and sound continuation-passing style transformations—we give a confluent reduction system for lazy extensional functions. Finally, we consider limitations to this approach when used for strict evaluation and types beyond functions.
Philip Johnson-Freyd, Paul Downen, Zena M. Ariola
J. Funct. Program.1
2015 Structures for structural recursion
abstract
Our goal is to develop co-induction from our understanding of induction, putting them on level ground as equal partners for reasoning about programs. We investigate several structures which represent well-founded forms of recursion in programs. These simple structures encapsulate reasoning by primitive and noetherian induction principles, and can be composed together to form complex recursion schemes for programs operating over a wide class of data and co-data types. At its heart, this study is guided by duality: each structure for recursion has a dual form, giving perfectly symmetric pairs of equal and opposite data and co-data types for representing recursion in programs. Duality is brought out through a framework presented in sequent style, which inherently includes control effects that are interpreted logically as classical reasoning principles. To accommodate the presence of effects, we give a calculus parameterized by a notion of strategy, which is strongly normalizing for a wide range of strategies. We also present a more traditional calculus for representing effect-free functional programs, but at the cost of losing some of the founding dualities.
Paul Downen, Philip Johnson-Freyd, Zena M. Ariola
ICFP2