-
-
Notifications
You must be signed in to change notification settings - Fork 46
Open
Description
Hello,
The following rewrite rules and E-graph saturation process:
t = @theory a begin
false --> 0 ≥ 1
end
g = EGraph{Expr, Nothing}(:(false))
saturate!(g, t)
println(g)
result in the following E-graph:
EGraph{Expr, Nothing} with 2 e-classes:
1 => [0, %1 ≥ %2]
2 => [1]
As you can see, it puts 0
and false
in the same class. This makes sense because in julia 0 == false
returns true.
However, is there a way to make sure 0
and false
do not end up in the same class?
I tried adding the type Bool
to false
, but when I do that, it just does not apply the rule anymore.
Metadata
Metadata
Assignees
Labels
No labels