GATlab: Modeling and Programming with Generalized Algebraic Theories

Categories and categorical structures are increasingly recognized as useful abstractions for modeling in science and engineering. To uniformly implement category-theoretic mathematical models in software, we introduce GATlab, a domain-specific language for algebraic specification embedded in a techn...

Full description

Saved in:
Bibliographic Details
Published in:Electronic Notes in Theoretical Informatics and Computer Science Vol. 4 - Proceedings of...
Main Authors: Lynch, Owen, Brown, Kris, Fairbanks, James, Patterson, Evan
Format: Journal Article
Language:English
Published: 11.12.2024
ISSN:2969-2431, 2969-2431
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Categories and categorical structures are increasingly recognized as useful abstractions for modeling in science and engineering. To uniformly implement category-theoretic mathematical models in software, we introduce GATlab, a domain-specific language for algebraic specification embedded in a technical programming language. GATlab is based on generalized algebraic theories (GATs), a logical system extending algebraic theories with dependent types so as to encompass category theory. Using GATlab, the programmer can specify generalized algebraic theories and their models, including both free models, based on symbolic expressions, and computational models, defined by arbitrary code in the host language. Moreover, the programmer can define maps between theories and use them to declaratively migrate models of one theory to models of another. In short, GATlab aims to provide a unified environment for both computer algebra and software interface design with generalized algebraic theories. In this paper, we describe the design, implementation, and applications of GATlab. Comment: 14 pages plus references and appendix. To appear at MFPS 2024
ISSN:2969-2431
2969-2431
DOI:10.46298/entics.14666