A collection of tools that one can use to reason with GATs and organize models of GATs.
- Declaration of GATs
- Multiple inheritance of GATs via pushouts
- Parameterized models of GATs ala Standard ML modules/functors
- E-Graph backed rewriting and type inference in arbitrary GATs
- Backwards compatibility with the Catlab implementation of GATs
The design and essential features of GATlab are described in our paper:
O. Lynch, K. Brown, J. Fairbanks, E. Patterson, 2024: "GATlab: Modeling and Programming with Generalized Algebraic Theories" arXiv:2404.04837