LogicalExpression::determineBounds was removed from the code in issue-102 because it was only applied to the determinization and in the wrong place. In this issue, we want to reimplement the functionality, but as part of the simplify method. With it, we could for instance simplify
s' = if (s * Bernoulli(0.4)) > 1) then true else false
to s' = false because s * Bernoulli(0.4) cannot be larger than 1. (the example is not perfect since it comes from the determinization, where it makes also sense with ">=", but it should be sufficient to understand the idea).
LogicalExpression::determineBounds was removed from the code in issue-102 because it was only applied to the determinization and in the wrong place. In this issue, we want to reimplement the functionality, but as part of the simplify method. With it, we could for instance simplify
s' = if (s * Bernoulli(0.4)) > 1) then true else false
to s' = false because s * Bernoulli(0.4) cannot be larger than 1. (the example is not perfect since it comes from the determinization, where it makes also sense with ">=", but it should be sufficient to understand the idea).