pptranspog
Encoding of proof obligations generated by Atelier B to typed first-order formats (SMT, TPTP) using the ppTrans approach
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
Encoding of proof obligations generated by Atelier B to typed first-order formats (SMT, TPTP) using the ppTrans approach
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 0
Metadata Files
README.md
ppTransSmt / ppTransTPTP
Tool translating proof obligations from the POG format to SMT-LIB 2.6 based on the pptrans approach. or to TPTP format based on the pptrans approach.
Dependencies:
- BAST: a C++ library to represent B Abstract Syntax Trees. Depends on Qt5Core, Qt5Xml.
Modules:
POGLoader: a C++ library to load POG files to memory, using the BAST representation. Depends on BAST, Qt5Core, Qt5Xml.
PPTRANS: an internal C++ library containing code that is common to the SMT and TPTP encoder programs. It essentially contains the preprocessing code and some utility functions.
PPTRANSSMT: a C++ program to translate POG files to SMTLIB-2.6 format, based on an extension of the pptrans encoding described in the paper Integrating SMT solvers in Rodin.
PPTRANSTPTP: a C++ program to translate POG files to TPTP (tff) format, in a similar way to the SMTLIB-2.6 translation.
test: Test infrastructure. It still needs to be filled with actual tests.
COMPILING
The code uses Qt libraries. It is known to compile with Qt5.12.x and Qt5.15.x under Linux.
Our build process is based on cmake, which produces suitable Makefiles from the CMakeLists.txt provided here. To build the code, run the following commands
cmake .
make
To update the repository and its submodules, use the following command:
bash
git submodule update --init --recursive
If this repository is embedded in a build process managed by CMake, then that process is responsible for processing the CMakeLists.txt file of the BAST library before that of this project.
USAGE
Using ppTransTPTP
bash
./ppTransTPTP -i <input.pog> -o <output-tptp-folder>
Scripts
Alternatively, you can use one of the following scripts in the Scripts folder:
translate.sh: wrapper aroundpptranstptpthat takes as input a POG file and outputs a TPTP file.comparison.shtakes as input a folder of POG files and uses bothpptranstptpandpptranssmtto generate TPTP and SMTLIB files respectively. It then uses thevampireandz3solvers to check the validity of the generated files. The results are saved in a CSV file. The script requires thevampireandz3solvers to be installed and available in thePATHenvironment variable.
Both scripts will compile the code (using cmake and make) if needed.
COPYING
This software is copyright (C) CLEARSY 2023, 2024. All rights reserved.
The source code is distributed under the terms of the GNU General Public Licence (GNU GPL) Version 3.
Owner
- Name: CLEARSY
- Login: CLEARSY
- Kind: organization
- Email: contact@clearsy.com
- Location: CLEARSY
- Website: https://www.clearsy.com/
- Repositories: 2
- Profile: https://github.com/CLEARSY
CLEARSY Systems Engineering
Citation (CITATION.cff)
cff-version: 1.2.0 title: pptranspog message: >- If you use this software, please cite it using the metadata from this file. type: software authors: - name: CLEARSY repository-code: 'https://github.com/CLEARSY/pptranspog' abstract: > Tool translating proof obligations from the POG format to SMT-LIB 2.6 based on the pptrans approach. or to TPTP format based on the pptrans approach. license: GPL-3.0
GitHub Events
Total
- Issues event: 1
- Push event: 1
- Pull request event: 2
- Create event: 1
Last Year
- Issues event: 1
- Push event: 1
- Pull request event: 2
- Create event: 1