I got a new machine (mac book m1, not sure if it matters) and I noticed I didn't have Coq:
(base) brandomiranda~ β― coqc -v
zsh: command not found: coqc
So I went to the instructions to download coq (https://coq.inria.fr/opam-using.html). Some part of it seems to work:
(base) brandomiranda~ β― opam init
eval $(opam env)
<><> Required setup - please read <><><><><><><><><><><><><><><><><><><><><> π«
In normal operation, opam only alters files within ~/.opam.
However, to best integrate with your system, some environment variables
should be set. If you allow it to, this initialisation step will update
your zsh configuration by adding the following line to ~/.zshrc:
[[ ! -r /Users/brandomiranda/.opam/opam-init/init.zsh ]] || source /Users/brandomiranda/.opam/opam-init/init.zsh > /dev/null 2> /dev/null
Otherwise, every time you want to access your opam installation, you will
need to run:
eval $(opam env)
You can always re-run this setup with 'opam init' later.
Do you want opam to modify ~/.zshrc? [N/y/f]
(default is 'no', use 'f' to choose a different file) y
A hook can be added to opam's init scripts to ensure that the shell remains in sync with the opam environment when they are loaded. Set that up? [y/N] y
User configuration:
Updating ~/.zshrc.
but then when I go get and pin coq opam can't find it:
(base) brandomiranda~ β― opam pin add coq 8.15.0
[ERROR] Package coq has no known version 8.15.0 in the repositories
anyone know what is going on? Seems puzzling.
cross: https://coq.discourse.group/t/how-to-install-coq-when-it-says-the-repository-cannot-be-found/1562 https://github.com/coq/platform/issues/219
Getting this issue now:
(base) brandomiranda~ β― opam upgrade
[WARNING] Upgrade is not possible because of conflicts or packages that are no longer available:
- Missing dependency:
- ocaml-base-compiler = 4.07.0
unmet availability conditions: '!(os = "macos" & arch = "arm64")'
You may run "opam upgrade --fixup" to let opam fix the current state.
(base) brandomiranda~ β― opam upgrade --fixup
[ERROR] It appears that the switch invariant is no longer satisfiable. Either fix the package prerequisites or change the invariant with 'opam switch set-invariant'.
* Missing dependency:
- ocaml-base-compiler = 4.07.0
unmet availability conditions: '!(os = "macos" & arch = "arm64")'
No solution found, exiting
(base) brandomiranda~ β― opam remove ocaml-base-compiler
* Missing dependency:
- ocaml-base-compiler = 4.07.0
unmet availability conditions: '!(os = "macos" & arch = "arm64")'
No solution found, exiting
also:
(base) brandomiranda~ β― opam info coq
<><> coq: information on all versions <><><><><><><><><><><><><><><><><><><> π«
name coq
all-versions 8.3 8.4pl1 8.4pl2 8.4pl4 8.4.5 8.4.6~camlp4 8.4.6 8.5.0~camlp4 8.5.0 8.5.1 8.5.2~camlp4 8.5.2 8.5.3 8.6 8.6.1 8.7.0 8.7.1 8.7.1+1 8.7.1+2 8.7.2
8.8.0 8.8.1 8.8.2 8.9.0 8.9.1 8.10.0 8.10.1 8.10.2 8.11.0 8.11.1 8.11.2 8.12.0 8.12.1 8.12.2 8.13.0 8.13.1 8.13.2 8.14.0 8.14.1 8.15.0
<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><> π«
version 8.15.0
repository default
url.src "https://github.com/coq/coq/archive/refs/tags/V8.15.0.tar.gz"
url.checksum "sha256=73466e61f229b23b4daffdd964be72bd7a110963b9d84bd4a86bb05c5dc19ef3"
homepage "https://coq.inria.fr/"
bug-reports "https://github.com/coq/coq/issues"
dev-repo "git+https://github.com/coq/coq.git"
authors "The Coq development team, INRIA, CNRS, and contributors."
maintainer "[email protected]"
license "LGPL-2.1-only"
depends "ocaml" {>= "4.05.0"}
"ocamlfind" {build}
"dune" {>= "2.5.1"}
"conf-findutils" {build}
"zarith" {>= "1.10"}
depopts "coq-native"
conflicts "base-nnp" "ocaml-option-nnpchecker"
synopsis Formal proof management system
description The Coq proof assistant provides a formal language to write
mathematical definitions, executable algorithms, and theorems, together
with an environment for semi-interactive development of machine-checked
proofs. Typical applications include the certification of properties of programming
languages (e.g., the CompCert compiler certification project and the
Bedrock verified low-level programming library), the formalization of
mathematics (e.g., the full formalization of the Feit-Thompson theorem
and homotopy type theory) and teaching.
(base) brandomiranda~ β― opam switch create NAME 4.07.0
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><> π«
Switch invariant: ["ocaml-base-compiler" {= "4.07.0"} | "ocaml-system" {= "4.07.0"}]
[ERROR] Could not determine which packages to install for this switch:
* Missing dependency:
- ocaml-base-compiler = 4.07.0 | ocaml-system = 4.07.0
unmet availability conditions: '!(os = "macos" & arch = "arm64")'
unmet availability conditions: 'sys-ocaml-version = "4.07.0"'
Switch initialisation failed: clean up? ('n' will leave the switch partially installed) [Y/n] Y
seems there was an error:
β installed eprover.2.6
[ERROR] The compilation of cairo2.0.6.2 failed at "dune build -p cairo2 -j 16".
β installed ocamlgraph.2.0.0
β installed zarith.1.12
β installed coq-coqprime-generator.dev
β installed ocaml-migrate-parsetree.1.8.0
[ERROR] The compilation of z3.4.8.13 failed at "python3 scripts/mk_make.py --ml".
β installed menhir.dev
β installed ppxlib.0.15.0
β installed ppx_deriving.5.1
β installed elpi.1.14.1
β¬ retrieved coq-unimath.dev (git+https://github.com/UniMath/UniMath.git#master)
Processing 188/279: [coq: make]
β installed coq.dev
β installed coq-dpdgraph.dev
β installed coq-hammer-tactics.dev
β installed coq-ext-lib.dev
β installed coq-aac-tactics.dev
β installed coq-libhyps.dev
β installed coq-hammer.dev
β installed coq-paramcoq.dev
β installed coq-menhirlib.dev
β installed coq-simple-io.dev
β installed coq-bignums.dev
β installed coq-unicoq.dev
β installed coq-mathcomp-ssreflect.dev
β installed coq-hott.dev
β installed coq-stdpp.dev
β installed coq-flocq.3.dev
β installed coq-math-classes.dev
β installed coq-coquelicot.dev
β installed coq-coqprime.dev
β installed coq-equations.dev
β installed coq-gappa.dev
β installed coq-mathcomp-bigenough.dev
[ERROR] The compilation of coq-interval.dev failed at "./remake -j16".
β installed coq-mathcomp-fingroup.dev
β installed coq-elpi.dev
β installed coq-mtac2.dev
β installed coq-mathcomp-finmap.dev
β installed coq-hierarchy-builder.dev
β installed coq-reglang.dev
β installed coq-quickchick.dev
β installed coq-compcert.dev
β installed coq-iris.dev
β installed coq-mathcomp-algebra.dev
β installed coq-mathcomp-zify.dev
β installed coq-mathcomp-multinomials.dev
β installed coq-iris-heap-lang.dev
β installed coq-mathcomp-solvable.dev
β installed coq-corn.dev
β installed coq-mathcomp-field.dev
β installed coq-mathcomp-real-closed.dev
β installed coq-coqeal.dev
β installed coq-mathcomp-character.dev
β installed coq-mathcomp-analysis.dev
β installed coq-unimath.dev
β installed coq-vst.dev
#=== ERROR while compiling z3.4.8.13 ==========================================#
# context 2.1.2 | macos/arm64 | ocaml-base-compiler.4.10.2 | file:///Users/brandomiranda/Downloads/platform-2022.01.0/opam/opam-repository
# path ~/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/z3.4.8.13
# command ~/.opam/opam-init/hooks/sandbox.sh build python3 scripts/mk_make.py --ml
# exit-code 1
# env-file ~/.opam/log/z3-96628-ab4f2a.env
# output-file ~/.opam/log/z3-96628-ab4f2a.out
### output ###
# [...]
# Copied 'z3types.cpython-39.pyc'
# Copied 'z3core.cpython-39.pyc'
# Testing ocamlc...
# Testing ocamlopt...
# Traceback (most recent call last):
# File "/Users/brandomiranda/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/z3.4.8.13/scripts/mk_make.py", line 18, in <module>
# mk_bindings(API_files)
# File "/Users/brandomiranda/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/z3.4.8.13/scripts/mk_util.py", line 3044, in mk_bindings
# check_ml()
# File "/Users/brandomiranda/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/z3.4.8.13/scripts/mk_util.py", line 450, in check_ml
# raise MKException('Failed testing ocamlopt compiler. Set environment variable OCAMLOPT with the path to the Ocaml native compiler. Note that ocamlopt may require flexlink to be in your path.')
# mk_exception.MKException: 'Failed testing ocamlopt compiler. Set environment variable OCAMLOPT with the path to the Ocaml native compiler. Note that ocamlopt may require flexlink to be in your path.'
#=== ERROR while compiling coq-interval.dev ===================================#
# context 2.1.2 | macos/arm64 | ocaml-base-compiler.4.10.2 | https://coq.inria.fr/opam/extra-dev#2022-02-15 19:00
# path ~/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/coq-interval.dev
# command ~/.opam/opam-init/hooks/sandbox.sh build ./remake -j16
# exit-code 1
# env-file ~/.opam/log/coq-interval-96628-942e59.env
# output-file ~/.opam/log/coq-interval-96628-942e59.out
### output ###
# [...]
# [deprecated-syntactic-definition,deprecated]
# File "./src/Interval/Transcend.v", line 2077, characters 14-24:
# Warning: Notation plus_assoc is deprecated since 8.16.
# The Arith.Plus file is obsolete. Use Nat.add_assoc instead.
# [deprecated-syntactic-definition,deprecated]
# Finished src/Interval/Transcend.vo
# Finished src/Interval/Float_full.vo
# File "./src/Tactic.v", line 22, characters 0-42:
# Warning:
# New coercion path [real; Finite] : Rbar >-> Rbar is not definitionally an identity function.
# [ambiguous-paths,typechecker]
# Finished src/Tactic.vo
#=== ERROR while compiling cairo2.0.6.2 =======================================#
# context 2.1.2 | macos/arm64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#28fab8d8
# path ~/.opam/__coq-platform.2022.01.0~dev/.opam-switch/build/cairo2.0.6.2
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p cairo2 -j 16
# exit-code 1
# env-file ~/.opam/log/cairo2-96628-a005f1.env
# output-file ~/.opam/log/cairo2-96628-a005f1.out
### output ###
# ocamlmklib src/dllcairo_stubs.so,src/libcairo_stubs.a (exit 2)
# (cd _build/default && /Users/brandomiranda/.opam/__coq-platform.2022.01.0~dev/bin/ocamlmklib.opt -g -o src/cairo_stubs src/cairo_stubs.o -L/opt/homebrew/opt/freetype/lib -lfreetype -L/opt/homebrew/Cellar/fontconfig/2.13.1/lib -L/opt/homebrew/opt/freetype/lib -lfontconfig -lfreetype -L/opt/homebrew/Cellar/cairo/1.16.0_5/lib -lcairo)
# ld: in '/usr/local/lib/libpng16.16.dylib', building for macOS-arm64 but attempting to link with file built for macOS-x86_64
# clang: error: linker command failed with exit code 1 (use -v to see invocation)
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><> π«
ββ The following actions failed
β Ξ» build cairo2 0.6.2
β Ξ» build coq-interval dev
β Ξ» build z3 4.8.13
ββ
ββ The following changes have been performed (the rest was aborted)
β β install camlp5 7.14
β β install conf-adwaita-icon-theme 2
β β install conf-autoconf 0.1
β β install conf-automake 1
β β install conf-cairo 1
β β install conf-findutils 1
β β install conf-g++ 1.0
β β install conf-gcc 1.0
β β install conf-gmp 4
β β install conf-gtk3 18
β β install conf-gtksourceview3 0+2
β β install conf-libtool 1
β β install conf-perl 2
β β install conf-pkg-config 2
β β install conf-python-3 9.0.0
β β install conf-which 1
β β install coq dev
β β install coq-aac-tactics dev
β β install coq-bignums dev
β β install coq-compcert dev
β β install coq-coqeal dev
β β install coq-coqprime dev
β β install coq-coqprime-generator dev
β β install coq-coquelicot dev
β β install coq-corn dev
β β install coq-dpdgraph dev
β β install coq-elpi dev
β β install coq-equations dev
β β install coq-ext-lib dev
β β install coq-flocq 3.dev
β β install coq-gappa dev
β β install coq-hammer dev
β β install coq-hammer-tactics dev
β β install coq-hierarchy-builder dev
β β install coq-hott dev
β β install coq-iris dev
β β install coq-iris-heap-lang dev
β β install coq-libhyps dev
β β install coq-math-classes dev
β β install coq-mathcomp-algebra dev
β β install coq-mathcomp-analysis dev
β β install coq-mathcomp-bigenough dev
β β install coq-mathcomp-character dev
β β install coq-mathcomp-field dev
β β install coq-mathcomp-fingroup dev
β β install coq-mathcomp-finmap dev
β β install coq-mathcomp-multinomials dev
β β install coq-mathcomp-real-closed dev
β β install coq-mathcomp-solvable dev
β β install coq-mathcomp-ssreflect dev
β β install coq-mathcomp-zify dev
β β install coq-menhirlib dev
β β install coq-mtac2 dev
β β install coq-paramcoq dev
β β install coq-quickchick dev
β β install coq-reglang dev
β β install coq-simple-io dev
β β install coq-stdpp dev
β β install coq-unicoq dev
β β install coq-unimath dev
β β install coq-vst dev
β β install cppo 1.6.8
β β install csexp 1.5.1
β β install dune 2.9.3
β β install dune-configurator 2.9.3
β β install elpi 1.14.1
β β install eprover 2.6
β β install gmp-ecm 7.0.3
β β install menhir dev
β β install menhirLib dev
β β install menhirSdk dev
β β install num 1.4
β β install ocaml-compiler-libs v0.12.4
β β install ocaml-migrate-parsetree 1.8.0
β β install ocamlbuild 0.14.1
β β install ocamlfind 1.9.3
β β install ocamlgraph 2.0.0
β β install ppx_derivers 1.2.1
β β install ppx_deriving 5.1
β β install ppxlib 0.15.0
β β install re 1.10.3
β β install result 1.5
β β install seq base
β β install sexplib0 v0.14.0
β β install stdlib-shims 0.3.0
β β install zarith 1.12
ββ
<><> cairo2.0.6.2 troubleshooting <><><><><><><><><><><><><><><><><><><><><> π«
=> Try to re-run the install command with PKG_CONFIG_PATH pointing a pkg-config path including libffi, e.g. if you use homebrew you can try
PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
The former state can be restored with:
/opt/homebrew/bin/opam switch import "/Users/brandomiranda/.opam/__coq-platform.2022.01.0~dev/.opam-switch/backup/state-20220216165905.export"
when running the coq plataform script:
(base) brandomiranda~/Downloads/platform-2022.01.0 β― bash coq_platform_make.sh
opam update
? What doesopam info coq
tell you? β Giannaswitch
in order to change OCaml versions. See the opam switch manpage. For example,opam switch create NAME 4.07.0
. β Underbidopam switch create NAME 4.07.0 <><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><> π« Switch invariant: ["ocaml-base-compiler" {= "4.07.0"} | "ocaml-system" {= "4.07.0"}] [ERROR] Could not determine which packages to install for this switch: * Missing dependency: - ocaml-base-compiler = 4.07.0 | ocaml-system = 4.07.0 unmet availability conditions: '!(os = "macos" & arch = "arm64")' unmet availability conditions: 'sys-ocaml-version = "4.07.0"' Switch initialisation failed: clean up? ('n' will leave the switch partially installed)
β Summitopam repo add coq-released
thenhttps://coq.inria.fr/opam/released opam install coq
? β Summit