Без заголовка
Мы видимо на несколько разных уровнях оперируем. В практической деятельности, безусловно оперировать бинарными предикатами не всегда удобно, мягко говоря.
Но я писал про другое. Есть определенная методология формализации. Любая система динамична - она реагирует на какие-то события и порождает какие-то ответные реакции (ибо если система не шевелится, то она на хрен никому не нужна).
Таким образом можно описать и классифицировать входные события и выходные реакции. И построить модель системы связав вход и выход какой-то функцией. Т.е. такую функция всегда можно построить до нужной степени приближения - это вопрос затрачиваемых усилий и квалификации моделера. Это касается и домов престарелых и процесно-ориентированных архитектур.
Также на основе классификации входов и выходов, можно определить, какие сценарии развития событий нежелательны. Таким образом, возникает ограничения на множестве пар входов/выходов, т.е. предикат. Он бинарный в том, смысле, что у него два параметра. Но это обобщенная ситуация. На практике, конечно его можно описывать какими-то комбинацими предикатов, или функций и прочих символов. Но все они все равно приводимы к общему виду, когда есть обобщенное множество входов, множество выходов (любые предикаты сводимы к бинарным, функцию тоже можно моделировать предикатами). Есть множество функций, преобразующих входы в выходы. Есть предикат, который говорит, какие пары входов/выходов правильные, а какие нет.
На уровне подсистем это тоже верно. Т.е. можно задавать контракты для черных ящиков, что они должны вести себя определенным образом. Тогда можно дать какие-то гарантии для протоколов взаимодействия таких черных ящиков, при условии, что они соблюдают контракты. Ну и т.д.
При этом конечно, возможности формализации ограниченны - прежде всего затратами на проведение этой формализации. Поэтому в слабоформализуемых областях применять формализмы и прочие предикаты, может особого смысла и нет (а с другой стороны, всегда можно напороться на неожиданно простую и продуктивную формализацию).