Metadata-Version: 2.4
Name: Ethosoft-Math
Version: 0.1.0
Summary: Convert math solutions into verified tool-use traces (add(3, 4) -> 7) with an executable math tool protocol.
Author: Ethosoft
License: MIT
Keywords: math,tool-use,llm,dataset,reasoning,sympy,function-calling
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: sympy>=1.12
Provides-Extra: test
Requires-Dist: pytest; extra == "test"

# Ethosoft-Math

Matematik çözümlerindeki **her hesabı** doğrulanmış bir araç çağrısına (tool-use) çeviren kütüphane.
Turn math solutions into verified tool-use traces: `3 + 4 = 7` → `add(3, 4)` → `7`.

```python
import ethosoft_math as em

em.convert("Toplam 3 + 4 = 7 elma.")
# 'Toplam <tool_call>add(3, 4)</tool_call><tool_result>7</tool_result> elma.'

em.execute('solve("x^2 - 4 = 0", "x")')   # '[-2, 2]'
em.verify(em.convert(text))               # (cagri_sayisi, hatali_sayisi)
```

## Neden

LLM'e hesabı "kafadan" yaptırmak yerine aracı çağırtmak için eğitim verisi üretirsin.
Her çağrı, çevirme anında **yeniden çalıştırılıp doğrulanır**; tutmayan hiçbir şey çıktıya girmez.
Veride yanlış olan eşitlikler (`2 + 2 = 5`) olduğu gibi bırakılır.

## Protokol

```
<tool_call>FONKSIYON(arg1, arg2, ...)</tool_call><tool_result>SONUC</tool_result>
```

- Operatörler: `+` add, `-` sub, `*` mul, `/` div, `^` pow, `!` fact, `√` sqrt
- Gruplar: aritmetik, yüzde, sayı teorisi, üs/log, trigonometri, geometri, olasılık/istatistik,
  diziler (`sum_range`, `arith_sum`), cebir (`solve`, `expand`, `factor`, `equal`), analiz, lineer cebir,
  fonksiyon tanımlama (`define`).
- Tam liste: `ethosoft-math protocol`

## Komut satırı

```bash
ethosoft-math exec "mul(add(3, 4), 2)"
ethosoft-math protocol > PROTOCOL.md
ethosoft-math convert in.jsonl out.jsonl --field solution
```

## Çalışma modları

| Mod | Ne yapar |
|---|---|
| `convert(text)` (varsayılan) | Yalnızca doğrulanabilen eşitlikleri, denklemleri, eşitsizlikleri, toplamları çevirir |
| `convert(text, aggressive=True)` | Ek olarak `=` içermeyen salt-sayısal işlemleri de çevirir (küçük ek kapsam, daha gürültülü) |

## Sınırlar

- Python/PoT kodu içeren çözümlere dokunmaz.
- İspat ve sözel anlatım satırlarında çağrı üretilmez (hesap yoktur).
- Çeviri modelinden önce çalıştırılmalıdır; araç blokları çeviriden korunmalıdır.

Lisans: MIT
