Unfortunately this is deep in Num operations: sqrt(Num(2)) * sqrt(Num(2)) === Num(2.0). That’s not a general eagerness to simplify Num scalars e.g. sqrt(Num(2))*sqrt(Num(18)) does not simplify at all to Num(6.0). I’m pretty sure rule rewriting of subexpressions can’t change how Julia operations are implemented. I couldn’t quickly find a Github issue along these lines, so I don’t know what the developers’ opinions on this are.