JuliaSymbolics / Metatheory.jl

Makes Julia reason with equations. General purpose metaprogramming, symbolic computation and algebraic equational reasoning library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
https://juliasymbolics.github.io/Metatheory.jl/dev/
MIT License
355 stars 46 forks source link

Fix hash collisions in e-graph saturation #229

Closed gkronber closed 2 months ago

gkronber commented 2 months ago

Fix hash collision in EGraph.memo by changing the dictionary key to VecExpr. Create struct for VecExpr and wrap Vector{Id}.

gkronber commented 2 months ago

225

0x0f0f0f commented 2 months ago

Thanks!!!