Ладно, я надеюсь, что здесь училась математике, но если я прав, то это немного упрощается. Конечно, в конце это не выглядит одинаково, но основная логика должна быть такой же.
// Initial equation
(((a + p) <= b) && (a == 0 || a > 1) && (b >= p)) && ((b - (a + p) == 0) || (b - (a + p) > 1))
// ((a + p) <= b) iif a = 0 && p = b; therefore, b = p and a = 0 for this to work
(b == p) && ((b - (a + p) == 0) || (b - (a + p) > 1))
// Simplification, assuming that b = p and a = 0
(b == p) && (a == 0)
Однако, если мы действуем в предположении, что ноль не является ни положительным, ни отрицательным , то это означает, что любое значение для данного уравнения будет больше или равно единице. Это, в свою очередь, означает, что уравнение будет всегда оценивать как ложное из-за того, что следующее:
(a == 0 || a > 1)
Будет иметь значение true, только когда a> = 2; однако, если верно также следующее:
(b >= p)
Тогда это означает, что p по крайней мере равно b, таким образом:
((a + p) <= b)
Подстановкой становится:
((2 + b) <= b)
Что явно не может быть оценено как истина.