Basically I declared a simplify (small 's') function:
simplify[expr_, assump_] := Simplify[ expr /. rulelist, assump];
This scans assump which is logically connected assumptions, expanded with
LogicalExpand (therefore in Disjunctive Normal Form):
(a > b && n == m) || (c > a && b != 0) || etc
this then gets broken down in consideration to whether it is Or-ed or And-ed. Then the relational expressions are recognized using pattern matching:
a > b, n == m, etc...
Then I create rules for them:
a > b -> True, n < m -> False, etc
which are all in rulelist.
A very simple approach, but necessary. As from what I've been told, Simplify would rather opt for the expensive Cylindrical Algebraic Decomposition before trying much less expensive approaches.
expr is my input and is typically quite big expression of equations logically connected together (And-ed and Or-ed).
The problem is that I get the error:
I checked the error ouput (I won't post it here) and I inserted
The resulting rulelist contain some trivial assumptions, var1 > 0, var1 > var2, etc, and some very large equalities/inequalities from previous calculations (being the majority of them), expanding to several rules for each. Right now, the Length[rulelist] is just 98 but will be even larger later.
So is the error due to the max limit being reached? What system variable do I need to modify??
If it's the max being reached, I'd rather first try increasing the limit, before writing my own replaceall, that takes rulelist bit by bit using another function.