Skip to main content

Jumla generates Lean 4 verification datasets from Python code and tests.

Project description

Jumla

PyPI - Version GitHub Issues or Pull Requests PyPI - Downloads PyPI - License GitHub repo size X (formerly Twitter) Follow

Jumla is a Python package for programmatically generating structured datasets of Lean 4 verification tasks from Python functions, complete with specifications, test cases, and formal proof scaffolds.

"Don't ship vibes — ship proofs."


📦 Installation

If installing from pypi:

pip install jumla

This installs the CLI command:

jumla

Usage

Generate a Lean dataset from a single Python task file:

jumla examples/min_of_three.py

Or process all Python files in a folder:

jumla examples/

Output will be written to the dataset/ folder (e.g. dataset/task_id_0/).

Use --log for detailed debug output:

jumla examples/ --log

Development Setup

[!NOTE] Install uv (if not already)

curl -LsSf https://astral.sh/uv/install.sh | sh

Clone the repo

git clone https://github.com/mmsaki/jumla
cd jumla

Create a virtual environment

uv venv
source .venv/bin/activate

Install the project in editable mode

uv sync
uv pip install -e .

Run the CLI

jumla examples/

Example Structure

# examples/min_of_three.py
import inspect, textwrap

def minOfThree(a: int, b: int, c: int) -> int:
    return min(a, b, c)

function = textwrap.dedent(inspect.getsource(minOfThree))

description_doc = "This task requires writing a Lean 4 method..."
input_doc = "The input consists of three integers..."
output_doc = "The output is an integer..."
test_cases = [
    {"input": {"a": 3, "b": 2, "c": 1}, "expected": 1, "unexpected": [2, 3, -1]},
    ...
]

📁 Output Directory Example

dataset/
├── task_id_0/
│   ├── description.txt
│   ├── signature.json
│   ├── task.lean
│   ├── test.json
│   └── tests.lean

Let me know if you want to add Lean syntax checks, markdown summaries, or GitHub CI automation!

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

jumla-0.1.3.tar.gz (7.0 kB view details)

Uploaded Source

File details

Details for the file jumla-0.1.3.tar.gz.

File metadata

  • Download URL: jumla-0.1.3.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.3

File hashes

Hashes for jumla-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6c08633ae986e89b6f8d5d849a9e75be00d689a54e4193f0577ba1e3b62f31ed
MD5 58e5d18337758d6b3bc5c3d1c1099d2b
BLAKE2b-256 347bb3c7021310db922e4ef257960721dfef9ae6ce1e8501104ee679139c352a

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