A Formalization of Operads in Coq

03/15/2023
by   Zachary Flores, et al.
0

What provides the highest level of assurance for correctness of execution within a programming language? One answer, and our solution in particular, to this problem is to provide a formalization for, if it exists, the denotational semantics of a programming language. Achieving such a formalization provides a gold standard for ensuring a programming language is correct-by-construction. In our effort on the DARPA V-SPELLS program, we worked to provide a foundation for the denotational semantics of a meta-language using a mathematical object known as an operad. This object has compositional properties which are vital to building languages from smaller pieces. In this paper, we discuss our formalization of an operad in the proof assistant Coq. Moreover, our definition within Coq is capable of providing proofs that objects specified within Coq are operads. This work within Coq provides a formal mathematical basis for our meta-language development within V-SPELLS. Our work also provides, to our knowledge, the first known formalization of operads within a proof assistant that has significant automation, as well as a model that can be replicated without knowledge of Homotopy Type Theory.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/06/2020

A Term-Rewriting Semantics for Imperative Style Programming

Term rewriting systems have a simple syntax and semantics and facilitate...
research
03/30/2022

A meta-probabilistic-programming language for bisimulation of probabilistic and non-well-founded type systems

We introduce a formal meta-language for probabilistic programming, capab...
research
06/02/2022

A Constraint and Object Oriented Fifth Generation Programming Language and its Compiler and Runtime System

Since the advent of LISP, the fifth generation programming language has ...
research
09/05/2022

A Formal Theory of Choreographic Programming

Choreographic programming is a paradigm for writing coordination plans f...
research
05/24/2020

A Proof Assistant Based Formalisation of Core Erlang

Our research is part of a wider project that aims to investigate and rea...
research
12/22/2021

Computable Model Discovery and High-Level-Programming Approximations to Algorithmic Complexity

Motivated by algorithmic information theory, the problem of program disc...
research
05/06/2022

The Supervisionary proof-checking kernel (or: a work-in-progress towards proof generating code)

Interactive theorem proving software is typically designed around a trus...

Please sign up or login with your details

Forgot password? Click here to reset