Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
seo-пост: говно эти ваши комплюктеры. Вот с такой питушнёй приходится иметь дело, просто чтобы доказать, что если разбить инструкции некой абстрактной машины на некий ``микрокод'', то отсутствие гонок и конфликтов между последовательностью микроинструкций гарантирует отсутствие гонок между самими инструкциями с точностью до сетоида.
Вот вы всё гыгыкаете, а оказалось, что эта теорема нихуя не работает в общем случае, т.к. питух поймал corner case, где микроинструкция может пересечься с инструкцией из процесса с пидом, созданным в будущем. В итоге, хуй там, а не symmetry reduction для общего случая двух разных процессов. Ось времени им подавай. Тому, кто эту вашу многопоточность придумал, нужно гвоздь в голову забить, а за распределённые системы вообще нужно под килём протаскивать.
...Теперь таскай инвариант о валидности всех процессов, созданных в прошом, таскай его полностью, в каждый interleaving, в каждый сетоид. Багор просто неописуемый. Потоптал мою красивую ма-те-ма-тику питушок, ничего не скажешь.
Здравствуй, бложик. В общем, идея с этим инвариантом проканала, но среднее доказательство занимает теперь 200 строк. И это при том, что все мои пруфы обмазаны огромным количеством тактик, т.е. большая кода часть автоматически доказывается. Очень-очень большой багор из-за одной мелкой детали.
Но самое ужасное, что пришлось-таки при-нять аксиому proof_irrelevance, а до этого теория была чисто конструктивная, без всяких аксиом. Последнюю, вероятно, можно выкинуть, если ещё дальше всё усложнить.
Но самое ужасное, что пришлось-таки при-нять аксиому proof_irrelevance, а до этого теория была чисто конструктивная, без всяких аксиом. Последнюю, вероятно, можно выкинуть, если ещё дальше всё усложнить.