В теории должно быть возможно, по крайней мере, грубая сила проверки алгоритма блокировки (имеется только так много комбинаций переходов функций). Существуют ли какие-либо инструменты или формальные методы рассуждений, чтобы фактически доказать, что алгоритм блокировки является правильным (в идеале он должен также иметь возможность проверять условия гонки и проблему ABA)?
Примечание. Если вы знаете способ просто доказать одну точку (например, только доказать, что она безопасна из-за проблемы ABA) или проблема, о которой я не упоминал, тогда опубликуйте решение в любом случае. В худшем случае каждый метод может быть сделан по очереди, чтобы полностью проверить его.