private Pair<Bool, DI> computeInitialValue(Expression exprOrNull, DI input) {
if (exprOrNull == null)
return Pair.create(null, input);
BooleanEvaluationState<DI> x = evaluateCondition(input, exprOrNull);
Bool resultVal = Bool.BOTTOM;
DI resultState = x.conditionMet;
if (!x.conditionMet.isBottom())
resultVal = resultVal.join(Bool.TRUE);
if (!x.conditionNotMet.isBottom()) {
resultVal = resultVal.join(Bool.FALSE);
resultState = resultState.join(x.conditionNotMet);
}
return Pair.create(resultVal, resultState);
}