randRange(3, 8) randRange(2, 4) randFromArray([ function(x, y) { return ["+", ["*", C, x], y]; }, function(x, y) { return ["-", ["*", C, x], y]; }, function(x, y) { return ["+", x, ["*", C, y]]; }, function(x, y) { return ["-", x, ["*", C, y]]; }, function(x, y) { return ["-", ["*", C, x], ["*", D, y]]; }, function(x, y) { return ["-", ["*", D, x], ["*", C, y]]; }, function(x, y) { return ["*", x, ["-", y, C]]; }, function(x, y) { return ["*", ["-", C, x], y]; }, function(x, y) { return ["+", ["^", x, 2], ["*", D, ["^", y, 2]]]; }, function(x, y) { return ["+", ["*", D, ["^", x, 2]], ["^", y, 2]]; }, function(x, y) { return ["-", ["^", x, 2], ["*", D, ["^", y, 2]]]; }, function(x, y) { return ["-", ["*", D, ["^", x, 2]], ["^", y, 2]]; }, function(x, y) { return ["-", ["*", D, x], C]; }, function(x, y) { return ["+", ["*", C, y], D]; }, function(x, y) { return ["+", ["*", x, y], ["*", D, x], ["-", y]]; } ]) randRange(-6, 6) randRange(-6, 6) expr(FUN("x", "y")) expr(FUN(X, Y)) expr(FUN(X, Y), true) !isNaN(expr(FUN(0, NaN), true)) !isNaN(expr(FUN(NaN, 0), true))

If `x binop(1) y = TEXT`, find `X binop(1) Y`.

VALU

Substitute in `x = X` `y = Y` `x = X` and `y = Y` to get `SUBS`.

Simplify the expression to get `VALU`.