List<StandardMethodContract> (List<LighterASTNode> operands, boolean conjunction, List<ValueConstraint[]> states) { BooleanReturnValue breakValue = returnBoolean(!conjunction); List<StandardMethodContract> finalStates = new ArrayList<>(); for (LighterASTNode operand : operands) { List<PreContract> opResults = visitExpression(states, operand); finalStates.addAll(ContainerUtil.filter(knownContracts(opResults), contract -> contract.getReturnValue() == breakValue)); states = antecedentsReturning(opResults, breakValue.negate()); } finalStates.addAll(toContracts(states, breakValue.negate())); return finalStates; }