检查 WolframCloud 中两个表达式的相等性

Checking equality of two expressions in WolframCloud

我想检查两个表达式是否相等。

例如 3a+5b === 5b+3a 应该 return 'true'.

我正在尝试使用函数:

CloudDeploy[
    APIFunction[
        {
            "x" ->Restricted["SemanticExpression", All, Automatic,"equalityTestingContext`"], 
            "y" ->Restricted["SemanticExpression", All, Automatic,"equalityTestingContext`"]
        },
        TrueQ[Simplify[#x == #y]] &
        ],
    Permissions -> "Public"
]

对于给定的示例,这 return 是正确的,但无法检查示例 5aewq+3(b^3) === 3(b^3)+5aqwe, returning 'No result — at least one parameter could not be interpreted'.

上面的代码应该更改什么以允许比较更复杂的表达式?也许 'Restricted' 口译员?

似乎解释器将5a解释为5*a,但aqwe解释为4个字母的变量名,与aewq不同。

我猜它(解释器)遵循许多编程语言共有的做法,即将以字母开头的字母数字字符串视为某种实体的名称,但将以数字开头的字符串解析为省略符号的乘法。

所以5a被解释为5*a,而123.45a被解释为123.45*a,但是aab等字符串, abc, a1, a2c 都被解释为实体名称。所有这些,特别是 2a 解释为 2*a 与 Mathematica / Wolfram 语言解释输入的方式一致。