fact: Fixpoint clean0 (x: X): X := match x with | dot x y => let x := clean0 x in let y := clean0 y in if is_zero x then zero else if is_zero y then zero else dot x y | plus x y => let x := clean0 x in let y := clean0 y in if is_zero x then y else if is_zero y then x else plus x y | x => x end.
imports: ATBR(MyFSets MyFSetProperties) ATBR(Common) ATBR(Classes) ATBR(Graph) ATBR(Monoid) ATBR(SemiLattice) ATBR(Numbers) ATBR(Reification)