Open amahboubi opened 3 years ago
Hi @amahboubi, it seems that you are using OPAM v1 (but then, there would be a problem with installing MathComp...). OPAM file generated by coq-community Templates requires OPAM 2.0 or later. The latest version of OPAM (2.1.0) may produce a better error message.
Also, if your OPAM switch uses OCaml < 4.07.0, I suggest using OCaml >= 4.07.0. The latest available version of Coq-Elpi compatible with Coq 8.13.1 (coq-elpi.1.11.1) requires that. (Sorry for saying random suggestions. From what I see, it's difficult to guess what's going on in your OPAM switch.)
Hi @amahboubi, it seems that you are using OPAM v1 (but then, there would be a problem with installing MathComp...). OPAM file generated by coq-community Templates requires OPAM 2.0 or later.
I am not:
assia@tepoztlan:~$ opam --version
2.0.5
But I can try to upgrade my opam
to the latest version and come back. If you think that's really useful. But wouldn't that be surprising?
Also, if your OPAM switch uses OCaml < 4.07.0, I suggest using OCaml >= 4.07.0. The latest available version of Coq-Elpi compatible with Coq 8.13.1 (coq-elpi.1.11.1) requires that. (Sorry for saying random suggestions. From what I see, it's difficult to guess what's going on in your OPAM switch.)
Sure, I understand. I can try to provide more information. I do not think that my OCaml version is guilty. Here is more info on the switch I tried to use for installing your work:
assia@tepoztlan:~$ opam list
# Packages matching: installed
# Name # Installed # Synopsis
base v0.14.1 Full standard library replacement f
base-bigarray base
base-threads base
base-unix base
camlp5 7.14 Preprocessor-pretty-printer of OCam
conf-findutils 1 Virtual package relying on findutil
conf-g++ 1.0 Virtual package relying on the g++
conf-gmp 3 Virtual package relying on a GMP li
conf-m4 1 Virtual package relying on m4
conf-perl 1 Virtual package relying on perl
conf-perl-ipc-system-simple 1 Virtual package relying on perl's I
conf-perl-string-shellquote 1 Virtual package relying on perl's S
coq 8.13.1 Formal proof management system
coq-coquelicot 3.2.0 A Coq formalization of real analysi
coq-elpi 1.9.5 Elpi extension language for Coq
coq-equations 1.2.4+8.13 A function definition package for C
coq-extructures 0.2.2 Finite sets, maps, and other data s
coq-hierarchy-builder 1.1.0 High level commands to declare and
coq-hott 8.13 The Homotopy Type Theory library
coq-mathcomp-algebra 1.12.0 Mathematical Components Library on
coq-mathcomp-analysis 0.3.7 An analysis library for mathematica
coq-mathcomp-bigenough 1.0.0 A small library to do epsilon - N r
coq-mathcomp-character 1.12.0 Mathematical Components Library on
coq-mathcomp-field 1.12.0 Mathematical Components Library on
coq-mathcomp-fingroup 1.12.0 Mathematical Components Library on
coq-mathcomp-finmap 1.5.1 Finite sets, finite maps, finitely
coq-mathcomp-real-closed 1.1.2 Mathematical Components Library on
coq-mathcomp-solvable 1.12.0 Mathematical Components Library on
coq-mathcomp-ssreflect 1.12.0 Small Scale Reflection
coq-mathcomp-zify 1.0.0+1.12+8.13 Micromega tactics for Mathematical
cppo 1.6.7 Code preprocessor like cpp for OCam
csexp 1.3.2 Parsing and printing of S-expressio
dune 2.8.1 Fast, portable, and opinionated bui
dune-configurator 2.8.1 Helper library for gathering system
elpi 1.13.0 ELPI - Embeddable λProlog Interpre
ledit 2.04 Line editor, a la rlwrap
num 1.3 The legacy Num library for arbitrar
ocaml 4.09.0 The OCaml compiler (virtual package
ocaml-base-compiler 4.09.0 Official release 4.09.0
ocaml-compiler-libs v0.12.3 OCaml compiler libraries repackaged
ocaml-config 1 OCaml Switch Configuration
ocaml-migrate-parsetree 1.8.0 Convert OCaml parsetrees between di
ocamlfind 1.8.1 A library manager for OCaml
ppx_derivers 1.2.1 Shared [@@deriving] plugin registry
ppx_deriving 5.1 Type-driven code generation for OCa
ppxlib 0.14.0 Base library and tools for ppx rewr
re 1.9.0 RE is a regular expression library
result 1.5 Compatibility Result module
seq base Compatibility package for OCaml's s
sexplib0 v0.14.0 Library containing the definition o
stdio v0.14.0 Standard IO library for OCaml
zarith 1.12 Implements arithmetic and logical o
(I do not know how to render the underlined iterms but) I use an OCaml 4.09 compiler, coq 8.13.1 and coq-elpi 1.9.5.
Let me know if you need more information.
@amahboubi Could you try to upgrade coq-elpi to 1.11.1 by:
opam install coq-elpi.1.11.1
and then try opam install coq-mathcomp-algebra-tactics.0.1.0
again? (It may force you to remove Hierarchy Builder, but its version 1.2.0 should be compatible.)
Let me know if you need more information.
The output of opam pin
would be useful if there is any.
mczify should also be 1.1.0. But, I expect there is no conflict with that.
@amahboubi Could you try to upgrade coq-elpi to 1.11.1 by:
opam install coq-elpi.1.11.1
It doesn't work, failing with the same message:
ssia@tepoztlan:~$ opam install coq-elpi.1.11.1
Sorry, no solution found: there seems to be a problem with your request.
No solution found, exiting
Let me know if you need more information.
The output of
opam pin
would be useful if there is any.
This one is empty:
assia@tepoztlan:~$ opam pin
assia@tepoztlan:~$
May be @gares could have a clue, since the problem seems to also affect my upgrading coq-elpi
?
No clue, I would try to make a clean switch and install in there just algebra tactics and see what happens.
I mean, see what the constraint solver says.
Hmm, what about opam upgrade elpi coq-elpi coq-hierarchy-builder
?
Hmm, what about
opam upgrade elpi coq-elpi coq-hierarchy-builder
?
Same error message:
Sorry, no solution found: there seems to be a problem with your request.
No clue, I would try to make a clean switch and install in there just algebra tactics and see what happens.
OK, will do that and report. Thank you both.
Reporting live:
assia@tepoztlan:~/Repos$ opam switch create algebra-tactics/
[ERROR] The following local packages don't appear to be installable:
- coq-mathcomp-algebra-tactics.dev
Do you want to create an empty switch regardless? [Y/n] Y
coq-mathcomp-algebra-tactics is now pinned to git+file:///home/assia/Repos/algebra-tactics#master (version dev)
Sorry, no solution found: there seems to be a problem with your request.
No solution found, exiting
Now trying with a simple clean switch.
I am tired. I am upgrading to opam 2.1 (I was still on 2.0.5). I have so far ignored the error messages ubutnu 20.4's package manager displayed when trying to upgrade opam (or even to report the pb to devs) but I guess I have tackle my head on it at some point...
Keeping you posted, I now have a brand new opam
version 2.1.0
(had to de-install manually opam-installer
and opam-doc
). But I have other issues:
assia@tepoztlan:~/Repos$ opam switch
# switch compiler description
/home/assia/Repos/algebra-tactics
/home/assia/Repos/algebra-tactics
4.09.0 ocaml-base-compiler.4.09.0 4.09.0
belugo ocaml-base-compiler.4.10.0 belugo
→ current-coq ocaml-base-compiler.4.09.0 current-coq
default ocaml-system.4.05.0 default
itauto ocaml-base-compiler.4.11.1 itauto
with-analysis-local ocaml-base-compiler.4.05.0
with-analysis-local
with-coq with-coq
with-smtcoq ocaml-base-compiler.4.09.0 with-smtcoq
assia@tepoztlan:~/Repos$ opam install coq-mathcomp-algebra-tactics
[WARNING] Opam package conf-perl-string-shellquote.1 depends on the following
system package that can no longer be found: libstring-shellquote-perl
[ERROR] Package conflict!
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
no matching version
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
no matching version
No solution found, exiting
Continuing to investigate...
OK, the system package issue is now fixed, but I still get the dependency error messages:
assia@tepoztlan:~/Repos$ opam install coq-mathcomp-algebra-tactics
[ERROR] Package conflict!
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
no matching version
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
no matching version
No solution found, exiting
And I cannot force upgrade:
assia@tepoztlan:~/Repos$ opam upgrade elpi coq-elpi coq-hierarchy-builder
[ERROR] Package conflict!
* Missing dependency:
- coq-elpi >= 1.9.6 → elpi >= 1.13.1
no matching version
* Missing dependency:
- coq-elpi >= 1.9.6 → elpi >= 1.13.5
no matching version
* Missing dependency:
- coq-elpi >= 1.9.6 → elpi >= 1.13.6
no matching version
Which I do not understand at all. So in the end I will try to create a fresh switch with my fresh opam...
(I was not expecting to have to re-install the package manager and perl libs to be able to test these tactics :-/
The perl business is pulled in by camlp5, I've already complained... eventually I will get rid of it.
Sorry to keep you trying... Can you run opam show elpi
so that I can see all the versions you do have at disposal?
You should see 1.13.7 (https://opam.ocaml.org/packages/elpi/).
I also do not understand how to create fresh opam switches it seems, except if they are empty. Should that have worked?
assia@tepoztlan:~$ opam switch create clean-coq --empty
# Run eval $(opam env --switch=clean-coq) to update the current shell
environment
assia@tepoztlan:~$ eval $(opam env --switch=clean-coq)
assia@tepoztlan:~$ opam repo add coq-released https://coq.inria.fr/opam/released
[coq-released] synchronised from https://coq.inria.fr/opam/released
[NOTE] Repository coq-released has been added to the selections of switch
clean-coq only.
Run `opam repository add coq-released --all-switches|--set-default' to
use it in all existing switches, or in newly created switches,
respectively.
assia@tepoztlan:~$ opam install coq-mathcomp-algebra-tactics
[ERROR] Package conflict!
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
no matching version
* Missing dependency:
- coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
no matching version
No solution found, exiting
@amahboubi By following the same instruction, my OPAM (2.0.5 actually) could resolve dependencies. Did you run opam show elpi
?
Also, did you run opam update
recently?
Also, did you run
opam update
recently?
It is a fresh installation of opam
with a fresh switch and a fresh opam repo add
as displayed in my previous message. Anyway, I ran opam update
which said no changes
, as expected.
assia@tepoztlan:~$ opam show elpi
<><> elpi: information on all versions ><><><><><><><><><><><><><><><><><><><><>
name elpi
all-installed-versions 1.13.0 [current-coq]
all-versions 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.2.0 1.3.1
1.4.0 1.4.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1
1.10.0 1.10.1 1.10.2 1.11.0 1.11.1 1.11.2 1.11.3
1.11.4 1.11.4-1 1.12.0 1.13.0 1.13.1 1.13.2
1.13.4 1.13.5 1.13.6 1.13.7
<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><><><>
version 1.13.7
repository default
url.src "https://github.com/LPCIC/elpi/releases/download/v1.13.7/elpi-v1.13.7.tbz"
url.checksum
"sha256=d106ce127ad10980369970c644a7be41809748448b26f2f3456d08abeff73fd6"
"sha512=cb7b9442b47feefa6034ed37a0594dab6c5006fa4065dcf96248a8a611d104971386331c1e78ff07efd3e9eb2b7741fe2dcf7dac151d420a63a0abdbb30d51e6"
homepage "https://github.com/LPCIC/elpi"
doc "https://LPCIC.github.io/elpi/"
bug-reports "https://github.com/LPCIC/elpi/issues"
dev-repo "git+https://github.com/LPCIC/elpi.git"
authors "Claudio Sacerdoti Coen" "Enrico Tassi"
maintainer "Enrico Tassi <enrico.tassi@inria.fr>"
license "LGPL-2.1-or-later"
depends "ocaml" {>= "4.04.0"}
"camlp5" {< "7.99"}
"ppxlib" {>= "0.12.0"}
"re" {>= "1.7.2"}
"ppx_deriving" {>= "4.2"}
"ANSITerminal" {with-test}
"cmdliner" {with-test}
"dune" {>= "2.2.0"}
"conf-time" {with-test}
synopsis ELPI - Embeddable λProlog Interpreter
description
ELPI implements a variant of λProlog enriched with Constraint
Handling Rules,
a programming language well suited to manipulate syntax trees with
binders.
ELPI is designed to be embedded into larger applications written in
OCaml as
an extension language. (...)
assia@tepoztlan:~$
Installing coq-elpi
seems to be ok actually. In the same empty switch:
assia@tepoztlan:~$ opam install coq-elpi
The following actions will be performed:
∗ install ocaml-options-vanilla 1
∗ install ocaml-base-compiler 4.12.1 [required by ocaml]
∗ install conf-gmp 3 [required by zarith]
∗ install conf-findutils 1 [required by coq]
∗ install base-bigarray base
∗ install base-threads base [required by dune]
∗ install conf-perl 1 [required by camlp5]
∗ install base-unix base [required by dune]
∗ install ocaml-config 2 [required by ocaml]
∗ install ocaml 4.12.1 [required by coq-elpi]
∗ install seq base [required by re]
∗ install ocamlfind 1.9.1 [required by coq]
∗ install dune 2.9.1 [required by coq, elpi]
∗ install camlp5 7.14 [required by elpi]
∗ install zarith 1.12 [required by coq]
∗ install stdlib-shims 0.3.0 [required by coq-elpi]
∗ install sexplib0 v0.14.0 [required by ppxlib]
∗ install result 1.5 [required by ppx_deriving]
∗ install re 1.10.3 [required by elpi]
∗ install ppx_derivers 1.2.1 [required by ppx_deriving]
∗ install ocaml-compiler-libs v0.12.4 [required by ppxlib]
∗ install cppo 1.6.8 [required by ppx_deriving]
∗ install coq 8.14.0 [required by coq-elpi]
∗ install ppxlib 0.23.0 [required by elpi]
∗ install ppx_deriving 5.2.1 [required by elpi]
∗ install elpi 1.13.7 [required by coq-elpi]
∗ install coq-elpi 1.11.2
===== ∗ 27 =====
Do you want to continue? [Y/n]
@gares sorry, I overlooked your answer, but yes it seems fine, as I see elpi
1.13.7.
so, it seems installing coq-elpi works and you get coq 8.14. If you press Y
and then, once finished, you opam install coq-mathcomp-algebra-tactics
, it blows up?
Amazing, it succeeded...
So the problem is when I ask for installing coq-mathcomp-algebra-tactics
from an empty switch, and not if we manually impose coq-elpi
first.
Something is very fishy here, looks like a bug in the constraint solver to me. I mean, it does no time out, it fails to find a solution! It would be a very common "bug" of automated provers, which typically sacrifice completeness for speed... maybe constraint solvers are the same.
Would you try again passing --use-internal-solver
? Maybe you happen to have an external solver installed (eg Z3...)
Sure. Try again which command?
installing coq-mathcomp-algebra-tactics from an empty switch
That thing, which would be opam switch create ...; opam install --use-internal-solver coq-m-c-a-t
I could not find a way to query which solvers opam is using, that would also answer my question: are we talking about the same solver or you are using another one? (I don't have any extra solver installed)
You could also try to open an issue, (eg: https://github.com/ocaml/opam/issues/4495 ), they were helpful.
Hi @pi8027 , I have an opam switch with coq 8.13.1, and I get the following error message when trying to install your library with opam, following the instructions in the readme: