aboutsummaryrefslogtreecommitdiff

ATP Engine

A saturation-based automated theorem prover for first-order logic, written in C++20.

Overview

ATP Engine implements the Given Clause Loop (Otter/E-style) with hash-consed term sharing, discrimination tree indexing, and pluggable search heuristics. It reads problems in TPTP format and produces human-readable proofs via resolution and factoring.

The architecture is designed for extensibility toward equality reasoning (superposition), sorted logic, and theory integration. See docs/architecture.md for full design documentation.

Build

Requires CMake 3.20+ and a C++20 compiler (GCC 11+ / Clang 14+).

cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j$(nproc)

Options

Flag Default Description
ATP_ENABLE_CLANG_TIDY OFF Run clang-tidy during compilation
ATP_ENABLE_SANITIZERS ON ASan + UBSan in Debug builds
ATP_BUILD_TESTS ON Build GoogleTest unit tests

Format & Lint

cmake --build build --target format        # auto-format all sources
cmake --build build --target format-check  # check format compliance

Run

./build/atp data/monkey_banana.p

Test

cd build && ctest --output-on-failure

License

This project is licensed under the GNU General Public License v3.0. Also see LICENSE