Мне интересно, существует ли обычно используемая библиотека для векторов в coq, I.e. списки, индексированные по их длине в их типе.Какую векторную библиотеку использовать в coq?
Некоторые учебные пособия ссылаются на Bvector, но его не обнаруживают, когда я пытаюсь импортировать его.
Существует Coq.Vectors.Vectordef, но тип, определенный здесь, называется только t
, что заставляет меня думать, что он предназначен для внутреннего использования.
Что является лучшей или наиболее распространенной практикой для тех, кто не хочет катить свою собственную библиотеку? Я ошибаюсь в отношении векторов в стандартной библиотеке? Или есть еще один Либ, которого я не хватает? Или люди просто используют списки, в сочетании с доказательствами их длины?
Я думаю, что @ejgallego отвечает на этот вопрос в этой [coq-club thread] (https://sympa.inria.fr/sympa/arc/coq-club/2017-01/msg00099.html). Кроме того, [этот ответ] (http://stackoverflow.com/a/30159566/2747511) Артура Азеведо де Аморима имеет тот же дух: «Хотя некоторые из них интересны для некоторых вещей, неясно, насколько полезны они вообще У меня сложилось впечатление, что некоторые считают, что они очень сложны в использовании, и что преимущество наличия определенных свойств, выраженных на уровне типа, в сравнении с их как отдельными теоремами, не стоит этой дополнительной сложности ». –
Кроме того, вы можете «потребовать вектор» (без импорта) и использовать квалифицированное имя 'Vector.t'. –
@ Антон Трунов, ты знаешь, почему это называется т? – jmite