All References
Revisiting Soundness for Occurrence Typing, Semantically fu-2026-revisiting
CounterChoice: Counterpoint Composition in Dusa with a Firmus Foundation erdem-2026-counterchoice
Programmable Property-Based Testing keles-2026-programmable
Regions as Continuation Marks koronkevich-2026-regions
Type-Directed Discretization of Probabilistic Programs (Extended Version) wu-2026-type
Oblivious Probabilistic Outcome Logic: Verifying Probabilistic Programs with an Oblivious Adversary chen-2026-oblivious
A Fast Quantitative Analyzer for NetKAT lu-2026-a
Verifying Isolation Levels of Database Implementations for Free Using Separation Logic mathiasen-2026-verifying
Yarrow: Reconciling Effect Handlers and Region-Based Memory Management mathiasen-2026-yarrow
Code-Specify-Test-Debug-Prove: Flexibly Integrating Separation Logic Specification into Conventional Workflows aamer-2026-code
Provably Safe Optimization of Arrival Flows Into Terminal Airspace dane-2026-provably
Longest r-chain: thinning by grouping dinges-2026-longest
Qu’est-ce que la science informatique non faite? enguehard-2026-what
Modular Verification of Differential Privacy in Probabilistic Higher-Order Separation Logic haselwarter-2026-modular
Iris-WasmFX: Modular Reasoning for Wasm Stack Switching legoupil-2026-iris
Categorical Semantics of Probabilistic Symbolic Execution li-2026-categorical
Contextual Refinement of Higher-Order Concurrent Probabilistic Programs li-2026-contextual
Syntax and semantics of focalisation with relative monads and comonads mangel-2026-syntax
Cerisier: A Program Logic for Attestation in a Capability Machine rousseau-2026-cerisier
Hofmann-Streicher lifting of fibred categories slattery-2026-hofmann
TäKōFormal: Enabling Robust Software for Programmable Memory Hierarchies srinivasan-2026-takoformal
Weighted NetKAT: A Programming Language for Quantitative Network Verification suarezacevedo-2026-weighted
Univalent Enriched Categories and the Enriched Rezk Completion vanderweide-2026-univalent
Modular models of monoids with operations by lifting functors along fibrations yang-2026-modular
Doubly Weak Double Categories fairbanks-2026-doubly
Probabilistic Floating-Point Round-Off Analysis via Concentration Inequalities tao-2026-probabilistic
Compositional Program Verification with Polynomial Functors in Dependent Type Theory aberle-2026-compositional
A Framework for Coalgebraic Reward-Sensitive Bisimulation (Extended Version) amorim-2026-a
Commuting Conversions and Join Points for Call-by-Push-Value chan-2026-commuting
Mixtris: Mechanised Higher-Order Separation Logic for Mixed Choice Multiparty Message Passing hinrichsen-2026-mixtris
Cobblestone: A Divide-and-Conquer Approach for Automating Formal Verification kasibatla-2026-cobblestone
Hybrid Systems as Coalgebras: Lyapunov Morphisms for Zeno Stability moeller-2026-hybrid
Lawyer: Modular Obligations-Based Liveness Reasoning in Higher-Order Impredicative Concurrent Separation Logic namakonov-2026-lawyer
How Vulnerable Are AI Agents to Indirect Prompt Injections? Insights from a Large-Scale Public Competition dziemian-2026-how
Grits: A message-passing programming language based on the semi-axiomatic sequent calculus francalanza-2026-grits
Normalization for multimodal type theory gratzer-2026-normalization
On Logical Extrapolation for Mazes with Recurrent and Implicit Networks knutson-2024-on
An Axiomatic Basis for Computer Programming on Relaxed Hardware Architectures: The AxSL Logics liu-2026-an
Validation of a Diabetes Subtype Classification Model Using Data from U.S. Adults Before and After the COVID-19 Pandemic lu-2026-validation
Parameterized Hardware Design with Latency-Abstract Interfaces nigam-2026-parameterized
Free quantum computing carette-2026-free
Boundary Point Jailbreaking of Black-Box LLMs davies-2026-boundary
Impredicativity in Linear Dependent Type Theory speight-2026-impredicativity
Relational Separation Logic for Compiler Verification leroy_pottier_relsep_2026
S4 modal sequent calculus as intermediate logic and intermediate language caspar-2026-s4
Can We Formalise Type Theory Intrinsically without Any Compromise? A Case Study in Cubical Agda chen_etal_2026
Normalisation for First-Class Universe Levels danielsson-2026-normalisation
Security Reasoning via Substructural Dependency Tracking gouni-2026-security
An Equational Axiomatization of Dynamic Threads via Algebraic Effects: Presheaves on Finite Relations, Labelled Posets, and Parameterized Algebraic Theories kammar-2026-an
Classical Notions of Computation and the Hasegawa-Thielecke Theorem mangel-2026-classical
Modular Specifications and Implementations of Random Samplers in Higher-Order Separation Logic marionneau-2026-modular
From Semantics to Syntax: A Type Theory for Comprehension Categories najmaei-2026-from
Handling Higher-Order Effectful Operations with Judgemental Monadic Laws yang-2026-handling
Probabilistic Concurrent Reasoning in Outcome Logic: Independence, Conditioning, and Invariants zilberstein-2026-probabilistic
Intrinsically Correct Algorithms and Recursive Coalgebras alexandruIntrinsicallyCorrectAlgorithms2025-preprint
A Data Type of Intrinsically Plane Graphs in Agda altenmuller-2026-a
Adequate Losses via Quantitative Linear Logic capucci-2026-adequate
Compositionality of Lyapunov functions via assume-guarantee reasoning capucci-2026-compositionality
A General Framework for Robust Quantitative Semantics of Signal Temporal Logic chen-2026-a
Metric properties of partial and robust Gromov-Wasserstein distances chhoa-2024-metric
Linear Effects, Exceptions, and Resource Safety: A Curry-Howard Correspondence for Destructors congard-2026-linear
Exploring a Mechanism-Based Therapeutic Approach for ZC4H2 Haploinsufficiency crowder-2026-exploring
Towards Formal Verification of Hybrid Synchronous Programs with Refinement Types dane-2026-towards
Verifying Exact Samplers for Continuous Distributions with a Discrete Program Logic demedeiros-2026-verifying
SMT-Based Active Learning of Weighted Automata ferreira-2026-smt
Quantitative Linear Logic for Neuro-Symbolic Learning and Verification flinkow-2026-quantitative
The ∞-Category of ∞-Categories in Simplicial Type Theory gratzer-2026-the
Fat Cell Structures and Generalized Algebraic Theories huang-2026-fat
Automatic Certification of the Active Corner Method for Collision Avoidance kheterpal-2026-automatic
A dependently-typed calculus of event telicity and culminativity kovalev-2026-a
Mechanizing Synthetic Tait Computability in Istari li_etal_2025
Verifying Wait-Freedom for Concurrent Higher-Order Programs namakonov-2026-verifying
2-dimensional Lawvere theories, commutativity, and higher Day convolution perutka_2026
Divide and Check: Logical Relations, No Algorithms Attached poiret_etal_2026
Day algebras robinson_wrigley_2026
Ordered Adjoint Logic roshal-2026-ordered
A Diagrammatic Axiomatisation of Behavioural Distance of Nondeterministic Processes rozowski-2026-a
LatticeVision: Image to Image Networks for Modeling Non-Stationary Spatial Data sikorski-2025-latticevision
Reflexive graph lenses in univalent foundations sterling-2026-reflexive
A Complete Diagrammatic Calculus for Conditional Gaussian Mixtures torresruiz-2026-a
The Rezk Completion for Elementary Topoi wullaert-2026-the
Outrunning Big KATs: Efficient Decision Procedures for Variants of GKAT zhang-2026-outrunning
Polynomial Universes in Homotopy Type Theory aberle-2025-polynomial
Recipe: Hardware-Accelerated Replication Protocols: Rethinking Crash Fault Tolerance Protocols for Untrusted Cloud Environments giantsidi-2025-recipe
Canonical bidirectional typechecking mihejevs-2025-canonical
Context-Dependent Effects and Concurrency in Guarded Interaction Trees stepanenko-2025-context
Initial Algebras of Domains via Quotient Inductive-Inductive Types vancollem-2025-initial
The free bifibration on a functor clarke-2025-the
Game Behaviour Trees Using Tile Rewrite Rules facey-2025-game
Modular abstract syntax trees (MAST): substitution tensors with second-class sorts fiore-2025-modular
Kleene Algebra kappe-2025-kleene
Mathematicians put AI model AlphaProof to the test ringer-2025-mathematicians
Mechanizing a Proof-Relevant Logical Relation for Timed Message-Passing Protocols zhang-2025-mechanizing
Internalizing Extensions in Lattices of Type Theories chan-2025-internalizing
CoLF Logic Programming as Infinitary Proof Exploration chen-2025-colf
Structural Information Flow: A Fresh Look at Types for Non-interference gouni-2025-structural
Place Capability Graphs: A General-Purpose Model of Rust’s Ownership and Borrowing Guarantees grannan-2025-place
maze-dataset: Maze Generation with Algorithmic Variety and Representational Flexibility ivanitskiy-2025-maze
Quantifiers for Differentiable Logics in Rocq (Extended Abstract) marulandagiraldo-2025-quantifiers
Colored Petri Nets are Monoidal Double Functors master-2025-colored
Scaling Instruction-Selection Verification against Authoritative ISA Semantics mcloughlin-2025-scaling
Syntactic Completions with Material Obligations moon-2025-syntactic
A FAIR Case for a Live Computational Commons omar-2025-a
Incremental Bidirectional Typing via Order Maintenance porter-2025-incremental
Proof Repair across Quotient Type Equivalences viola-2025-proof
From Linearity to Borrowing wagner-2025-from
Hazel Deriver: A Live Editor for Constructing Rule-Based Derivations zhong-2025-hazel
Double Orthogonal Factorization Systems aberle-2025-double
Organizing Physics with Open Energy-Driven Systems capucci-2025-organizing
Reinforcement Learning in Categorical Cybernetics hedges-2025-reinforcement
Dependent-Type-Preserving Memory Allocation koronkevich-2025-dependent
Confidential computing for population-scale genome-wide association studies with SECRET-GWAS rosenblum-2025-confidential
Frex: Dependently Typed Algebraic Simplification allais-2025-frex
Reasoning about Weak Isolation Levels in Separation Logic alnormathiasen-2025-reasoning
Truly Functional Solutions to the Longest Uptrend Problem (Functional Pearl) dinges-2025-truly
Type Theory in Type Theory using a Strictified Syntax kaposi_pujet_2025
Fulls Seldom Differ koch-2025-fulls
Type Universes as Kripke Worlds koronkevich-2025-type
Modular Reasoning about Error Bounds for Concurrent Probabilistic Programs li-2025-modular
Asymptotic distribution of parameters in trivalent maps and linear lambda terms bodini-2025-asymptotic
One Weird Trick to Untie Landin’s Knot koronkevich-2025-one
DeckFlow: Iterative Specification on a Multimodal Generative Canvas croisdale-2025-deckflow
Verified Foundations for Differential Privacy demedeiros-2025-verified
Substructural Abstract Syntax with Variable Binding and Single-Variable Substitution fiore-2025-substructural
The Yoneda embedding in simplicial type theory gratzer-2025-the
Intrinsic Verification of Parsers and Formal Grammar Theory in Dependent Lambek Calculus intrinsic-verification-of-parsers
We present Dependent Lambek Calculus (Lambek), a domain-specific dependent type theory for verified parsing and formal grammar theory. In Lambek, linear types are used as a syntax for formal grammars, and parsers can be written as linear terms. The linear typing restriction provides a form of intrinsic verification that a parser yields only valid parse trees for the input string. We demonstrate the expressivity of this system by showing that the combination of inductive linear types and dependency on non-linear data can be used to encode commonly used grammar formalisms such as regular and context-free grammars as well as traces of various types of automata. Using these encodings, we define parsers for regular expressions using deterministic automata, as well as examples of verified parsers of context-free grammars.
We present a denotational semantics of our type theory that interprets the linear types as functions from strings to sets of abstract parse trees and terms as parse transformers. Based on this denotational semantics, we have made a prototype implementation of Lambek using a shallow embedding in the Agda proof assistant. All of our examples parsers have been implemented in this prototype implementation.
StacKAT: Infinite State Network Verification jacobs-2025-stackat
Scoped Effects, Scoped Operations, and Parameterized Algebraic Theories matache-2025-scoped
Active Learning of Symbolic NetKAT Automata moeller-2025-active
Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming moy-2025-roulette
When is the partial map classifier a Sierpiński cone? pugh-2025-when
Precise exceptions in relaxed architectures simner-2025-precise
Hofmann-Streicher lifting of fibred categories slattery-2025-hofmann
The internal languages of univalent categories vanderweide-2025-the
A Language-Agnostic Logical Relation for Message-Passing Protocols zhang-2025-a
Categorical Lyapunov Theory II: Stability of Systems ames-2025-categorical
A Brookes-Style Denotational Semantics for Release/Acquire Concurrency dvir-2025-a
Preserving model structure and constraints in scientific computing forbes-2025-preserving
HybridProver: Augmenting Theorem Proving with LLM-Driven Proof Synthesis and Refinement hu-2025-hybridprover
LabMate: A prospectus for types for MATLAB mcbride-2025-labmate
The categorical contours of the Chomsky-Schützenberger representation theorem mellies-2025-the
Formally Verified Cloud-Scale Authorization chakarov-2025-formally
Type-Preserving Flat Closure Optimization geller-2025-type
ZIPNet: Low-bandwidth anonymous broadcast from (dis)Trusted Execution Environments rosenberg-2025-zipnet
QEDCartographer: Automating Formal Verification Using Reward-Free Reinforcement Learning sanchezstern-2025-qedcartographer
The Many Views of Game-Related Experiences with the Experiential Tetrad soraine-2025-the
Multi-Language Probabilistic Programming stites-2025-multi
Categorical Lyapunov Theory I: Stability of Flows ames-2025-categoricalx
Stop treating ‘AGI’ as the north-star goal of AI research blilihamelin-2025-stop
Bounded First-Class Universe Levels in Dependent Type Theory chan-2025-bounded
Anti-Parkinsonian Drugs Rescue Locomotor Deficits in JIP3 Knockout Zebrafish: Implications for Treating Patients with MAPK8IP3 -related Neurodevelopmental Disorders foksinska-2025-anti
The Formal Theory of Monads, Univalently vanderweide-2025-thex
Grove: A Bidirectionally Typed Collaborative Structure Editor Calculus adams-2025-grove
The Univalence Principle ahrens-2021-the
Intrinsically Correct Sorting in Cubical Agda alexandruIntrinsicallyCorrectSorting2025
Tail Modulo Cons, OCaml, and Relational Separation Logic allain_etal_tmc_2025
Common functional languages incentivize tail-recursive functions, as opposed to general recursive functions that consume stack space and may not scale to large inputs. This distinction occasionally requires writing functions in a tail-recursive style that may be more complex and slower than the natural, non-tail-recursive definition.
This work describes our implementation of the tail modulo constructor (TMC) transformation in the OCaml compiler, an optimization that provides stack-efficiency for a larger class of functions — tail-recursive modulo constructors — which includes in particular the natural definition of List.map and many similar recursive data-constructing functions.
We prove the correctness of this program transformation in a simplified setting — a small untyped calculus — that captures the salient aspects of the OCaml implementation. Our proof is mechanized in the Coq proof assistant, using the Iris base logic. An independent contribution of our work is an extension of the Simuliris approach to define simulation relations that support different calling conventions. To our knowledge, this is the first use of Simuliris to prove the correctness of a compiler transformation.
Fulminate: Testing CN Separation-Logic Specifications in C banerjee-2025-fulminate
A Modal Deconstruction of Löb Induction gratzer-2025-a
Consistency of a Dependent Calculus of Indistinguishability liu-2025-consistency
Finite-Choice Logic Programming martens-2025-finite
Modelling Recursion and Probabilistic Choice in Guarded Type Theory stassen-2025-modelling
The Nextgen Modality: A Modality for Non-Frame-Preserving Updates in Separation Logic vindum-2025-the
CF-GKAT: Efficient Validation of Control-Flow Transformations zhang-2025-cf
A Demonic Outcome Logic for Randomized Nondeterminism zilberstein-2025-a
Substructural Parametricity aberle-2025-substructural
Denotational Foundations for Expected Cost Analysis amorim_2025_oopsla
Reasoning about the cost of executing programs is one of the fundamental questions in computer science. In the context of programming with probabilities, however, the notion of cost stops being deterministic, since it depends on the probabilistic samples made throughout the execution of the program. This interaction is further complicated by the non-trivial interaction between cost, recursion and evaluation strategy.
In this work we introduce cert: a Call-By-Push-Value (CBPV) metalanguage for reasoning about probabilistic cost. We equip cert with an operational cost semantics and define two denotational semantics — a cost semantics and an expected-cost semantics. We prove operational soundness and adequacy for the denotational cost semantics and a cost adequacy theorem for the expected-cost semantics.
We formally relate both denotational semantics by stating and proving a novel effect simulation property for CBPV. We also prove a canonicity property of the expected-cost semantics as the minimal semantics for expected cost and probability by building on recent advances on monadic probabilistic semantics.
Finally, we illustrate the expressivity of cert and the expected-cost semantics by presenting case-studies ranging from randomized algorithms to stochastic processes and show how our semantics capture their intended expected cost.
The Compositional Essence of Effectful Cost Analyses: Categorical Foundations and Fibered Logical Relations amorim_effcost
Separated and Shared Effects in Higher-Order Languages amorim_hsu_independent
Logical relations for call-by-push-value models, via internal fibrations in a 2-category amorim_kura_saville_2025
We give a denotational account of logical relations for call-by-push-value (CBPV) in the fibrational style of Hermida, Jacobs, Katsumata and others. Fibrations – which axiomatise the usual notion of sets-with-relations – provide a clean framework for constructing new, logical relations-style, models. Such models can then be used to study properties such as effect simulation.
Extending this picture to CBPV is challenging: the models incorporate both adjunctions and enrichment, making the appropriate notion of fibration unclear. We handle this using 2-category theory. We identify an appropriate 2-category, and define CBPV fibrations to be fibrations internal to this 2-category which strictly preserve the CBPV semantics.
Next, we develop the theory so it parallels the classical setting. We give versions of the codomain and subobject fibrations, and show that new models can be constructed from old ones by pullback. The resulting framework enables the construction of new, logical relations-style, models for CBPV.
Finally, we demonstrate the utility of our approach with particular examples. These include a generalisation of Katsumata’s -lifting to CBPV models, an effect simulation result, and a relative full completeness result for CBPV without sum types.
Classical Linear Logic in Perfect Banach Lattices amorim_witzman_kozen_2025
AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents andriushchenko-2024-agentharm
Kleene Algebra with Commutativity Conditions Is Undecidable azevedodeamorim-2025-kleene
A Bayesian Interpretation of the Internal Model Principle baltieri-2025-a
Formal P-Category Theory and Normalization by Evaluation in Rocq berry_fiore_2025
The Equational Theories Project: Advancing Collaborative Mathematical Research at Scale bolan-2025-the
Impredicative Encodings of Inductive and Coinductive Types bronsveld-2025-impredicative
Stratified Type Theory chan-2025-stratified
Polymorphism with Typed Holes chen-2025-polymorphism
Fundamental Limitations in Pointwise Defences of LLM Finetuning APIs davies-2025-fundamental
Binary search—think positive dinges-2025-binary
Two-sorted algebraic decompositions of Brookes’s shared-state denotational semantics dvir-2025-two
Coverage Semantics for Dependent Pattern Matching eremondi-2025-coverage
An axiomatics and a combinatorial model of creation/annihilation operators fiore-2025-an
Turner, Bird, Eratosthenes: An eternal burning thread gibbons-2025-turner
Denotational Semantics of Gradual Typing using Synthetic Guarded Domain Theory giovannini_ding_new_2025
Gradually typed programming languages, which allow for soundly mixing static and dynamically typed programming styles, present a strong challenge for metatheorists. Even the simplest sound gradually typed languages feature at least recursion and errors, with realistic languages featuring furthermore runtime allocation of memory locations and dynamic type tags. Further, the desired metatheoretic properties of gradually typed languages have become increasingly sophisticated: validity of type-based equational reasoning as well as the relational property known as graduality. Many recent works have tackled verifying these properties, but the resulting mathematical developments are highly repetitive and tedious, with few reusable theorems persisting across different developments.
In this work, we present a new denotational semantics for gradual typing developed using guarded domain theory. Guarded domain theory combines the generality of step-indexed logical relations for modeling advanced programming features with the modularity and reusability of denotational semantics. We demonstrate the feasibility of this approach with a model of a simple gradually typed lambda calculus and prove the validity of beta-eta equality and the graduality theorem for the denotational model. This model should provide the basis for a reusable mathematical theory of gradually typed program semantics. Finally, we have mechanized most of the core theorems of our development in Guarded Cubical Agda, a recent extension of Agda with support for the guarded recursive constructions we use.
Controlling unfolding in type theory gratzer-2025-controlling
Idempotent Resources in Separation Logic: The Heart of core in Iris gratzer-2025-idempotent
Hybrid Obfuscated Key Exchange and KEMs gunther-2025-hybrid
PAKE Combiners and Efficient Post-quantum Instantiations hesse-2025-pake
The graphical theory of monads hinze-2025-the
Notions of Stack-manipulating Computation and Relative Monads jiang_xue_new_2025
Monads provide a simple and concise interface to user-defined computational effects in functional programming languages. This enables equational reasoning about effects, abstraction over monadic interfaces and the development of monad transformer stacks to allow for multiple effects. Compiler implementors and assembly code programmers similarly virtualize effects, and would benefit from similar abstractions if possible. However, the implementation details of effects seem disconnected from the high-level monad interface: at this lower level much of the design is in the layout of the runtime stack, which is not accessible in a high-level programming language.
We demonstrate that the monadic interface can be faithfully adapted from high-level functional programming to a lower level setting with explicit stack manipulation. We use a polymorphic call-by-push-value (CBPV) calculus as a setting that captures the essence of stack-manipulation, with a type system that allows programs to define domain-specific stack structures. Within this setting, we show that the existing category-theoretic notion of a relative monad can be used to model the stack-based implementation of computational effects. To demonstrate generality, we adapt a variety of standard monads to relative monads. Additionally, we show that stack-manipulating programs can benefit from a generalization of do-notation we call “monadic blocks” that allow all CBPV code to be reinterpreted to work with an arbitrary relative monad. As an application, we show that all relative monads extend automatically to relative monad transformers, a process which is not automatic for monads in pure languages.
Displayed type theory and semi-simplicial types kolomatskaia-2025-displayed
Semantics of pattern unification lafont-2026-semantics
Insights from Univalent Foundations: A Case Study Using Double Categories rasekh-2025-insights
State of the Practice for Medical Imaging Software Based on Open Source Repositories smith-2025-state
Context-Dependent Effects in Guarded Interaction Trees stepanenko-2025-contextx
Solving Guarded Domain Equations in Presheaves over Ordinals and Mechanizing It stepanenko-2025-solving
Towards Computational UIP in Cubical Agda tan_etal_2025
Some advantages of Cubical Type Theory, as implemented by Cubical Agda, over intensional Martin-Löf Type Theory include Quotient Inductive Types (QITs), which exist as instances of Higher Inductive Types, and functional extensionality, which is provable in Cubical Type Theory. However, HoTT features an infinite hierarchy of equalities that may become unwieldy in formalisations. Fortunately, QITs and functional extensionality are both preserved even if the equality levels of Cubical Type Theory are truncated to only homotopical Sets (h-Sets). In other words, removing the univalence axiom from Cubical Type Theory and instead postulating a conflicting axiom: the Uniqueness of Identity Proofs (UIP) postulate. Since univalence is proved in Cubical Type Theory from the so-called Glue Types, therefore, it is known that one can first remove the Glue Types (thus removing univalence) and then set-truncate all equalities (essentially assuming UIP), à la XTT. The result is a “h-Set Cubical Type Theory” that retains features such as functional extensionality and QITs.
However, in Cubical Agda, there are currently only two unsatisfying ways to achieve h-Set Cubical Type Theory. The first is to give up on the canonicity of the theory and simply postulate the UIP axiom, while the second way is to use a standard result stating “type formers preserve h-levels” to manually prove UIP for every defined type. The latter is, however, laborious work best suited for an automatic implementation by the proof assistant. In this project, we analyse formulations of UIP and detail their computation rules for Cubical Agda, and evaluate their suitability for implementation. We also implement a variant of Cubical Agda without Glue, which is already compatible with postulated UIP, in anticipation of a future implementation of UIP in Cubical Agda.
Weighted GKAT: Completeness and Complexity vankoevering-2025-weighted
A “good regulator theorem” for embodied agents virgo-2025-a
Cazamariposas: Automated Instability Debugging in SMT-Based Program Verification zhou-2025-cazamariposas
Denotational Semantics for Probabilistic and Concurrent Programs zilberstein-2025-denotational
Unifying cubical and multimodal type theory aagaard-2024-unifying
Parametricity via Cohesion aberle-2024-parametricity
AlphaVerus: Bootstrapping Formally Verified Code Generation through Self-Improving Translation and Treefinement aggarwal-2024-alphaverus
A Semantic Proof of Generalised Cut Elimination for Deep Inference atkey-2024-a
On a fibrational construction for optics, lenses, and Dialectica categories capucci-2024-onx
A Saturation-Based Unification Algorithm for Higher-Order Rational Patterns chen-2024-a
Cost-sensitive computational adequacy of higher-order recursion in synthetic domain theory niu-2024-cost
Hekaton: Horizontally-Scalable zkSNARKs Via Proof Aggregation rosenberg-2024-hekaton
Transformers Use Causal World Models in Maze-Solving Tasks spies-2024-transformers
The Denotational Semantics of SSA ghalayini-2024-the
Verus: A Practical Foundation for Systems Verification lattuada-2024-verus
A Logical Approach to Type Soundness timany-2024-a
2-Rig Extensions and the Splitting Principle baez-2024-2
Statically Contextualizing Large Language Models with Typed Holes blinn-2024-statically
Logical Structure on Inverse Functor Categories fiore-2024-logical
The category of iterative sets in homotopy type theory and univalent foundations gratzer-2024-the
Tachis: Higher-Order Separation Logic with Credits for Expected Costs haselwarter-2024-tachis
Unifying Static and Dynamic Intermediate Languages for Accelerator Generators kim-2024-unifying
FlowCert: Translation Validation for Asynchronous Dataflow via Dynamic Fractional Permissions lin-2024-flowcert
Proofs and Conversations ringer-2024-proofs
Privacy Policies on the Fediverse: A Case Study of Mastodon Instances tosch-2024-privacy
Error Credits: Resourceful Reasoning about Error Bounds for Higher-Order Probabilistic Programs aguirre-2024-error
How to Bake a Quantum Π carette-2024-how
Toward a Geometry for Syntax sterling-2024-toward
Directed univalence in simplicial homotopy type theory gratzer-2024-directed
Type Universes as Allocation Effects koronkevich-2024-type
Early Adoption of Generative Artificial Intelligence in Computing Education: Emergent Student Use Cases and Perspectives in 2023 smith-2024-early
Verified Extraction from Coq to OCaml forster_etal_2024
Modeling Game Mechanics With Ceptre martens-2024-modeling
Authoring Games with Tile Rewrite Rule Behavior Trees zhou-2024-authoring
On the complexity of normalization for the planar -calculus das-2024-on
Toleo: Scaling Freshness to Tera-scale Memory Using CXL and PIM dong-2024-toleo
Characteristics and determinants of pulmonary long COVID patton-2024-characteristics
Rendering string diagrams recursively rubiomadrigal-2024-rendering
(Co)condition hits the Path zhang-2024-co
WatChat: Explaining perplexing programs by debugging mental models chandra-2024-watchat
Profunctor Optics, a Categorical Update clarke-2024-profunctor
Stabilized profunctors and stable species of structures fiore-2024-stabilized
Cerise: Program Verification on a Capability Machine in the Presence of Untrusted Code georges-2024-cerise
Strange new universes: Proof assistants and synthetic foundations shulman-2024-strange
Foundations of Substructural Dependent Type Theory aberle-2024-foundations
Displayed Monoidal Categories for the Semantics of Linear Logic ahrens-2024-displayed
Internal Parametricity, without an Interval altenkirch-2024-internal
Polynomial Time and Dependent Types atkey-2024-polynomial
With a Few Square Roots, Quantum Computing Is as Easy as Pi carette-2024-with
Parametric Subtyping for Structural Parametric Polymorphism deyoung-2024-parametric
Generating Well-Typed Terms That Are Not “Useless” frank-2024-generating
Modular Denotational Semantics for Effects with Guarded Interaction Trees frumin-2024-modular
Indexed Types for a Statically Safe WebAssembly geller-2024-indexed
Decalf: A Directed, Effectful Cost-Aware Logical Framework grodin-2024-decalf
Algebraic Effects Meet Hoare Logic in Cubical Agda kidney-2024-algebraic
Internalizing Indistinguishability with Dependent Types liu-2024-internalizing
Shoggoth: A Formal Foundation for Strategic Rewriting qin-2024-shoggoth
The Essence of Generalized Algebraic Data Types sieczkowski-2024-the
The Logical Essence of Well-Bracketed Control Flow timany-2024-the
Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement timany-2024-trillium
Univalent Double Categories vanderweide-2024-univalent
Total Type Error Localization and Recovery with Holes zhao-2024-total
ACGtk: A toolkit for developing and running abstract categorial grammars Guillaume2024
SAT-based quantified symmetric minimization of the reachable states of distributed protocols: An update LuoSatBasedQuantifiedSymmetric
A Fibrational Theory of First Order Differential Structures capucci-2024-a
Contextads as Wreaths; Kleisli, Para, and Span Constructions as Wreath Products capucci-2024-contextads
On Quantifiers for Quantitative Reasoning capucci-2024-on
Compositional Reversible Computation carette-2024-compositional
A Framework for Debugging Automated Program Verification Proofs via Proof Actions cho-2024-a
The Cubical Agda Library cubicalagdalib
A Denotational Approach to Release/Acquire Concurrency dvir-2024-a
Implementing a Message-Passing Interpretation of the Semi-Axiomatic Sequent Calculus (Sax) francalanza-2024-implementing
Fundamental Components of Deep Learning: A category-theoretic approach gavranovicFundamentalComponentsDeep
Adjoint Natural Deduction jang-2024-adjoint
LATKE: A Framework for Constructing Identity-Binding PAKEs katz-2024-latke
Scoped Effects as Parameterized Algebraic Theories lindley-2024-scoped
Correctly Compiling Proofs About Programs Without Proving Compilers Correct seo-2024-correctly
Towards Univalent Reference Types: The Impact of Univalence on Denotational Semantics sterling-2024-towards
Formalization of Asymptotic Convergence for Stationary Iterative Methods tekriwal-2024-formalization
Formally verified asymptotic consensus in robust networks tekriwal-2024-formally
The Interval Domain in Homotopy Type Theory vanderweide-2024-the
Domain Reasoning in TopKAT zhang-2024-domain
Identifying and Mitigating the Security Risks of Generative AI barrett-2023-identifying
Focusing on Refinement Typing economou-2023-focusing
Spike Solutions to the Supercritical Fractional Gierer–Meinhardt System gomez-2023-spike
Structured World Representations in Maze-Solving Transformers ivanitskiy-2023-structured
A denotationally-based program logic for higher-order store aagaard-2023-a
Fixpoint constructions in focused orthogonality models of linear logic fiore-2023-fixpoint
Baldur: Whole-Proof Generation and Repair with Large Language Models first-2023-baldur
Semantics of multimodal adjoint type theory shulman-2023-semantics
Dependent Type Refinements for Futures somayyajula-2023-dependent
Security Verification of Low-Trust Architectures tan-2023-security
Three non-cubical applications of extension types zhang-2023-three
Galápagos: Developing Verified Low Level Cryptography on Heterogeneous Hardwares zhou-2023-galapagos
Grove: A Separation-Logic Library for Verifying Distributed Systems sharmaGroveSeparationLogicLibrary2023
Bicategorical type theory: semantics and syntax ahrens-2023-bicategorical
Bayesian open games bolt-2023-bayesian
Curbing the Vulnerable Parser: Graded Modal Guardrails for Secure Input Handling bond-2023-curbing
Intuitionistic Metric Temporal Logic desa-2023-intuitionistic
Leaf: Modularity for Temporary Sharing in Separation Logic hance-2023-leaf
Siloz: Leveraging DRAM Isolation Domains to Prevent Inter-VM Rowhammer loughlin-2023-siloz
Probabilistic Logic Programming Semantics For Procedural Content Generation madkour-2023-probabilistic
Saggitarius: A DSL for Specifying Grammatical Domains miltner-2023-saggitarius
Gradual Structure Editing with Obligations moon-2023-gradual
A Configurable Library for Generating and Manipulating Maze Datasets ivanitskiy-2023-a
Two tricks to trivialize higher-indexed families zhang-2023-two
Diegetic Representation of Feedback in Open Games capucci-2023-diegetic
What’s in a Bag?: An “Application Proving Interface” for Finite Bags and its Implementation dinges-2023-what
Explicit Refinement Types ghalayini-2023-explicit
Verifying Reliable Network Components in a Distributed Separation Logic with Dependent Separation Protocols gondelman-2023-verifying
Value Iteration is Optic Composition hedges-2023-value
A Dependently Typed Language with Dynamic Equality lemay-2023-a
State of the Practice for Lattice Boltzmann Method Software smith-2023-state
Investigating the Impact of On-Demand Code Examples on Novices’ Open-Ended Programming Experience wang-2023-investigating
Modular Models of Monoids with Operations yang-2023-modular
Introducing String Diagrams: The Art of Category Theory hinze-2023-introducing
Architecture-Preserving Provable Repair of Deep Neural Networks taoArchitecturePreservingProvableRepair2023
Coqlex: Generating formally verified lexers Ouedraogo_2023
A compiler consists of a sequence of phases going from lexical analysis to code generation. Ideally, the formal verification of a compiler should include the formal verification of each component of the tool-chain. An example is the CompCert project, a formally verified C compiler, that comes with associated tools and proofs that allow to formally verify most of those components.
However, some components, in particular the lexer, remain unverified. In fact, the lexer of Compcert is generated using OCamllex, a lex-like OCaml lexer generator that produces lexers from a set of regular expressions with associated semantic actions. Even though there exist various approaches, like CakeML or Verbatim++, to write verified lexers, they all have only limited practical applicability.
In order to contribute to the end-to-end verification of compilers, we implemented a generator of verified lexers whose usage is similar to OCamllex. Our software, called Coqlex, reads a lexer specification and generates a lexer equipped with a Coq proof of its correctness. It provides a formally verified implementation of most features of standard, unverified lexer generators.
The conclusions of our work are two-fold: Firstly, verified lexers gain to follow a user experience similar to lex/flex or OCamllex, with a domain-specific syntax to write lexers comfortably. This introduces a small gap between the written artifact and the verified lexer, but our design minimizes this gap and makes it practical to review the generated lexer. The user remains able to prove further properties of their lexer. Secondly, it is possible to combine simplicity and decent performance. Our implementation approach that uses Brzozowski derivatives is noticeably simpler than the previous work in Verbatim++ that tries to generate a deterministic finite automaton (DFA) ahead of time, and it is also noticeably faster thanks to careful design choices.
We wrote several example lexers that suggest that the convenience of using Coqlex is close to that of standard verified generators, in particular, OCamllex. We used Coqlex in an industrial project to implement a verified lexer of Ada. This lexer is part of a tool to optimize safety-critical programs, some of which are very large. This experience confirmed that Coqlex is usable in practice, and in particular that its performance is good enough. Finally, we performed detailed performance comparisons between Coqlex, OCamllex, and Verbatim++. Verbatim++ is the state-of-the-art tool for verified lexers in Coq, and the performance of its lexer was carefully optimized in previous work by Egolf and al. (2022). Our results suggest that Coqlex is two orders of magnitude slower than OCamllex, but two orders of magnitude faster than Verbatim++.
Verified compilers and other language-processing tools are becoming important tools for safety-critical or security-critical applications. They provide trust and replace more costly approaches to certification, such as manually reading the generated code. Verified lexers are a missing piece in several Coq-based verified compilers today. Coqlex comes with safety guarantees, and thus shows that it is possible to build formally verified front-ends.
Lilac: A Modal Separation Logic for Conditional Probability li-2023-lilac
Passport: Improving Automated Formal Verification Using Identifiers sanchezstern-2023-passport
A Case Study on When and How Novices Use Code Examples in Open-Ended Programming wang-2023-a
flap: A Deterministic Parser with Fused Lexing yallop-2023-flap
Performal: Formal Verification of Latency Properties for Distributed Systems zhang-2023-performal
Interval Parsing Grammars for File Format Parsing zhangIntervalParsingGrammars2023
PRoofster: Automated Formal Verification agrawal-2023-proofster
How Do We Read Formal Claims? Eye-Tracking and the Cognition of Proofs about Algorithms ahmad-2023-how
Owl: Compositional Verification of Security Protocols via an Information-Flow Type System gancher-2023-owl
zk-creds: Flexible Anonymous Credentials from zkSNARKs and Existing Identity Infrastructure rosenberg-2023-zk
Getting More out of Large Language Models for Proofs zhang-2023-getting
UNDER LOCK AND KEY: A PROOF SYSTEM FOR A MULTIMODAL LOGIC kavvos-2023-under
Verus: Verifying Rust Programs using Linear Ghost Types lattuada-2023-verus
Long-Term Mentoring for Computer Science Researchers ruppel-2023-long
LNL polycategories and doctrines of linear logic shulman-2023-lnl
Live Pattern Matching with Typed Holes yuan-2023-live
Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasoning zilberstein-2023-outcome
A Formalization of Operads in Coq flores-2023-a
Composing games into complex institutions frey-2023-composing
A Primer in Precision Nephrology: Optimizing Outcomes in Kidney Health and Disease through Data-Driven Medicine jayaraman-2023-a
Measuring with confidence: leveraging expressive type systems for correct-by-construction software mcbride-2023-measuring
Compositional thermostatics baez-2023-compositional
Free Commutative Monoids in Homotopy Type Theory choudhury-2023-free
Data Layout from a Type-Theoretic Perspective deyoung-2023-data
A Formal Algebraic Framework for DSL Composition flores-2023-ax
Stepwise Debugging for Hardware Accelerators berlstein-2023-stepwise
Symbolic Execution of Hadamard-Toffoli Quantum Circuits carette-2023-symbolic
Compiling Higher-Order Specifications to SMT Solvers: How to Deal with Rejection Constructively daggitt-2023-compiling
An Order-Theoretic Analysis of Universe Polymorphism houfavonia-2023-an
CN: Verifying Systems C Code with Separation-Logic Refinement Types pulte-2023-cn
What should a generic object be? sterling-2023-what
A Higher-Order Language for Markov Kernels and Linear Operators amorim_2023_fossacs
Much work has been done to give semantics to probabilistic programming languages. In recent years, most of the semantics used to reason about probabilistic programs fall in two categories: semantics based on Markov kernels and semantics based on linear operators.
Both styles of semantics have found numerous applications in reasoning about probabilistic programs, but they each have their strengths and weaknesses. Though it is believed that there is a connection between them there are no languages that can handle both styles of programming.
In this work we address these questions by defining a two-level calculus and its categorical semantics which makes it possible to program with both kinds of semantics. From the logical side of things we see this language as an alternative resource interpretation of linear logic, where the resource being kept track of is sampling instead of variable use.
Convolution Products on Double Categories and Categorification of Rule Algebras behr-2023-convolution
For the Metatheory of Type Theory, Internal Sconing Is Enough bocquet_etal_2023
Metatheorems about type theories are often proven by interpreting the syntax into models constructed using categorical gluing. We propose to use only sconing (gluing along a global section functor) instead of general gluing. The sconing is performed internally to a presheaf category, and we recover the original glued model by externalization.
Our method relies on constructions involving two notions of models: first-order models (with explicit contexts) and higher-order models (without explicit contexts). Sconing turns a displayed higher-order model into a displayed first-order model.
Using these, we derive specialized induction principles for the syntax of type theory. The input of such an induction principle is a boilerplate-free description of its motives and methods, not mentioning contexts. The output is a section with computation rules specified in the same internal language. We illustrate our framework by proofs of canonicity and normalization for type theory.
The Compositional Structure of Bayesian Inference braithwaite-2023-the
Generating Software for Well-Understood Domains carette-2023-generating
Is sized typing for Coq practical? chan-2023-is
A Logical Framework with Higher-Order Rational (Circular) Terms chen-2023-a
A two-level linear dependent type theory fu2023twolevellineardependenttype
Formalized High Level Synthesis with Applications to Cryptographic Hardware harrison-2023-formalized
The Game Semantics of Game Theory hedges-2023-the
Certified, total serialisers with an application to Huffman encoding hinze-2023-certified
Verified ALL(*) Parsing with Semantic Actions and Dynamic Input Validation lasserCoStar2023
Gradual Typing for Effect Handlers new_giovannini_licata_2023
We present a gradually typed language, GrEff, with effects and handlers that supports migration from unchecked to checked effect typing. This serves as a simple model of the integration of an effect typing discipline with an existing effectful typed language that does not track fine-grained effect information. Our language supports a simple module system to model the programming model of gradual migration from unchecked to checked effect typing in the style of Typed Racket.
The surface language GrEff is given semantics by elaboration to a core language Core GrEff. We equip Core GrEff with an inequational theory for reasoning about the semantic error ordering and desired program equivalences for programming with effects and handlers. We derive an operational semantics for the language from the equations provable in the theory. We then show that the theory is sound by constructing an operational logical relations model to prove the graduality theorem. This extends prior work on embedding-projection pair models of gradual typing to handle effect typing and subtyping.
A Formal Logic for Formal Category Theory new_licata_2023
Modular Verification of State-Based CRDTs in Separation Logic nieto-2023-modular
Modular Hardware Design with Timeline Types nigam_amorim_sampson_2023
Classifying topoi in synthetic guarded domain theory: the universal property of multi-clock guarded recursion palombi_sterling_2023
Relating Message Passing and Shared Memory, Proof-Theoretically pfenning-2023-relating
A Concurrent Switching Model for Traffic Congestion Control rastgoftar-2023-a
Proof Repair Infrastructure for Supervised Models: Building a Large Proof Repair Dataset reichel-2023-proof
mitten: A Flexible Multimodal Proof Assistant stassen-2023-mitten
Verified Correctness, Accuracy, and Convergence of a Stationary Iterative Linear Solver: Jacobi Method tekriwal-2023-verified
Exploring Consequences of Privacy Policies with Narrative Generation via Answer Set Programming dabral-2022-exploring
Interpreting Neural Networks through the Polytope Lens black-2022-interpreting
Towards Foundations of Categorical Cybernetics capucci-2022-towards
Translating Extensive Form Games to Open Games with Agency capucci-2022-translating
Synchronous Programming and Refinement Types in Robotics: From Verification to Implementation chen-2022-synchronous
Towards Verified Rounding Error Analysis for Stationary Iterative Methods kellison-2022-towards
Peritext: A CRDT for Collaborative Rich Text Editing litt-2022-peritext
Contextualized Programming Language Documentation potter-2022-contextualized
Work-in-Progress: Towards a Theory of Robust Quantitative Semantics for Signal Temporal Logic jeannin-2022-work
What Lies Beneath—A Survey of Affective Theory Use in Computational Models of Emotion smith-2022-what
RustViz: Interactively Visualizing Ownership and Borrowing almeida-2022-rustviz
An Integrative Human-Centered Architecture for Interactive Programming Assistants blinn-2022-an
Dependent Bayesian Lenses: Categories of Bidirectional Markov Kernels with Canonical Bayesian Inversion braithwaite-2022-dependent
Evaluating a Casual Procedural Generation Tool for Tabletop Role-Playing Game Maps crain-2022-evaluating
Semantic analysis of normalisation by evaluation for typed lambda calculus fiore-2022-semantic
The precision medicine process for treating rare disease using the artificial intelligence tool mediKanren foksinska-2022-the
Extensions of representation stable categories moeller-2022-extensions
Automating Geometric Proofs of Collision Avoidance with Active Corners kheterpal-2022-automating
Existence and stability of symmetric and asymmetric patterns for the half-Laplacian Gierer–Meinhardt system in one-dimensional domain demedeiros-2022-existence
Quotients, inductive types, and quotient inductive types fiore-2022-quotients
Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models srivastava-2022-beyond
Retrodictive Quantum Computing carette-2022-retrodictive
Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility lorch-2022-armada
SNARKBlock: Federated Anonymous Blocklisting from Hidden Common Input Aggregate Proofs rosenberg-2022-snarkblock
Implicit Polarized F: local type inference for impredicativity mercer-2022-implicit
A Cubical Language for Bishop Sets sterling-2022-a
Vehicle: Interfacing Neural Network Verifiers with Interactive Theorem Provers daggitt-2022-vehicle
The directed plump ordering gratzer-2022-the
Why rare disease needs precision medicine—and precision medicine needs rare disease might-2022-why
PRIMA: General and Precise Neural Network Certification via Scalable Convex Hull Approximations mullerPRIMAGeneralPrecise2022
Verbatim++: verified, optimized, and semantically rich lexing with derivatives egolf-2022-verbatim
Formal metatheory of second-order abstract syntax fiore-2022-formal
Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations gaher_etal_simuliris_2022
Today’s compilers employ a variety of non-trivial optimizations to achieve good performance. One key trick compilers use to justify transformations of concurrent programs is to assume that the source program has no data races: if it does, they cause the program to have undefined behavior (UB) and give the compiler free rein. However, verifying correctness of optimizations that exploit this assumption is a non-trivial problem. In particular, prior work either has not proven that such optimizations preserve program termination (particularly non-obvious when considering optimizations that move instructions out of loop bodies), or has treated all synchronization operations as external functions (losing the ability to reorder instructions around them).
In this work we present Simuliris, the first simulation technique to establish termination preservation (under a fair scheduler) for a range of concurrent program transformations that exploit UB in the source language. Simuliris is based on the idea of using ownership to reason modularly about the assumptions the compiler makes about programs with well-defined behavior. This brings the benefits of concurrent separation logics to the space of verifying program transformations: we can combine powerful reasoning techniques such as framing and coinduction to perform thread-local proofs of non-trivial concurrent program optimizations. Simuliris is built on a (non-step-indexed) variant of the Coq-based Iris framework, and is thus not tied to a particular language. In addition to demonstrating the effectiveness of Simuliris on standard compiler optimizations involving data race UB, we also instantiate it with Jung et al.’s Stacked Borrows semantics for Rust and generalize their proofs of interesting type-based aliasing optimizations to account for concurrency.
Fully abstract models for effectful λ-calculi via category-theoretic logical relations kammar-2022-fully
Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation krawiec-2022-provably
Type systems for programs respecting dimensions mcbride-2022-type
A cost-aware logical framework niu-2022-a
On incorrectness logic and Kleene algebra with top and tests zhang-2022-on
Distribution Theoretic Semantics for Non-Smooth Differentiable Programming amorim_lam_2022
With the wide spread of deep learning and gradient descent inspired optimization algorithms, differentiable programming has gained traction. Nowadays it has found applications in many different areas as well, such as scientific computing, robotics, computer graphics and others. One of its notoriously difficult problems consists in interpreting programs that are not differentiable everywhere.
In this work we define , a core calculus for non-smooth differentiable programs and define its semantics using concepts from distribution theory, a well-established area of functional analysis. We also show how presents better equational properties than other existing semantics and use our semantics to reason about a simplified ray tracing algorithm. Further, we relate our semantics to existing differentiable languages by providing translations to and from other existing differentiable semantic models. Finally, we provide a proof-of-concept implementation in PyTorch of the novel constructions in this paper.
Automatic Error Analysis for Document-level Information Extraction das-2022-automatic
A Machine-Checked Proof of Birkhoff’s Variety Theorem in Martin-Löf Type Theory demeo-2022-a
An Algebraic Theory for Shared-State Concurrency dvir-2022-an
A Combinatorial Approach to Higher-Order Structure for Polynomial Functors fiore-2022-a
Carambola: Enforcing Relationships Between Values in Value-Sensitive Agent Design garcia-2022-carambola
Breadth-First Traversal via Staging gibbons-2022-breadth
Regularity and Quantification: A New Approach to Verify Distributed Protocols goelRegularityQuantificationNew
A Stratified Approach to Löb Induction gratzer-2022-a
Strict universes for Grothendieck topoi gratzer-2022-strict
Algorithm Design with the Selection Monad hartmann-2022-algorithm
Super-naturals hinze-2022-super
ANF preserves dependent types up to extensional equality koronkevich-2022-anf
Sift: Using Refinement-guided Automation to Verify Complex Distributed Systems maSiftUsingRefinementguided
EXPRESSIVE TYPE SYSTEMS FOR METROLOGY mcbride-2022-expressive
Parsing as a lifting problem and the Chomsky-Schützenberger representation theorem mellis_zeilberger_2022
We begin by explaining how any context-free grammar encodes a functor of operads from a freely generated operad into a certain “operad of spliced words”. This motivates a more general notion of CFG over any category , defined as a finite species equipped with a color denoting the start symbol and a functor of operads into the operad of spliced arrows in . We show that many standard properties of CFGs can be formulated within this framework, and that usual closure properties of CF languages generalize to CF languages of arrows. We also discuss a dual fibrational perspective on the functor via the notion of “displayed” operad, corresponding to a lax functor of operads .
We then turn to the Chomsky-Schützenberger Representation Theorem. We describe how a non-deterministic finite state automaton can be seen as a category equipped with a pair of objects denoting initial and accepting states and a functor of categories satisfying the unique lifting of factorizations property and the finite fiber property. Then, we explain how to extend this notion of automaton to functors of operads, which generalize tree automata, allowing us to lift an automaton over a category to an automaton over its operad of spliced arrows. We show that every CFG over a category can be pulled back along a ND finite state automaton over the same category, and hence that CF languages are closed under intersection with regular languages. The last important ingredient is the identification of a left adjoint to the operad of spliced arrows functor, building the “contour category” of an operad. Using this, we generalize the C-S representation theorem, proving that any context-free language of arrows over a category is the functorial image of the intersection of a -chromatic tree contour language and a regular language.
Technical Report: Match-reference regular expressions and lenses musca-2022-technical
Quantitative Polynomial Functors nakov_quantitative_2022
The Road to General Intelligence swan-2022-the
Lenses for Composable Servers videla-2022-lenses
A Framework for Substructural Type Systems wood-2022-a
Fantastic Morphisms and Where to Find Them: A Guide to Recursion Schemes yang-2022-fantastic
Structured Handling of Scoped Effects yang-2022-structured
Fibre optics braithwaite-2021-fibre
*-Autonomous Envelopes and Conservativity shulman-2021-autonomous
Bicategories in univalent foundations ahrens-2021-bicategories
Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication cong-2021-labeled
Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity gibbons-2021-continuation
Construction of the Circle in UniMath bezem-2019-construction
Magnitude homology of enriched categories and metric spaces leinster-2021-magnitude
Logical Relations as Types: Proof-Relevant Parametricity for Program Modules sterling_harper_2021
The theory of program modules is of interest to language designers not only for its practical importance to programming, but also because it lies at the nexus of three fundamental concerns in language design: the phase distinction, computational effects, and type abstraction. We contribute a fresh “synthetic” take on program modules that treats modules as the fundamental constructs, in which the usual suspects of prior module calculi (kinds, constructors, dynamic programs) are rendered as derived notions in terms of a modal type-theoretic account of the phase distinction. We simplify the account of type abstraction (embodied in the generativity of module functors) through a lax modality that encapsulates computational effects, placing projectibility of module expressions on a type-theoretic basis.
Our main result is a (significant) proof-relevant and phase-sensitive generalization of the Reynolds abstraction theorem for a calculus of program modules, based on a new kind of logical relation called a parametricity structure. Parametricity structures generalize the proof-irrelevant relations of classical parametricity to proof-relevant families, where there may be non-trivial evidence witnessing the relatedness of two programs—simplifying the metatheory of strong sums over the collection of types, for although there can be no “relation classifying relations,” one easily accommodates a “family classifying small families.”
Using the insight that logical relations/parametricity is itself a form of phase distinction between the syntactic and the semantic, we contribute a new synthetic approach to phase separated parametricity based on the slogan logical relations as types, by iterating our modal account of the phase distinction. We axiomatize a dependent type theory of parametricity structures using two pairs of complementary modalities (syntactic, semantic) and (static, dynamic), substantiated using the topos theoretic Artin gluing construction. Then, to construct a simulation between two implementations of an abstract type, one simply programs a third implementation whose type component carries the representation invariant.
Symbolic and automatic differentiation of languages elliottSymbolicAutomaticDifferentiation2021
Coherence for bicategorical cartesian closed structure fiore-2021-coherence
Deriving efficient program transformations from rewrite rules li-2021-deriving
Compositional optimizations for CertiCoq paraskevopoulou-2021-compositional
High-throughput protein modification quantitation analysis using intact protein MRM and its application on hENGase inhibitor screening tao-2021-high
Reasoning about effect interaction by fusion yang-2021-reasoning
A simpler encoding of indexed types zhang-2021-a
PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design coblenz-2021-pliers
Multimodal Dependent Type Theory gratzerNutyzBirkedal2021
Provable repair of deep neural networks sotoudehProvableRepairDeep2021
Categories of Nets baez-2021-categories
Schur Functors and Categorified Plethysm baez-2021-schur
CoStar: A verified ALL(*) parser lasserCoStarVerifiedALL2021
Filling typed holes with live GUIs omar-2021-filling
Proof repair across type equivalences ringer-2021-proof
Transfinite Iris: resolving an existential dilemma of step-indexed separation logic spies-2021-transfinitex
Bidirectional Typing dunfield-2021-bidirectional
The derivator of setoids shulman-2021-the
Elegant elaboration with function invocation zhang-2021-elegant
Tracking translation invariance in CNNs myburghTrackingTranslationInvariance2021
Syntax and models of Cartesian cubical type theory angiuli-2021-syntax
A compiler infrastructure for accelerator generators nigam-2021-a
Formal Methods for the Informal Engineer: Workshop Recommendations sarma-2021-formal
Vectorization for digital signal processors via equality saturation vanhattum-2021-vectorization
A Defense-Inspired Benchmark Suite ehrett-2021-a
The Sequent Calculus of Skew Monoidal Categories uustalu-2020-the
Proof Theory of Partially Normal Skew Monoidal Categories uustalu-2021-proof
Internalizing representation independence with univalence angiuli-2021-internalizing
Formalizing category theory in Agda hu-2021-formalizing
The Grothendieck Construction in Categorical Network Theory moeller-2021-the
Transfinite step-indexing for termination spies-2021-transfinite
Deductive Systems and Coherence for Skew Prounital Closed Categories uustalu-2021-deductive
egg: Fast and Extensible Equality Saturation willsey-2021-egg
A type- and scope-safe universe of syntaxes with binding: their semantics and proofs allais-2021-a
Universal Semantics for the Stochastic Lambda-Calculus amorim_etal_2021_lics
Algorithmics bird-2021-algorithmics
Program Sketching by Automatically Generating Mocks from Tests bragg-2021-program
Scatterbrain: Unifying Sparse and Low-rank Attention Approximation chen-2021-scatterbrain
Compositional Modelling of Network Games dilavore-2021-compositional
Verbatim: A verified lexer generator egolfVerbatim
ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity frumin_krebbers_birkedal_reloc_2021
How to design co-programs gibbons-2021-how
On Symmetry and Quantification: A New Approach to Verify Distributed Protocols goelSymmetryQuantificationNew2021
Adjoint Reactive GUI Programming graulund-2021-adjoint
Finding Invariants of Distributed Systems: It’s a Small (Enough) World After All hanceFindingInvariantsDistributed
1001 Representations of Syntax with Binding jesper1001
Boosting the Security of Blind Signature Schemes katz-2021-boosting
Gradual Type Theory new_licata_ahmed_2021
First Steps in Synthetic Tait Computability: The Objective Metatheory of Cubical Type Theory sterling_2021
Normalization for Cubical Type Theory sterling_angiuli_2021
DistAI: Data-Driven Automated Invariant Learning for Distributed Protocols yaoDistAIDataDrivenAutomated
Automatic Discovery and Synthesis of Checksum Algorithms from Binary Data Samples labell-2020-automatic
Bifibrations of Polycategories and Classical Linear Logic blanco-2020-bifibrations
Sheet diagrams for bimonoidal categories comfort-2020-sheet
Eilenberg-Kelly Reloaded uustalu-2020-eilenberg
Obsidian: Typestate and Assets for Safer Blockchain Programming coblenz-2020-obsidian
Recovering purity with comonads and capabilities choudhury-2020-recovering
Program sketching with live bidirectional evaluation lubin-2020-program
Towards Verified Artificial Intelligence seshiaVerifiedArtificialIntelligence2020
A Higher Structure Identity Principle ahrens-2020-a
Leveraging the Information Contained in Theory Presentations carette-2020-leveraging
Coherence and normalisation-by-evaluation for bicategorical cartesian closed structure fiore_saville_2020
Brief Announcement: On the Significance of Consecutive Ballots in Paxos goldweber-2020-brief
Constructing Higher Inductive Types as Groupoid Quotients vanderweide-2020-constructing
Algorithm Design with Haskell bird-2020-algorithm
Armada: low-effort verification of high-performance concurrent programs lorch-2020-armada
Predictable accelerator design with time-sensitive affine types nigam-2020-predictable
A Synthesis-Aided Compiler for DSP Architectures (WiP Paper) vanhattum-2020-a
Verification of Deep Convolutional Neural Networks Using ImageStars tranVerificationDeepConvolutional2020
Classical logic with Mendler induction devesascampos-2020-classical
Structured reviews for data and knowledge-driven research queraltrosinach-2020-structured
Modalities in homotopy type theory rijke-2020-modalities
REPLica: REPL instrumentation for Coq analysis ringer-2020-replica
Retentive Lenses zhu-2020-retentive
Zippy LL(1) parsing with derivatives EdelmannZippy2020
Seminaïve evaluation for a higher-order functional language arntzenius-2019-seminaive
Fractional Types: Expressive and Safe Space Management for Ancilla Bits chen-2020-fractional
Doo bee doo bee doo convent-2020-doo
The School of Squiggol: A History of the Bird–Meertens Formalism gibbons-2020-the
AVR: Abstractly Verifying Reachability goelAVRAbstractlyVerifying2020
Effect handlers via generalised continuations hillerstrom-2020-effect
First-Order Logic for Flow-Limited Authorization hirsch_etal_2020
Ivy: A Multi-modal Verification Tool for Distributed Algorithms mcmillanIvyMultimodalVerification2020
Monoidal Grothendieck construction moeller_vasilakopoulou_2020
Stride and Translation Invariance in CNNs moutonStrideTranslationInvariance2020
A Semantic Foundation for Sound Gradual Typing new_dissertation_2020
Graduality and Parametricity: Together Again for the First Time new_jamner_ahmed_2020
Parametric polymorphism and gradual typing have proven to be a difficult combination, with no language yet produced that satisfies the fundamental theorems of each: parametricity and graduality. Notably, Toro, Labrada, and Tanter (POPL 2019) conjecture that for any gradual extension of System F that uses dynamic type generation, graduality and parametricity are “simply incompatible”. However, we argue that it is not graduality and parametricity that are incompatible per se, but instead that combining the syntax of System F with dynamic type generation as in previous work necessitates type-directed computation, which we show has been a common source of graduality and parametricity violations in previous work.
We then show that by modifying the syntax of universal and existential types to make the type name generation explicit, we remove the need for type-directed computation, and get a language that satisfies both graduality and parametricity theorems. The language has a simple runtime semantics, which can be explained by translation to a statically typed language where the dynamic type is interpreted as a dynamically extensible sum type. Far from being in conflict, we show that the parametricity theorem follows as a direct corollary of a relational interpretation of the graduality property.
Call-by-name Gradual Type Theory new_licata_2020_lmcs
Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time smolka-2019-guarded
Network Models from Petri Nets with Catalysts baez-2019-network
Cardioinformatics: the nexus of bioinformatics and precision cardiology khomtchouk-2019-cardioinformatics
Connected Chord Diagrams and Bridgeless Maps courtiel-2019-connected
Noncommutative network models moeller-2019-noncommutative
I4: Incremental inference of inductive invariants for verification of distributed protocols maI4IncrementalInference2019
Aegean: replication beyond the client-server model aksoy-2019-aegean
QED at Large: A Survey of Engineering of Formally Verified Software ringer-2019-qed
Cubical Agda: A Dependently Typed Programming Language with Univalence and Higher Inductive Types VezzosiMortbergAbel2019
Implementing a modal dependent type theory gratzer-2019-implementing
Dijkstra monads for all maillard-2019-dijkstra
Synthesizing symmetric lenses miltner-2019-synthesizing
A typed, algebraic approach to parsing krishnaswami_typed_2019
Semantics of higher inductive types lumsdaine-2019-semantics
Generalized Lyndon Factorizations of Infinite Words burcroff-2019-generalized
Towards Automatic Inference of Inductive Invariants ma-2019-towards
A generalised quantifier theory of natural language in categorical compositional distributional semantics with bialgebras hedges-2019-a
All -toposes have strict univalent universes shulman-2019-all
Displayed Categories ahrens-lumsdaine-2019
We introduce and develop the notion of displayed categories. A displayed category over a category is equivalent to “a category and functor , but instead of having a single collection of “objects of ” with a map to the objects of , the objects are given as a family indexed by objects of , and similarly for the morphisms. This encapsulates a common way of building categories in practice, by starting with an existing category and adding extra data/properties to the objects and morphisms. The interest of this seemingly trivial reformulation is that various properties of functors are more naturally defined as properties of the corresponding displayed categories. Grothendieck fibrations, for example, when defined as certain functors, use equality on objects in their definition. When defined instead as certain displayed categories, no reference to equality on objects is required. Moreover, almost all examples of fibrations in nature are, in fact, categories whose standard construction can be seen as going via displayed categories. We therefore propose displayed categories as a basis for the development of fibrations in the type-theoretic setting, and similarly for various other notions whose classical definitions involve equality on objects. Besides giving a conceptual clarification of such issues, displayed categories also provide a powerful tool in computer formalisation, unifying and abstracting common constructions and proof techniques of category theory, and enabling modular reasoning about categories of multi-component structures. As such, most of the material of this article has been formalised in Coq over the UniMath library, with the aim of providing a practical library for use in further developments.
A sequent calculus for a semi-associative law zeilberger-2019-a
Live functional programming with typed holes omar-2019-live
A domain theory for statistical probabilistic programming vakar-2019-a
Gluing for Type Theory GluingForTypeTheory
Why do deep convolutional networks generalize so poorly to small image transformations? azulayWhyDeepConvolutional
Coinduction in flow: the later modality in fibrations basold_2019
This paper provides a construction on fibrations that gives access to the so-called later modality, which allows for a controlled form of recursion in coinductive proofs and programs. The construction is essentially a generalisation of the topos of trees from the codomain fibration over sets to arbitrary fibrations. As a result, we obtain a framework that allows the addition of a recursion principle for coinduction to rather arbitrary logics and programming languages. The main interest of using recursion is that it allows one to write proofs and programs in a goal-oriented fashion. This enables easily understandable coinductive proofs and programs, and fosters automatic proof search.
Part of the framework are also various results that enable a wide range of applications: transportation of (co)limits, exponentials, fibred adjunctions and first-order connectives from the initial fibration to the one constructed through the framework. This means that the framework extends any first-order logic with the later modality. Moreover, we obtain soundness and completeness results, and can use up-to techniques as proof rules. Since the construction works for a wide variety of fibrations, we will be able to use the recursion offered by the later modality in various context. For instance, we will show how recursive proofs can be obtained for arbitrary (syntactic) first-order logics, for coinductive set-predicates, and for the probabilistic modal mu-calculus. Finally, we use the same construction to obtain a novel language for probabilistic productive coinductive programming. These examples demonstrate the flexibility of the framework and its accompanying results.
Using Binary Analysis Frameworks: The Case for BAP and angr casinghino-2019-using
On the Lambek Calculus with an Exchange Modality depaiva-eades-jiang-2019-lambek-exchange
TxForest: A DSL for Concurrent Filestores dilorenzo-2019-txforest
On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control forster-2019-on
Demand Control-Flow Analysis germane-2019-demand
Relatively Complete Pushdown Analysis of Escape Continuations germane-2019-relatively
How to evaluate the performance of gradual type systems greenman_etal_2019
Self-certifying Railroad Diagrams: Or: How to Teach Nondeterministic Finite Automata hinze-2019-self
A Verified LL(1) Parser Generator lasserLL1_2019
Gradual Type Theory new_licata_ahmed_2019
Gradually typed languages are designed to support both dynamically typed and statically typed programming styles while preserving the benefits of each. While existing gradual type soundness theorems for these languages aim to show that type-based reasoning is preserved when moving from the fully static setting to a gradual one, these theorems do not imply that correctness of type-based refactorings and optimizations is preserved. Establishing correctness of program transformations is technically difficult, because it requires reasoning about program equivalence, and is often neglected in the metatheory of gradual languages.
In this paper, we propose an axiomatic account of program equivalence in a gradual cast calculus, which we formalize in a logic we call gradual type theory (GTT). Based on Levy’s call-by-push-value, GTT gives an axiomatic account of both call-by-value and call-by-name gradual languages. Based on our axiomatic account we prove many theorems that justify optimizations and refactorings in gradually typed languages. For example, uniqueness principles for gradual type connectives show that if the βη laws hold for a connective, then casts between that connective must be equivalent to the so-called “lazy” cast semantics. Contrapositively, this shows that “eager” cast semantics violates the extensionality of function types. As another example, we show that gradual upcasts are pure functions and, dually, gradual downcasts are strict functions. We show the consistency and applicability of our axiomatic theory by proving that a contract-based implementation using the lazy cast semantics gives a logical relations model of our type theory, where equivalence in GTT implies contextual equivalence of the programs. Since GTT also axiomatizes the dynamic gradual guarantee, our model also establishes this central theorem of gradual typing. The model is parametrized by the implementation of the dynamic types, and so gives a family of implementations that validate type-based optimization and the gradual guarantee.
Ornaments for Proof Reuse in Coq ringer-2019-ornaments
Cubical Syntax for Reflection-Free Extensional Equality sterling-2019-cubical
One Step at a Time: A Functional Derivation of Small-Step Evaluators from Big-Step Counterparts vesely-2019-one
Morphisms of Open Games hedges-2018-morphisms
Formal Verification of CNN-based Perception Systems kouvarosFormalVerificationCNNbased2018
Ply: A Visual Web Inspector for Learning from Professional Webpages lim-2018-ply
Deductive Verification of Distributed Protocols in First-Order Logic padonDeductiveVerificationDistributed2018
Neural Guided Constraint Logic Programming for Program Synthesis zhang-2018-neural
The RedPRL Proof Assistant (Invited Paper) angiuli-2018-the
Syntax and Semantics of Quantitative Type Theory atkey-2018-syntax
What you needa know about Yoneda: profunctor optics and the Yoneda lemma (functional pearl) boisseau-2018-what
Compositional Game Theory ghani-2018-compositional
Relational algebra by way of adjunctions gibbons-2018-relational
Everybody’s Got To Be Somewhere mcbrideEverybodysGotToBeSomewhere2018
Reasonably programmable literal notation omar-2018-reasonably
Partially-static data as free extension of algebras yallop-2018-partially
A theory of linear typings as flows on 3-valent graphs zeilberger-2018-a
Putting in all the stops: execution control for JavaScript baxter-2018-putting
Guarded Cubical Type Theory birkedal-2018-guarded
Resource Polymorphism munchmaccagnoni-2018-resource
Meaning explanations at higher dimension angiuli-2018-meaning
Adapting proof automation to adapt proofs ringer-2018-adapting
agdarsec — total parser combinators allais_2018
Quotient Inductive-Inductive Types altenkirch_etal_2018
Cartesian Cubical Computational Type Theory: Constructive Reasoning with Paths and Equalities angiuli-2018-cartesian
Dialectica Categories for the Lambek Calculus depaiva2018-dialectica-lambek
Abstract allocation as a unified approach to polyvariance in control-flow analyses gilray-2018-abstract
On constructing 2-3 trees hinze-2018-on
Parberry’s pairwise sorting network revealed hinze-2018-parberry
Iris from the ground up: A modular foundation for higher-order concurrent separation logic jung_etal_iris_ground_up_2018
Substructural calculi with dependent types luo
In this paper, we investigate how to introduce dependent types into the substructural calculi such as the Lambek calculus and linear logic. The motivations of such a move include facilitating a closer correspondence between syntax and semantics in natural language analysis and developing promising applications such as that to concurrency through dependent session types.
We shall present two substructural calculi with dependent types: the first containing dependent Lambek types and the second dependent linear types. Technically, the former adheres to the usual assumption that types do not depend on substructural variables (in this case, the Lambek variables), which makes the technical development easier, while the latter allows type dependency on linear variables, which makes the development more challenging as well as more interesting in applications.
Deductive Verification in Decidable Fragments with Ivy mcmillanDeductiveVerificationDecidable2018
Synthesizing bijective lenses miltner-2017-synthesizing
Graduality from Embedding-Projection Pairs new_ahmed_2018
Gradually typed languages allow statically typed and dynamically typed code to interact while maintaining benefits of both styles. The key to reasoning about these mixed programs is Siek-Vitousek-Cimini-Boyland’s (dynamic) gradual guarantee, which says that giving components of a program more precise types only adds runtime type checking, and does not otherwise change behavior. In this paper, we give a semantic reformulation of the gradual guarantee called graduality. We change the name to promote the analogy that graduality is to gradual typing what parametricity is to polymorphism. Each gives a local-to-global, syntactic-to-semantic reasoning principle that is formulated in terms of a kind of observational approximation.
Utilizing the analogy, we develop a novel logical relation for proving graduality. We show that embedding-projection pairs (ep pairs) are to graduality what relations are to parametricity. We argue that casts between two types where one is “more dynamic” (less precise) than the other necessarily form an ep pair, and we use this to cleanly prove the graduality cases for casts from the ep-pair property. To construct ep pairs, we give an analysis of the type dynamism relation—also known as type precision or naïve subtyping—that interprets the rules for type dynamism as compositional constructions on ep pairs, analogous to the coercion interpretation of subtyping.
Call-by-name Gradual Type Theory new_licata_2018_fscd
FabULous Interoperability for ML and a Linear Language scherer_etal_2018
Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability by making each part simpler than the whole, but there is a risk of abstraction leaks from one language to another that would break expectations of the users familiar with only one or some of the involved languages.
We propose a formal specification for what it means for a given language in a multi-language system to be usable without leaks: it should embed into the multi-language in a fully abstract way, that is, its contextual equivalence should be unchanged in the larger system.
To demonstrate our proposed design principle and formal specification criterion, we design a multi-language programming system that combines an ML-like statically typed functional language and another language with linear types and linear state. Our goal is to cover a good part of the expressiveness of languages that mix functional programming and linear state (ownership), at only a fraction of the complexity. We prove that the embedding of ML into the multi-language system is fully abstract: functional programmers should not fear abstraction leaks. We show examples of combined programs demonstrating in-place memory updates and safe resource handling, and an implementation extending OCaml with our linear language.
Denotational validation of higher-order Bayesian inference scibior-2017-denotational
A logical relation for monadic encapsulation of state: proving contextual equivalences in the presence of runST timany-2017-a
Cumulative Inductive Types In Coq timany-2018-cumulative
A type theory for synthetic -categories riehl-2017-a
Network Models baez-2017-network
The HACMS program: using formal methods to eliminate exploitable bugs fisher-2017-the
Brouwer’s fixed-point theorem in real-cohesive homotopy type theory shulman-2017-brouwer
A convenient category for higher-order probability theory heunen-2017-a
Ply: Visual Regression Pruning for Web Design Source Inspection lim-2017-ply
Profunctor Optics: Modular Data Accessors pickering-2017-profunctor
CoCaml: Functional Programming with Regular Coinductive Types jeannin-2017-cocaml
An Isbell duality theorem for type refinement systems mellies-2017-an
Type-and-scope safe programs and their proofs allais-2017-type
Computational higher-dimensional type theory angiuli-2017-computational
A posteriori environment analysis with Pushdown Delta CFA germane-2017-a
Interactive proofs in higher-order concurrent separation logic krebbers-2017-interactive
Do be do be do lindley-2017-do
Hazelnut: a bidirectionally typed structure editor calculus omar-2017-hazelnut
Observed Communication Semantics for Classical Processes atkey-2017-observed
Fission: Secure Dynamic Code-Splitting for JavaScript guha-2017-fission
Traditional web programming involves the creation of two distinct programs: a client-side front-end, a server-side back-end, and a lot of communications boilerplate. An alternative approach is to use a tierless programming model, where a single program describes the behavior of both the client and the server, and the runtime system takes care of communication. Unfortunately, this usually entails adopting a new language and thus abandoning well-worn libraries and web programming tools.
In this paper, we present our ongoing work on Fission, a platform that uses dynamic tier-splitting and dynamic information flow control to transparently run a single JavaScript program across the client and server. Although static tier-splitting has been studied before, our focus on dynamic approaches presents several new challenges and opportunities. For example, Fission supports characteristic JavaScript features such as eval and sophisticated JavaScript libraries like React. Therefore, programmers can reason about the integrity and confidentiality of information while continuing to use common libraries and programming patterns. Moreover, by unifying the client and server into a single program, Fission allows language-based tools, like type systems and IDEs, to manipulate complete web applications. To illustrate, we use TypeScript to ensure that client-server communication does not go wrong.
Continuation Passing Style for Effect Handlers hillerstrom-2017-continuation
We present Continuation Passing Style (CPS) translations for Plotkin and Pretnar’s effect handlers with Hillerström and Lindley’s row-typed fine-grain call-by-value calculus of effect handlers as the source language. CPS translations of handlers are interesting theoretically, to explain the semantics of handlers, and also offer a practical implementation technique that does not require special support in the target language’s runtime.
We begin with a first-order CPS translation into untyped lambda calculus which manages a stack of continuations and handlers as a curried sequence of arguments. We then refine the initial CPS translation first by uncurrying it to yield a properly tail-recursive translation and second by making it higher-order in order to contract administrative redexes at translation time. We prove that the higher-order CPS translation simulates effect handler reduction. We have implemented the higher-order CPS translation as a JavaScript backend for the Links programming language.
Fair enumeration combinators new_fetscher_findler_mccarthy_2017
A Higher-Order Logic for Concurrent Termination-Preserving Refinement tassarotti_jung_harper_2017
CALF: Categorical Automata Learning Framework vanheerdt-2017-calf
A Specification for Dependent Types in Haskell weirich_etal_2017
A formally verified hybrid system for safe advisories in the next-generation airborne collision avoidance system jeannin-2016-a
Datafun: a functional Datalog arntzenius-2016-datafun
Higher-order ghost state jung_higher-order_2016
Equational reasoning with lollipops, forks, cups, caps, snakes, and speedometers hinze-2016-equational
Semantics for probabilistic programming: higher-order functions, continuous distributions, and soft constraints staton-2016-semantics
Ivy: Safety verification by interactive generalization padonIvySafetyVerification
A Heuristic Prover for Real Inequalities avigad-2016-a
A theory of effects and resources: adjunction models and polarised calculi curien-2016-a
Pushdown control-flow analysis for free gilray-2016-pushdown
Homotopical patch theory angiuli-2016-homotopical
Conflation Confers Concurrency atkey-2016-conflation
Oh Lord, Please Don’t Let Contracts be Misunderstood (Functional Pearl) dimoulas_new_findler_felleisen_2016
Contracts feel misunderstood, especially those with a higher-order soul. While software engineers appreciate contracts as tools for articulating the interface between components, functional programmers desperately search for their types and meaning, completely forgetting about their pragmatics.
This gem presents a novel analysis of contract systems. Applied to the higher-order kind, this analysis reveals their large and clearly unappreciated software engineering potential. Three sample applications illustrate where this kind of exploration may lead.
Probabilistic NetKAT foster-2016-probabilistic
I Got Plenty o’ Nuttin’ mcbride-2016-i
A Coq Library For Internal Verification of Running-Times mccarthy_etal_2016
Fully Abstract Compilation via Universal Embedding new_bowman_ahmed_2016
A fully abstract compiler guarantees that two source components are observationally equivalent in the source language if and only if their translations are observationally equivalent in the target. Full abstraction implies the translation is secure: target-language attackers can make no more observations of a compiled component than a source-language attacker interacting with the original source component. Proving full abstraction for realistic compilers is challenging because realistic target languages contain features (such as control effects) unavailable in the source, while proofs of full abstraction require showing that every target context to which a compiled component may be linked can be back-translated to a behaviorally equivalent source context.
We prove the first full abstraction result for a translation whose target language contains exceptions, but the source does not. Our translation—specifically, closure conversion of simply typed λ-calculus with recursive types—uses types at the target level to ensure that a compiled component is never linked with attackers that have more distinguishing power than source-level attackers. We present a new back-translation technique based on a shallow embedding of the target language into the source language at a dynamic type. Then boundaries are inserted that mediate terms between the untyped embedding and the strongly-typed source. This technique allows back-translating non-terminating programs, target features that are untypeable in the source, and well-bracketed effects.
Decidability of inferring inductive invariants padonDecidabilityInferringInductive2016
Is Sound Gradual Typing Dead? takikawa_etal_2016
Category Theory in Coq 8.5 timany-2016-category
We report on our experience implementing category theory in Coq 8.5. Our work formalizes most of basic category theory, including concepts not covered by existing formalizations, in a library that is fit to be used as a general-purpose category-theoretical foundation.
Our development particularly takes advantage of two features new to Coq 8.5: primitive projections for records and universe polymorphism. Primitive projections allow for well-behaved dualities while universe polymorphism provides a relative notion of largeness and smallness. The latter is one of the main contributions of this paper. It pushes the limits of the new universe polymorphism and constraint inference algorithm of Coq 8.5.
In this paper we present in detail smallness and largeness in categories and the foundation they are built on top of. We furthermore explain how we have used the universe polymorphism of Coq 8.5 to represent smallness and largeness arguments by simply ignoring them and entrusting them to the universe inference algorithm of Coq 8.5. We also briefly discuss our experience throughout this implementation, discuss concepts formalized in this development and give a comparison with a few other developments of similar extent.
Linear lambda terms as invariants of rooted trivalent maps zeilberger-2016-linear
IronFleet: proving practical distributed systems correct hawblitzel-2015-ironfleet
High-performance ACID via modular concurrency control xie-2015-high
Polarised Intermediate Representation of Lambda Calculus with Sums munchmaccagnoni-2015-polarised
Elaboration in Dependent Type Theory moura-2015-elaboration
Univalent categories and the Rezk completion ahrens_etal_2015
Indexed containers altenkirch_indexed_2015
Certified Normalization of Context-Free Grammars firsovCertifiedNormalizationContextFree2015
Conjugate Hylomorphisms -- Or: The Mother of All Structured Recursion Schemes hinze-2015-conjugate
Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning jung-2015-iris
Integrating Linear and Dependent Types krishnaswami_integrating_2015
Syntax and Semantics of Linear Dependent Types vakarSyntaxSemanticsLinear2015
Interleaving data and effects atkey-2015-interleaving
Models for Polymorphism over Physical Dimension atkey-2015-models
A Formally Verified Hybrid System for the Next-Generation Airborne Collision Avoidance System jeannin-2015-a
Functors are type refinement systems mellies_zeilberger_2015
The standard reading of type theory through the lens of category theory is based on the idea of viewing a type system as a category of well-typed terms. We propose a basic revision of this reading: rather than interpreting type systems as categories, we describe them as functors from a category of typing derivations to a category of underlying terms. Then, turning this around, we explain how in fact any functor gives rise to a generalized type system, with an abstract notion of typing judgment, typing derivations and typing rules. This leads to a purely categorical reformulation of various natural classes of type systems as natural classes of functors.
The main purpose of this paper is to describe the general framework (which can also be seen as providing a categorical analysis of refinement types), and to present a few applications. As a larger case study, we revisit Reynolds’ paper on “The Meaning of Types” (2000), showing how the paper’s main results may be reconstructed along these lines.
From categorical logic to facebook engineering ohearn_fromCat2015
Adaptive LL(*) parsing: the power of dynamic analysis parr-2014-adaptive
Folding domain-specific languages: deep and shallow embeddings (functional Pearl) gibbons-2014-folding
Formulae-as-types for an involutive negation munchmaccagnoni-2014-formulae
Trust Extension as a Mechanism for Secure Code Execution on Commodity Computers parno-2014-trust
Algebra-coalgebra duality in brzozowski’s minimization algorithm bonchi-2014-algebra
NetKAT: Semantic foundations for networks anderson2014netkat
A relationally parametric model of dependent type theory atkey-2014-a
From parametricity to conservation laws, via Noether’s theorem atkey-2014-from
CakeML: A verified implementation of ML kumar_cakeml_2014
Multi-Sorted Residuation buszkowski_2014
Models of a Non-associative Composition munchmaccagnoni-2014-models
Safely Composable Type-Specific Languages omar-2014-safely
The Structural Theory of Pure Type Systems roux-2014-the
Adjoint folds and unfolds—An extended study hinze-2013-adjoint
Productive coprogramming with guarded recursion atkey-2013-productive
Complete and easy bidirectional typechecking for higher-rank polymorphism dunfield-2013-complete
Handlers in action kammar-2013-handlers
Infinitary Axiomatization of the Equational Theory of Context-Free Languages grathwohl_infinitary_2013
Calculating the Fundamental Group of the Circle in Homotopy Type Theory licata-2013-calculating
Pinocchio: Nearly Practical Verifiable Computation parno-2013-pinocchio
Generalizing determinization from automata to coalgebras silva-2013-generalizing
Generalised Name Abstraction for Nominal Sets clouston_generalised_2013
Language Constructs for Non-Well-Founded Computation jeannin-2013-language
Linear Logic Programming for Narrative Generation martens-2013-linear
Type refinement and monoidal closed bifibrations mellies_zeilberger_2013
Nominal Sets: Names and Symmetry in Computer Science pitts_nominal_sets
First steps in synthetic guarded domain theory: step-indexing in the topos of trees birkedalFirstStepsSGDT2012
Algebraic foundations for effect-dependent optimisations kammar-2012-algebraic
Higher-order functional reactive programming in bounded space krishnaswami-2012-higher
The semantics of parsing with semantic actions atkey_2012
Brzozowski’s Algorithm (Co)Algebraically bonchi-2012-brzozowski
Kan Extensions for Program Optimisation Or: Art and Dan Explain an Old Trick hinze-2012-kan
Validating LR(1) Parsers jourdanValidatingLRParsers2012
Just do it: simple monadic equational reasoning gibbons-2011-just
Parsing with derivatives: A functional pearl mightParsingDerivativesFunctional2011
We present a functional approach to parsing unrestricted context-free grammars based on Brzozowski’s derivative of regular expressions. If we consider context-free grammars as recursive regular expressions, Brzozowski’s equational theory extends without modification to context-free grammars (and it generalizes to parser combinators). The supporting actors in this story are three concepts familiar to functional programmers - laziness, memoization and fixed points; these allow Brzozowski’s original equations to be transliterated into purely functional code in about 30 lines spread over three functions.
Yet, this almost impossibly brief implementation has a drawback: its performance is sour - in both theory and practice. The culprit? Each derivative can double the size of a grammar, and with it, the cost of the next derivative.
Fortunately, much of the new structure inflicted by the derivative is either dead on arrival, or it dies after the very next derivative. To eliminate it, we once again exploit laziness and memoization to transliterate an equational theory that prunes such debris into working code. Thanks to this compaction, parsing times become reasonable in practice.
We equip the functional programmer with two equational theories that, when combined, make for an abbreviated understanding and implementation of a system for parsing context-free languages.
Dependent session types via intuitionistic linear type theory toninho-2011-dependent
Data representation synthesis hawkins-2011-data
LL(*): the foundation of the ANTLR parser generator parr-2011-ll
SAT-Based Model Checking without Unrolling bradleySATBasedModelChecking2011
Regular expression containment: Coinductive axiomatization and computational interpretation henglein_regular_2011
Verified Software Toolchain appel_vst_2011
Bootstrapping Trust in Modern Computers parno-2011-bootstrapping
Grammatical framework: Programming with multilingual grammars ranta-2011
Refinement Types as Higher-Order Dependency Pairs roux-2011-refinement
Context-Free Languages, Coalgebraically winterCFL
Finding and Understanding Bugs in C Compilers yangFindingUnderstandingBugs
Total parser combinators danielssonTotalParserCombinators2010
A monadic parser combinator library which guarantees termination of parsing, while still allowing many forms of left recursion, is described. The library’s interface is similar to those of many other parser combinator libraries, with two important differences: one is that the interface clearly specifies which parts of the constructed parsers may be infinite, and which parts have to be finite, using dependent types and a combination of induction and coinduction; and the other is that the parser type is unusually informative.
The library comes with a formal semantics, using which it is proved that the parser combinators are as expressive as possible. The implementation is supported by a machine-checked correctness proof.
Abstracting abstract machines vanhorn-2010-abstracting
Polarity and the Logic of Delimited Continuations zeilberger-2010-polarity
Resolving and exploiting the -CFA paradox: illuminating functional vs. object-oriented program analysis might-2010-resolving
Session Types as Intuitionistic Linear Propositions caires-2010-session
The Duality of Computation under Focus curien-2010-the
Coherence for categorified operadic theories gould_2010
Upright cluster services clement-2009-upright
Parameterised notions of computation atkey-2009-parameterised
The essence of the Iterator pattern gibbons-2009-the
Formal verification of a realistic compiler leroy_formal_2009
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages carette-2009-finally
Regular-expression derivatives re-examined owensRegularexpressionDerivativesReexamined2009
Syntax for Free: Representing Syntax with Binding Using Parametricity atkey-2009-syntax
On the Relation between Sized-Types Based Termination and Semantic Labelling blanqui-2009-on
Concurrent Kleene Algebra hoare2009concurrent
Focalisation and Classical Realisability munchmaccagnoni-2009-focalisation
Second-Order and Dependently-Sorted Abstract Syntax fiore-2008-second
Focusing on Binding and Computation licata-2008-focusing
Flicker: an execution infrastructure for tcb minimization mccune-2008-flicker
On the unity of duality zeilberger-2008-on
From dirt to shovels: fully automatic tool generation from ad hoc data fisher-2008-from
Applicative programming with effects mcbride-2008-applicative
Clowns to the left of me, jokers to the right (pearl): dissecting data structures mcbride-2008-clowns
Focusing and higher-order abstract syntax zeilberger-2008-focusing
Framed bicategories and monoidal fibrations shulman_2008
In some bicategories, the 1-cells are ‘morphisms’ between the 0-cells, such as functors between categories, but in others they are ‘objects’ over the 0-cells, such as bimodules, spans, distributors, or parametrized spectra. Many bicategorical notions do not work well in these cases, because the ‘morphisms between 0-cells’, such as ring homomorphisms, are missing. We can include them by using a pseudo double category, but usually these morphisms also induce base change functors acting on the 1-cells. We avoid complicated coherence problems by describing base change ‘nonalgebraically’, using categorical fibrations. The resulting ‘framed bicategories’ assemble into 2-categories, with attendant notions of equivalence, adjunction, and so on which are more appropriate for our examples than are the usual bicategorical ones.
We then describe two ways to construct framed bicategories. One is an analogue of rings and bimodules which starts from one framed bicategory and builds another. The other starts from a ‘monoidal fibration’, meaning a parametrized family of monoidal categories, and produces an analogue of the framed bicategory of spans. Combining the two, we obtain a construction which includes both enriched and internal categories as special cases.
Observational equality, now! altenkirch-2007-observational
BI-hyperdoctrines, higher-order separation logic, and abstraction biering-2007-bi
Datatype-Generic Programming gibbons-2007-datatype
Relational separation logic yang_relational_separation_2007
Improving flow analyses via ΓCFA: abstract garbage collection and counting might-2006-improving
Remarks on isomorphisms in typed lambda calculi with empty and sum types fiore-2006-remarks
Unbounded Spigot Algorithms for the Digits of Pi gibbons-2006-unbounded
The next 700 data description languages fisher-2006-the
Finger trees: a simple general-purpose data structure hinze-2005-finger
PADS: a domain-specific language for processing ad hoc data fisher-2005-pads
BI Hyperdoctrines and Higher-Order Separation Logic biering_birkedal_torpsmith_2005
Generics for the masses hinze-2004-generics
On the Logic of Bunched Implications — and its relation to separation logic biering_bunched_2004
The view from the left mcbride-2004-the
Simple relational correctness proofs for static analyses and program transformations benton_relational_2004
Greedy regular expression matching frischCardelli
Wellfounded Trees and Dependent Polynomial Functors gambino_wellfounded_2004
Automatic Generation of Polynomial Loop Invariants: Algebraic Foundations rodriguez-carbonellAutomaticGenerationPolynomial
First-order unification by structural recursion mcbrideFirstorderUnification2003
Glueing and orthogonality for models of linear logic hyland_glueing_2003
Type Logics in Grammar buszkowskiTypeLogicsGrammar2003
Call-By-Push-Value: A Functional/Imperative Synthesis levy-2003-callbypushvalue
Separation logic: A logic for shared mutable data structures reynolds_separation_2002
Polytypic values possess polykinded types hinze-2002-polytypic
Sketches of an Elephant: A Topos Theory Compendium johnstone-2002
Elimination with a Motive mcbride-2002-elimination
A formal proof of strong equivalence for a grammar conversion from LTAG to HPSG-style yoshinaga2002formal
A judgmental reconstruction of modal logic pfenning-2001-a
Kleene algebra with tests and program schematology angus2001kleene
BI as an assertion language for mutable data structures ishtiaq_ohearn_bi_2001
Certification of Compiler Optimizations Using Kleene Algebra with Tests kozen2000certification
Categorical Logic and Type Theory jacobs-1999
This book is an attempt to give a systematic presentation of both logic and type theory from a categorical perspective, using the unifying concept of fibred category. Its intended audience consists of logicians, type theorists, category theorists and (theoretical) computer scientists.