+ const ex & subsed_lh = lh.subs(m, options);
+ const ex & subsed_rh = rh.subs(m, options);
+
+ if (!are_ex_trivially_equal(lh, subsed_lh) || !are_ex_trivially_equal(rh, subsed_rh))
+ return relational(subsed_lh, subsed_rh, o).subs_one_level(m, options);
+ else
+ return subs_one_level(m, options);
+}
+
+ex relational::eval_ncmul(const exvector & v) const
+{
+ return lh.eval_ncmul(v);