Как изменить версию Coq в Proof General? - PullRequest
3 голосов
/ 22 апреля 2020

У меня есть код, который компилирует только код coq в Coq 8.09.0. Версия, которую я обычно использую, является самой современной версией, которая является Coq 8.11.0. Я смог создать новую среду с помощью переключателя opam и установил там Coq 8.09.0. Я успешно скомпилировал все файлы с этой версией; Тем не менее, я не могу использовать доказательство общего в Emacs, поскольку он по-прежнему использует Coq 8.11.0. Мне было интересно, как я могу заставить Proof General использовать другой экземпляр opam с помощью переключателя opam в Emacs. Я попытался сделать следующее в eshell

opam switch vst
eval $(opam env)

, где vst - это имя коммутатора, как видно из вывода opam switch в моем терминале:

#   switch   compiler                                                                         description
    4.10.0   ocaml-base-compiler.4.10.0                                                       4.10.0
    default  base-bigarray.base,base-threads.base,base-unix.base,ocaml.4.02.3,ocaml-config.1  default
->  vst      ocaml-base-compiler.4.09.0                                                       vst

Однако, вывод строки eval $(opam env) выглядит следующим образом:

Symbol’s function definition is void: opam

Что не имеет смысла, так как он понимает, что означает opam, поскольку он смог выполнить первую команду нормально. Есть ли правильный способ сделать opam switch, чтобы изменить то, что использует emacs? Есть ли способ явно указать Proof General, какой экземпляр Coq он должен использовать? Должен ли я просто удалить Coq 8.11.0 и установить Coq 8.09.0 напрямую, используя pacman (я использую manjaro)?

1 Ответ

2 голосов
/ 22 апреля 2020

Использование M-x и поиск «версии opam» дали мне многообещающую опцию

tuareg-opam-update-env

, которая позволяет переключать среды. Выполнение этого для переключения на vst перед открытием файла coq и отсутствие автоматической проверки версии Coq, казалось, работало нормально. Конечно, это предполагает, что у вас уже установлен туарег.

...