Дополнительные вопросы: какую ОС вы используете? Вы полагаетесь на opam
?
Относительно первой ошибки, которую вы получаете, это, безусловно, исходит из следующего факта:
вне доказательства, двоичный файл coqc
соответствует Coq 8.11, тогда как в ProofGeneral двоичный файл coqtop
соответствует Coq 8.6. Возможно, потому что переменная PATH
не одинакова в двух контекстах.
Чтобы выяснить, какой двоичный файл найден, вы можете сделать это в терминале which coqtop
и в Emacs, M-! который coqtop RET , и поэтому вы должны получить разные пути.
Иногда открытие emacs
непосредственно из терминала (emacs &
) может помочь в решении этой проблемы.
Но если вы хотите изменить двоичный файл coqtop
, используемый в ProofGeneral, вы можете установить параметр coq-prog-name
, выполнив одно из следующих действий:
Интерактивно введите C -u C - c C -x (убить Coq), M-: (setq coq-prog -name "… / coqtop") и C - c C -n
Или создать файл .dir-locals.el
(Стандартный conf-файл Emacs) в проекте root, содержащий:
((coq-mode . ((coq-prog-name . "…/coqtop"))))
и закрытие / повторное открытие файла ….v
на карту (или просто выполните Mx нормальный режим RET или C -x C -v RET в уже открытом буфере ….v
)
Относительно второго вы получаете ошибку, я немного озадачен, что Require Extraction
вызывает эту ошибку, так как эта библиотека существует в Coq 8.6 и 8. 11.
На первый взгляд, я бы предложил повторно протестировать автокомпиляцию с Coq 8.11, утверждая From Coq Require Extraction.
(вместо просто Require Extraction.
)
Но, возможно, есть ошибка в функции PG Auto Compilation -> Compile before require
; В любом случае, при необходимости откройте связанную проблему в трекере PG, сообщения об ошибках и запросы функций приветствуются: https://github.com/ProofGeneral/PG/issues