GithubHelp home page GithubHelp logo

Comments (21)

spitters avatar spitters commented on August 30, 2024

Discussion here suggests that it may be possible to add vampire too.
https://coq.discourse.group/t/what-does-it-mean-that-isabelle-has-better-automation-than-coq/957/14

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

I am currently looking into this package (late enough ...).

One question: there is an opam z3 package, which looks reasonably well maintained. The only rather odd thing about it is that it requires Python 2.7. Is it really so that z3 requires python 2.7 or is this a wrong dependency in the opam file (say it could live with a 3.x python instead as well).

I ask because these days it can be messy to require python2. Usually just "python" is now python3 on many systems, but many packages requiring python2 require that "python" is python2.

Any another question: shoudl Coq Platform just add z3 and leave it to the user to add additional provers as needed or do you have other preferences?

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

@lukaszcz, @palmskog : I just created an Opam package for E (there already is one for z3). I wonder how I can test if coq-hammer detects the various backend provers. Should I disable one or the other and try if the examples of coq-hammer still work?

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

@lukaszcz : thanks for the pointers! I guess it shouldn't be hard to change the z3 opam package such that it also compiles the tptp frontend.

Two more questions:

1.) @palmskog recommended above to install at least z3 and eprover, in the link you shared you recommend to install at least vampire and CVC4 - which leaves me in confusion ...

2.) The Windows installer (in the future also Mac) derives the dependencies between choosable packages from opam. The installer automatically selects and deselects packages accordingly and notifies the user about the dependencies. coq-hammer currently has no opam level dependencies to ATPs - likely because there are no usable opam packages. Assuming I manage to create usable opam packages (the eprover package looks fine and I had the impression that the z3 package did work as it is - at least the coq-hammer tutorial did work with just opam z3 installed) should the coq-hammer opam package depend on these? If not, how shall this be handled in the Windows installer? Should the ATP packages be independently selectable by the user relying on that the user knows what (s)he is doing?

from platform.

palmskog avatar palmskog commented on August 30, 2024

@MSoegtropIMC my old recommendation was for z3 and Eprover mostly because they were open source and together could give good results, and Eprover seemed the easiest to build/install. Now, Vampire has been open sourced, and I think Łukasz has a better view of what one should pick when the playing field is open.

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

@palmskog : thanks, I try my luck with eprover and z3_tptp then and add vampire later.

But I still don't get it. I am trying the examples in (https://github.com/lukaszcz/coqhammer/tree/coq8.13/examples/tutorial/hammer) and no matter if I have z3_tptp and/or eprover or not in the path, these examples run through fine without errors. Where is an example which actually requires an external ATP?

from platform.

palmskog avatar palmskog commented on August 30, 2024

@MSoegtropIMC the idea is that the effects of the running the hammer tactic are not generally reproducible, so anyone playing around with that file has to manually uncomment the hammer tactic call. What actually gets run if you don't uncomment hammer are reconstruction tactics that were found before (and are not guaranteed to be recommended again).

from platform.

palmskog avatar palmskog commented on August 30, 2024

What I think we can (should) do when the ATPs are well packaged is to set up a CI job for CoqHammer with a test that fails or passes when a certain ATP is present. But I believe this was avoided so far since installing the ATPs is tricky to automate, and depending on which ATP versions and combinations you have, the results are nondeterministic.

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

anyone playing around with that file has to manually uncomment the hammer tactic call

Ah thanks, I should have read the fine print :-)

The status of CoqHammer on Windows is unclear.

This makes it difficult...impossible to include it in the "full" level of Coq Platform - we should work on this, since I think it is an important project. Let's see what CI says. For moth Unix APIs there are fairly good emulation layers in Windows - just making use of full blown fork semantics as in OCaml backwards step debugging are rather tricky to do in Windows, but I don't see why one would need this on Windows to run an ATP.

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

To summarize the current state:

  • in the 8.13~2021.09 pick I will include coq-hammer-tactics.1.3.1but not coq-hammerbecause we need to work on opam packages for the ATPs and on the Windows support. I am confident that we can solve this for the 8.14 release which is planned for some time in November.
  • we need to come to some agreement on the Windows support. I expect that once the parallelization issues are solved, e.g. by using the existing parallel proof infrastructure, there is little OS dependent stuff left, so that the Windows support should be trivial. @lukaszcz : after fixing this, can you setup a Windows test in your CI? Alternatively I can inform you when our (not yet operational) dev branch CI fails for coq-hammer.

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

P.S.: I plan to include coq-hammer-tactics also in the 8.14 beta release (which is due soon).

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

Note: the "postponed" label applies to coq-hammer. coq-hammer-tactics is in 2021.09 8.13 and also planned for 2021.09 8.14+beta.

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

I plan to do the tag on Friday or Monday. What is your timeline?

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

Fine, I will wait then. Just to confirm: the bug fix is in coq-hammer-tactics, not in coq-hammer (the latter is not yet in Coq Platform).

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

lukaszcz avatar lukaszcz commented on August 30, 2024

from platform.

MSoegtropIMC avatar MSoegtropIMC commented on August 30, 2024

I now created Opam packages for z3_tptp and eprover. cvc4 is planned for the Coq 8.15 release (March or so). Coq-hammer now works fine with eprover and z3 on Mac and Linux.

from platform.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.