The following still gives a-b. Is it expected?

RCP<const Basic> a(symbol("a")), b(symbol("b")), c(symbol("c")), asubb = sub(a,b);

map_basic_basic dict3 = {{sub(b,a), c}};

cout << *(asubb->subs(dict3)) << endl;

RCP<const Basic> a(symbol("a")), b(symbol("b")), c(symbol("c")), asubb = sub(a,b);

map_basic_basic dict3 = {{sub(b,a), c}};

cout << *(asubb->subs(dict3)) << endl;

@tgn3000, subs is not mathematically aware yet. Another issue is symengine/symengine#1359

We'd like to keep

`xreplace`

as mathematically unaware and just do replacement on the expression tree and `subs`

to be more mathematically aware
@Malkhan52, we are still working on supporting symengine.rb on windows