AlgebraicJulia / GATlab.jl

GATlab: a computer algebra system based on generalized algebraic theories (GATs)
https://algebraicjulia.github.io/GATlab.jl/
MIT License
24 stars 2 forks source link

Normal form for associative, unital operations #59

Closed epatters closed 1 year ago

epatters commented 1 year ago

A standard trick in computer algebra, including in the current GAT implementation in Catlab (#57), is to normalize binary expressions for associative operations by using trees with arbitrary branching. Gatlab should implement this too.

Note that this transformation is not handled by generic rewriting, but at the level of the data structures themselves.

olynch commented 1 year ago

This is split into #88 and #41; one issue for GATExprs and one issue for AlgTerms.