(datatype Math (Add Math Math) (Lit i64))
(birewrite (Add (Add x y) z) (Add x (Add y z)))
(let $a (Lit 1))
(let $b (Lit 2))
(let $c (Lit 3))
(let $d (Lit 4))
(let $e (Lit 5))
(let $f (Lit 6))
(let $ex1 (Add (Add $a $b) $c))
(let $ex2 (Add $d (Add $e $f)))
(run 10)
(check (= $ex1 (Add $a (Add $b $c))))
(check (= $ex2 (Add (Add $d $e) $f)))