gym-saturation
gym-saturation: an OpenAI Gym environment for saturation provers - Published in JOSS (2022)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 12 DOI reference(s) in README and JOSS metadata -
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Last synced: 6 months ago
·
JSON representation
Repository
a collection of Gymnasium environments for saturation provers
Basic Info
Statistics
- Stars: 22
- Watchers: 2
- Forks: 2
- Open Issues: 3
- Releases: 1
Created over 4 years ago
· Last pushed 9 months ago
Metadata Files
Readme
Contributing
License
Code of conduct
Codemeta
README.rst
..
Copyright 2021-2025 Boris Shminke
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
|PyPI version|\ |Anaconda|\ |CircleCI|\ |Documentation Status|\ |codecov|\ |DOI|
gym-saturation
==============
``gym-saturation`` is a collection of `Gymnasium
`__ environments for reinforcement
learning (RL) agents guiding saturation-style automated theorem
provers (ATPs) based on the `given clause algorithm
`__.
There are two environments in ``gym-saturation`` following the same
API: `SaturationEnv
`__:
``VampireEnv`` --- for `Vampire
`__ prover, and ``IProverEnv``
--- for `iProver `__.
``gym-saturation`` can be interesting for RL practitioners willing to
apply their experience to theorem proving without coding all the
logic-related stuff themselves.
In particular, ATPs serving as ``gym-saturation`` backends
incapsulate parsing the input formal language (usually, one of the
`TPTP `__ (Thousands of Problems for Theorem
Provers) library), transforming the input formulae to the `clausal
normal form
`__, and logic
inference using rules such as `resolution
`__ and
`superposition
`__.
How to Install
==============
.. attention:: If you want to use ``VampireEnv`` you should have a
Vampire binary on your machine. For example, download the
latest `release
`__.
To use ``IProverEnv``, please download a stable iProver
`release
`__ or build it from `this commit `__.
The best way to install this package is to use ``pip``:
.. code:: sh
pip install gym-saturation
Another option is to use ``conda``:
.. code:: sh
conda install -c conda-forge gym-saturation
One can also run it in a Docker container (pre-packed with
``vampire`` and ``iproveropt`` binaries):
.. code:: sh
docker build -t gym-saturation https://github.com/inpefess/gym-saturation.git
docker run --rm -p 8888:8888 --name gym-saturation -d gym-saturation
and navigate to ``__ in
your browser.
How to use
==========
One can use ``gym-saturation`` environments as any other Gymnasium environment:
.. code:: python
import gym_saturation
import gymnasium
env = gymnasium.make("Vampire-v0") # or "iProver-v0"
# skip this line to use the default problem
env.set_task("a-TPTP-problem-filename")
observation, info = env.reset()
terminated, truncated = False, False
while not (terminated or truncated):
# apply policy
action = ...
observation, reward, terminated, truncated, info = env.step(str(action))
env.close()
Have a look at the basic `tutorial `__.
More Documentation
==================
More documentation can be found
`here `__.
Related Projects
=================
Other projects using RL-guidance for ATPs include:
* `TRAIL `__
* `FLoP `__ (see `the paper `__ for more details)
* `lazyCoP `__ (see `the paper `__ for more details)
Other projects not using RL per se, but iterating a supervised
learning procedure instead:
* ENIGMA (several repos, e.g. `this one
`__ for
iProver; see `the paper `__ for
others)
* `Deepire `__
How to Contribute
=================
Please follow `the contribution guide `__ while adhering to `the code of conduct `__.
How to Cite
============
If you are writing a research paper and want to cite ``gym-saturation``, please use the following `DOI `__.
.. |PyPI version| image:: https://badge.fury.io/py/gym-saturation.svg
:target: https://badge.fury.io/py/gym-saturation
.. |CircleCI| image:: https://circleci.com/gh/inpefess/gym-saturation.svg?style=svg
:target: https://circleci.com/gh/inpefess/gym-saturation
.. |Documentation Status| image:: https://readthedocs.org/projects/gym-saturation/badge/?version=latest
:target: https://gym-saturation.readthedocs.io/en/latest/?badge=latest
.. |codecov| image:: https://codecov.io/gh/inpefess/gym-saturation/branch/master/graph/badge.svg
:target: https://codecov.io/gh/inpefess/gym-saturation
.. |DOI| image:: https://img.shields.io/badge/DOI-10.1007%2F978--3--031--43513--3__11-blue
:target: https://doi.org/10.1007/978-3-031-43513-3_11
.. |Anaconda| image:: https://anaconda.org/conda-forge/gym-saturation/badges/version.svg
:target: https://anaconda.org/conda-forge/gym-saturation
Owner
- Name: Boris Shminke
- Login: inpefess
- Kind: user
- Location: Toulouse, France
- Company: Expleo
- Website: https://boris.shminke.com
- Repositories: 54
- Profile: https://github.com/inpefess
Postdoctoral Researcher
JOSS Publication
gym-saturation: an OpenAI Gym environment for saturation provers
Published
March 03, 2022
Volume 7, Issue 71, Page 3849
Tags
OpenAI Gym automated theorem prover saturation prover reinforcement learningGitHub Events
Total
- Issues event: 17
- Watch event: 7
- Delete event: 11
- Issue comment event: 10
- Push event: 53
- Pull request event: 13
- Create event: 19
Last Year
- Issues event: 17
- Watch event: 7
- Delete event: 11
- Issue comment event: 10
- Push event: 53
- Pull request event: 13
- Create event: 19
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Boris Shminke | b****s@s****l | 503 |
| Boris Shminke | b****s@s****m | 143 |
Committer Domains (Top 20 + Academic)
shminke.com: 1
shminke.ml: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 46
- Total pull requests: 93
- Average time to close issues: 6 months
- Average time to close pull requests: about 12 hours
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.46
- Average comments per pull request: 0.52
- Merged pull requests: 90
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 15
- Average time to close issues: 4 months
- Average time to close pull requests: about 16 hours
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.13
- Average comments per pull request: 0.87
- Merged pull requests: 13
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- inpefess (45)
- elliottower (1)
Pull Request Authors
- inpefess (96)
Top Labels
Issue Labels
enhancement (26)
documentation (9)
maintenance (4)
bug (1)
wontfix (1)
Pull Request Labels
maintenance (2)
Packages
- Total packages: 2
-
Total downloads:
- pypi 116 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 1
(may contain duplicates) - Total versions: 110
- Total maintainers: 1
pypi.org: gym-saturation
Gymnasium environments for saturation provers
- Homepage: https://github.com/inpefess/gym-saturation
- Documentation: https://gym-saturation.readthedocs.io/
- License: Apache-2.0
-
Latest release: 1.0.2
published 9 months ago
Rankings
Dependent packages count: 10.1%
Downloads: 10.8%
Stargazers count: 15.3%
Average: 17.5%
Dependent repos count: 21.6%
Forks count: 29.8%
Maintainers (1)
Last synced:
6 months ago
conda-forge.org: gym-saturation
gym-saturation is collection of Gymnasium environments for guiding automated theorem provers by reinforcement learning agents.
- Homepage: https://github.com/inpefess/gym-saturation
- License: Apache-2.0
-
Latest release: 0.4.3
published over 3 years ago
Rankings
Dependent repos count: 34.0%
Average: 49.9%
Dependent packages count: 51.2%
Stargazers count: 53.5%
Forks count: 61.1%
Last synced:
6 months ago
Dependencies
doc/requirements.txt
pypi
- gym *
- importlib_resources *
- orjson *
- pexpect *
- sphinx-autodoc-typehints *
- tptp_lark_parser *
poetry.lock
pypi
- 139 dependencies
pyproject.toml
pypi
- black * develop
- jupyterlab * develop
- mypy * develop
- pre-commit * develop
- pydocstyle * develop
- pylint * develop
- pytest-coverage * develop
- sphinx-autodoc-typehints * develop
- sphinx-rtd-theme * develop
- tbump * develop
- types-dataclasses * develop
- gym <0.22
- importlib_resources *
- orjson *
- pexpect *
- python >= 3.7.1, < 3.11
- tptp-lark-parser *
Dockerfile
docker
- inpefess/python_with_provers latest build
