pptranspog

Encoding of proof obligations generated by Atelier B to typed first-order formats (SMT, TPTP) using the ppTrans approach

https://github.com/clearsy/pptranspog

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
Last synced: 6 months ago · JSON representation ·

Repository

Encoding of proof obligations generated by Atelier B to typed first-order formats (SMT, TPTP) using the ppTrans approach

Basic Info
  • Host: GitHub
  • Owner: CLEARSY
  • License: gpl-3.0
  • Language: SMT
  • Default Branch: public
  • Homepage:
  • Size: 1.04 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • Open Issues: 2
  • Releases: 0
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation Authors

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 around pptranstptp that takes as input a POG file and outputs a TPTP file.

  • comparison.sh takes as input a folder of POG files and uses both pptranstptp and pptranssmt to generate TPTP and SMTLIB files respectively. It then uses the vampire and z3 solvers to check the validity of the generated files. The results are saved in a CSV file. The script requires the vampire and z3 solvers to be installed and available in the PATH environment 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

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