Skip to main content

A RL env with procedurally generated symbolic reasoning data

Project description

Reasoning Core ◉

reasoning-core is a text-based RLVR for LLM reasoning training. It is centered on expressive symbolic tasks, including full fledged FOL, formal mathematics with TPTP, formal planning with novel domains, and syntax tasks.

🤗 https://hf.co/collections/reasoning-core/datasets

Standalone

pip install reasoning_core

from reasoning_core import list_tasks, get_task, score_answer

T = get_task('arithmetics')()
x = T.generate_example()
assert score_answer(x.answer, x)==1

Parallel generation script

Run bash run_generate.sh for multi-threaded generation to json files (readable by Huggingface Datasets).

Integrations

Prime Environment Hub

#!pip install uv #install uv if needed
!uv tool install prime --with openai  -q
!uv tool run prime -- env install sileod/reasoning-core-env

from verifiers import load_environment
import os; from openai import OpenAI

env = load_environment("reasoning-core-env")

client = OpenAI( base_url="https://openrouter.ai/api/v1", api_key=os.getenv("OPENROUTER_API_KEY")) #🔑
results = env.evaluate(client=client, model="gpt-4.1-mini", num_examples=20, rollouts_per_example=1)
df=env.make_dataset(results).to_pandas()

Reasoning gym integration

We use a custom interface but compatible interface. Our tasks, which are mostly orthogonal to RG, can be imported in it.

import reasoning_gym, reasoning_core
from reasoning_gym.composite import DatasetSpec

reasoning_core.register_to_reasoning_gym() # registers RC tasks into RG

specs = [
    DatasetSpec(name='leg_counting', weight=1, config={}),  #from reasoning_gym 🏋
    DatasetSpec(name='arithmetics', weight=1, config={}),  #from reasoning_core ◉
]
D=reasoning_gym.create_dataset('composite', size=10, seed=42, datasets=specs)

And the other way around:

frm reasoning_core import get_task
t=get_task('reasoning_gym')
t.generate_example(level=1, rg_task='lcm') #or unspecified for random task

Citation

@misc{reasoningcore2025,
      title={Reasoning Core: A Scalable RL Environment for LLM Symbolic Reasoning}, 
      author={Valentin Lacombe and Valentin Quesnel and Damien Sileo},
      year={2025},
      eprint={2509.18083},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2509.18083}, 
}

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

reasoning_core-0.2.2.tar.gz (213.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reasoning_core-0.2.2-py2.py3-none-any.whl (219.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file reasoning_core-0.2.2.tar.gz.

File metadata

  • Download URL: reasoning_core-0.2.2.tar.gz
  • Upload date:
  • Size: 213.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for reasoning_core-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e534481e1c044861a3e1e3d3723135c4478933e8ff49503b035bdf14568e5481
MD5 0c7014011ce0a219d650dfe042c1738c
BLAKE2b-256 c8f729ea9fdb172d1169bb15e0713db94c56cc4300e45220dfe8817053b68f64

See more details on using hashes here.

File details

Details for the file reasoning_core-0.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for reasoning_core-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1f6fba6304c91ae4addef7aa4103723a12fddcdeeeee482154aecd9c37047fd4
MD5 799107d9e02cffc92b17b070f7784366
BLAKE2b-256 f6e976d55501774d932429b2cf22cf3574d79ce359a8a3f32c4bb40d61551802

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