28 research outputs found
Multisorted modules and their model theory
Multisorted modules, equivalently representations of quivers, equivalently
additive functors on preadditive categories, encompass a wide variety of
additive structures. In addition, every module has a natural and useful
multisorted extension by imaginaries. The model theory of multisorted modules
works just as for the usual, 1-sorted modules. A number of examples are
presented, some in considerable detail
Type Classes for Mathematics in Type Theory
The introduction of first-class type classes in the Coq system calls for
re-examination of the basic interfaces used for mathematical formalization in
type theory. We present a new set of type classes for mathematics and take full
advantage of their unique features to make practical a particularly flexible
approach formerly thought infeasible. Thus, we address both traditional proof
engineering challenges as well as new ones resulting from our ambition to build
upon this development a library of constructive analysis in which abstraction
penalties inhibiting efficient computation are reduced to a minimum.
The base of our development consists of type classes representing a standard
algebraic hierarchy, as well as portions of category theory and universal
algebra. On this foundation we build a set of mathematically sound abstract
interfaces for different kinds of numbers, succinctly expressed using
categorical language and universal algebra constructions. Strategic use of type
classes lets us support these high-level theory-friendly definitions while
still enabling efficient implementations unhindered by gratuitous indirection,
conversion or projection.
Algebra thrives on the interplay between syntax and semantics. The
Prolog-like abilities of type class instance resolution allow us to
conveniently define a quote function, thus facilitating the use of reflective
techniques
Lax Diagrams and Enrichment
We introduce a new type of weakly enriched categories over a given symmetric
monoidal model category M; these are called Co-Segal categories. Their
definition derives from the philosophy of classical (enriched) Segal
categories. We study their homotopy theory by giving a model structure on them.
One of the motivations of introducing these structure was to have an
alternative definition of higher linear categories following Segal-like
methods.Comment: 131 pages; comments are welcom
Enriched Lawvere Theories for Operational Semantics
Enriched Lawvere theories are a generalization of Lawvere theories that allow
us to describe the operational semantics of formal systems. For example, a
graph enriched Lawvere theory describes structures that have a graph of
operations of each arity, where the vertices are operations and the edges are
rewrites between operations. Enriched theories can be used to equip systems
with operational semantics, and maps between enriching categories can serve to
translate between different forms of operational and denotational semantics.
The Grothendieck construction lets us study all models of all enriched theories
in all contexts in a single category. We illustrate these ideas with the
SKI-combinator calculus, a variable-free version of the lambda calculus.Comment: In Proceedings ACT 2019, arXiv:2009.0633
Frex: dependently-typed algebraic simplification
We present an extensible, mathematically-structured algebraic simplification
library design. We structure the library using universal algebraic concepts: a
free algebra -- fral -- and a free extension -- frex -- of an algebra by a set
of variables. The library's dependently-typed API guarantees simplification
modules, even user-defined ones, are terminating, sound, and complete with
respect to a well-specified class of equations. Completeness offers intangible
benefits in practice -- our main contribution is the novel design. Cleanly
separating between the interface and implementation of simplification modules
provides two new modularity axes. First, simplification modules share thousands
of lines of infrastructure code dealing with term-representation,
pretty-printing, certification, and macros/reflection. Second, new
simplification modules can reuse existing ones. We demonstrate this design by
developing simplification modules for monoid varieties: ordinary, commutative,
and involutive. We implemented this design in the new Idris2 dependently-typed
programming language, and in Agda