Skip to main content

Open-source implementation of HyperTree Proof Search

Project description

Open HTPS

Open HTPS is an open-source implementation of HyperTreeProofSearch (HTPS), an efficient proof search algorithm introduced by Lample et al. (2022). This repository addresses a gap in the Automated Theorem Proving community: the need for a fast, open-source, and easy-to-use proof search tool.

Unlike the sadly non-functional available part of the original implementation, Open HTPS provides a complete and reliable version implemented efficiently in C++, combined with Python bindings for easy integration into your research workflows.

Why Open HTPS?

  • Efficiency: Fast C++ implementation
  • Usability: Python bindings for easy integration into existing work
  • Research-Focused: Abstracts away complex tree-search so that researchers can concentrate on tactic generation, critics, environments and conjecture generation.
  • Open Source: Available for customization and extension. Free to use for academic and commercial purposes.

Key Features

  • Fast and Efficient Proof Search
  • Proof Assistant Agnostic: Works seamlessly with various proof assistants.
  • User-Friendly Python Interface
  • Training Data Generation: Training samples for tactic generators, critics, and dynamics models.

Quick Start

Installation

Open HTPS is available on PyPI. Before installation, ensure you have a C++ compiler and Python development headers (Python-dev) installed. Afterward, run the following:

pip3 install htps

Example Usage

The overall workflow is detailed below. Since this implementation does not rely on any environments, the code below is missing the environment-specific expansion.

from htps import HTPS

# Initialize proof search with a theorem
search = HTPS(thm)

# Retrieve theorems ready for expansion
theorems = search.theorems_to_expand()

# -----Expand here-----

# Generate and apply tactics to expand theorems
search.expand_and_backup(expansions)

# Retrieve search result
result = search.get_result()

# Access generated training samples
tactic_samples = result.tactic_samples
critic_samples = result.critic_samples
effect_samples = result.effect_samples

The full information can be found in the documentation.

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests. I will make sure to address any issues as soon as possible.

Rationale

This project is based on one belief: more search is beneficial, but the exact search algorithm does not significantly impact the research outcome.

Currently, every research team has to implement their own proof search algorithm, which is a significant waste of time and resources. This repository is meant to address that, ideally leading to faster prototyping on tactic generation, critics, dynamic models and conjecture generation. Less time wasted on debugging tree search implementations (which is quite painful, as I am now very much aware), more time spent on the meaningful research.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

htps-0.0.3.tar.gz (198.8 kB view details)

Uploaded Source

File details

Details for the file htps-0.0.3.tar.gz.

File metadata

  • Download URL: htps-0.0.3.tar.gz
  • Upload date:
  • Size: 198.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for htps-0.0.3.tar.gz
Algorithm Hash digest
SHA256 83cabe953fb9566bebbebace9e030c34907456b51b012f81bfd840d31573e638
MD5 2e0410e2d9685a6840d6c2ff5927c1a4
BLAKE2b-256 9061bfb9ed8952cef0aa8dfd3a2a65c234f6cb6371e62a1d1b9e424601b449d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page