Проблема несложная, но на её примере проще всего показать, что имеется в виду
Проблема: Есть прямоугольники с шириной и высотой. Найти максимальное количество таких прямоугольников, что их можно вложить друг в друга (условие вкладки: widthA <= widthB, heightA <= heightB).
Решение: отсортировать массив по координате X, а при равенстве X по коопдинате Y и найти в получившемся массиве НВП по Y
Доказательство: Пусть в отсортированном массиве где-то располагается правильная последовательность прямоугольников максимальной длины (обозначена зелёными кружками на картинке). Тогда в этом отсортированном массиве относительный порядок элементов последовательности (как подпоследовательности) не нарушен: если xi > xj, значит элемент i правее в массиве, а если xi = xj, и yi > yj, то элемент i правее в массиве, а значит у максимальной длины последовательности в отсортированном таким образом массиве относительный порядок элементов такой же, как у правильной последовательности. Значит, если в этом массиве искать НВП по Y, то мы обязательно найдём эту последовательность (зелёные кружки)
Часто приходилось именно таким образом доказывать правильность работы алгоритма, что есть какой-то оптимум в проблеме, то алгоритм обязательно его не пропускает.
Вопрос: с формальной точки зрения является ли такое доказательство (когда доказательство основывается на том, что есть какой-то оптимум в проблеме и алгоритм всегда находит его) правильным, в том смысле что не упускает ли каких-то краеугольных вещей?