internal override IEnumerable <ProgramState> SetConstraint(BoolConstraint boolConstraint, SymbolicValueConstraints leftConstraints, SymbolicValueConstraints rightConstraints, ProgramState programState) { if (boolConstraint == BoolConstraint.False) { return(RightOperand.TrySetConstraints(leftConstraints, programState) .SelectMany(ps => LeftOperand.TrySetConstraints(rightConstraints, ps))); } return(RightOperand.TrySetOppositeConstraints(leftConstraints, programState) .SelectMany(ps => LeftOperand.TrySetOppositeConstraints(rightConstraints, ps))); }