Сегодня
thedeemon показал
ужосы, от которых у меня волосы в жилах стынут.
А мне стало интересно, можно ли накосячить подобным образом в coq.
Но писал я быстро, поэтому код некрасивый. Например, можно спокойно попрятать многое в implicit arguments, да и для vec выбрать более кошерный тип (например, кошерный в плане strict positivity).
(
Read more... )
Comments 9
Вообще, зачем вы всем этим занимаетесь?
Reply
Reply
По-моему, это должно быть ясно и вам.
Reply
Тем не менее, иногда гарантии стоят усилий, особенно совершаемых однократно.
Другие способы показательства (увы, не доказательства) корректности состоят в поднятии тестовой БД и прогонке на ней кучи тестов, что требует примерно "O(объём функциональности)" операций, тогда как в моём случае получается приблизительно "O(1) + однократные усилия". А я весьма много пишу с использованием реляционок, мне они нравятся, аж мимими. Поэтому решил поставить на второй вариант -- первый вариант остопиздел за долгий десяток лет разработки с использованием реляционок.
Кроме того, тесты всё не покрывают, и тесты надо изменять с изменением функциональности, тогда как процедура доказательства корректности в простых случаях является автоматической, не требует вмешательства.
Reply
В коке разве нет уже готового вектора? Хрестоматийный же тип из всех учебников по завтипам.
Ну и это, зачем ты туда волосы засовывал?
Reply
Про готовый вектор скажу, что он, если брать мои применения, ни разу не пригождался на практике. Поэтому и не знаю, есть он или нет его. Ну и первый абзац этого камента тоже в силе -- хотел максимально расхлябанно сделать, авось coq где-то подловит меня.
Reply
Reply
Reply
Leave a comment