DeepAI AI Chat
Log In Sign Up

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

07/06/2020

A Term-Rewriting Semantics for Imperative Style Programming

Term rewriting systems have a simple syntax and semantics and facilitate...
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...
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 ...
09/05/2022

A Formal Theory of Choreographic Programming

Choreographic programming is a paradigm for writing coordination plans f...
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...
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...
07/12/2019

Language Support for Adaptation: Intent-Driven Programming in FAST

Historically, programming language semantics has focused on assigning a ...