Metadata-Version: 2.4
Name: algebra-ai999x
Version: 1.1.0
Summary: Offline, verified algebra solver: quadratic, cubic and quartic equations, linear systems, inequalities, logarithms, sequences, matrices and machine-checked proofs, with steps, LaTeX and honest refusals
Author: Ibnul Jaif Farabi
Maintainer: AI999X
License: Apache-2.0
Project-URL: Homepage, https://ai999x.com
Project-URL: Hugging Face, https://huggingface.co/AI999X/algebra-ai999x
Project-URL: Funding, https://buymeacoffee.com/ibnuljaiffarabi
Keywords: algebra,algebra solver,math solver,quadratic equation,linear equations,inequalities,logarithms,sequences,matrices,proofs,symbolic math,ai999x,verified ai,neuro-symbolic,deterministic,offline,cpu,stem,education,step-by-step,latex,solver,zero hallucination
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Education
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: sympy>=1.12
Requires-Dist: mpmath>=1.3
Provides-Extra: onnx
Requires-Dist: onnxruntime>=1.17; extra == "onnx"
Requires-Dist: tokenizers>=0.15; extra == "onnx"
Requires-Dist: numpy>=1.24; extra == "onnx"
Dynamic: license-file

# algebra-ai999x — offline, verified algebra solver with step-by-step answers

**[Install](https://pypi.org/project/algebra-ai999x/)** · **[Capability guide](https://huggingface.co/AI999X/algebra-ai999x/tree/main/docs)** · **[Evaluation](https://huggingface.co/AI999X/algebra-ai999x/tree/main/evaluation)** · **[AI999X on Hugging Face](https://huggingface.co/AI999X)** · **[Website](https://ai999x.com)** · **[Support: Buy Me a Coffee](https://buymeacoffee.com/ibnuljaiffarabi)**

License: Apache-2.0 · Author: Ibnul Jaif Farabi (creator and engineer) · Organization: AI999X · Version 1.1.0

algebra-ai999x is an offline, deterministic Python solver that answers algebra questions with verified results from 56 certified capabilities, gives 230 documented answers identically on Windows and Linux, and refuses rather than guesses when an answer cannot be verified.

**algebra-ai999x** is a compact, deterministic algebra engine for Python. It reads a question in plain English (or a typed call), picks a certified algebra capability, computes the answer exactly, checks it, and returns the result with its steps, units, LaTeX and assumptions — or an honest refusal that says what is missing. It runs fully offline on any CPU, needs no GPU, no API key and no internet, and is built to give **zero wrong answers**: when it is not sure, it refuses instead of guessing.

[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-support%20development-FFDD00?logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/ibnuljaiffarabi) ![License](https://img.shields.io/badge/license-Apache--2.0-blue) ![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue) ![Offline](https://img.shields.io/badge/runs-offline%20on%20CPU-green)

## Highlights

- **Verified, not generated.** Every answer is computed by a certified algebra capability and checked (substituted back, dimension-checked or compared with an independent computation) before it is returned.
- **Zero wrong answers by design.** Seven explicit outcomes — SOLVED, NEEDS_INPUT, AMBIGUOUS, INVALID_INPUT, OUT_OF_SCOPE, UNRECOGNIZED_FORMAT, INTERNAL_ERROR — never a silent guess. Every one of its 230 documented answers is reproduced exactly on every tested platform.
- **Plain-English questions and a guaranteed typed interface.** `ask()` reads documented question forms; `solve(capability_id, **inputs)` always solves a supported task with valid inputs.
- **Explains itself.** Steps, formulas in LaTeX, units, assumptions and the model used, ready for notebooks, tutoring apps and homework checkers.
- **Small and portable.** Pure Python (sympy, mpmath); identical answers on Windows and Linux (Python 3.10, 3.11, 3.12, 3.13, 3.14).
- **Coverage:** quadratic equations, linear equations and systems, inequalities and absolute value, functions and composition, exponents and logarithms, sequences and series, counting, matrices, and certified proofs of identities and theorems.

## Model overview

| Property | Value |
|---|---|
| Package | `algebra-ai999x` 1.1.0 (import `algebra_ai999x`) |
| Type | Deterministic neuro-symbolic algebra engine (rule-based reading + certified symbolic capabilities) |
| Capabilities | 19 certified derivations, 37 certified procedures |
| Knowledge pack | version 0.2.0 |
| Golden answers | 230 documented answers, identical on every tested platform |
| Platforms tested | Windows (Python 3.13), Linux x86-64 (Python 3.10, 3.11, 3.12, 3.13, 3.14) |
| Runtime | CPU only, offline; no GPU, no network, no API key |
| License | Apache-2.0 |
| Creator / engineer | Ibnul Jaif Farabi |
| Organization | AI999X |

## Quickstart

```bash
pip install algebra-ai999x
```

```python
import algebra_ai999x as algebra

algebra.ask("Solve x^2 - 5x + 6 = 0.").show()
# -> SOLVED — x1 = 2, x2 = 3, discriminant = 1  (quadratic_roots)
algebra.solve("quadratic_roots", a=1, b=0, c=4).show()
# -> SOLVED — x1 = 2j, x2 = -2j, discriminant = -16  (quadratic_roots)
algebra.solve("linear_system_2x2", a=2, b=3, c=12, d=4, e=-1, f=10).show()
# -> SOLVED — x = 3, y = 2  (linear_system_2x2)
algebra.ask("Prove that (a + b)^2 = a^2 + 2ab + b^2.").show()
# -> SOLVED — 1. (a + b)**2 = (a + b) * (a + b)   [definition of squaring]  (perfect_square_trinomial)
algebra.solve("quadratic_roots", a=0, b=2, c=1).show()
# -> INVALID_INPUT — Roots of a quadratic equation: a must not be 0: with a = 0 the equation is linear, not quadratic.
algebra.ask("Who created you?").message
# -> algebra-ai999x was created and engineered by Ibnul Jaif Farabi at AI999X.
```

Command line: `algebra-ai999x "<question>"`, `algebra-ai999x --capabilities`. The outputs above were produced by running this exact code on algebra-ai999x 1.1.0.

## How every answer is verified

1. **Reading** — the question is turned into typed quantities (value, unit, kind, role) and one asked quantity; every stated number must be used or the question is refused.
2. **Planning** — only certified capabilities may answer; a capability applies only under the conditions the wording states (for example a pendulum, a liquid at rest, boiling).
3. **Computing** — exact symbolic or high-precision numeric evaluation.
4. **Checking** — dimensions, substitution back into the defining equation, and agreement between independent readings; any disagreement becomes a refusal, never a number.

Capabilities are certified before they ship: each must reproduce hand-worked reference cases, reject a deliberately wrong variant (a control), and leave every benchmark answer unchanged.

## Optional decision model (suggest mode)

This repository also holds a compact ONNX decision model (`onnx/`, 37.1 MB, CPU): a small encoder that reads a question the rule-based reader refuses and names the capability it needs, with the input values it reads. It runs in **suggest mode**: it never computes an answer. The result stays a refusal and carries a suggestion — the capability and a pre-filled call — for you to check.

| Measured (held-out questions the rule-based reader refuses) | Value |
|---|---|
| Right capability named | 27 of 27 answered (85 questions) |
| All input values copied exactly | 18 of 27 (signs are the usual miss — always check them) |
| CPU latency, p95 | 37 ms (4 threads) |

```bash
pip install "algebra-ai999x[onnx]"
hf download AI999X/algebra-ai999x --include "onnx/*" --local-dir algebra_model
```

```python
import algebra_ai999x as algebra
reader = algebra.DecisionReader("algebra_model/onnx")
algebra.ask("checking my homework: 3x - 7 = 14, what is x?", reader=reader).message
# -> ... Suggestion (decision model, not verified): this looks like `linear_equation_root` ...
```

Why not answer automatically: the engine verifies a computation, not a reading — a misread minus sign would be solved perfectly and still be wrong. Automatic answering waits for a model that copies every value exactly on held-out questions.

## Capabilities

19 certified derivations, 37 certified procedures. A few of them:

- **Derivations:** area of rectangle; associative property of addition; cramer rule x solution; determinant cramer two variables; difference of cubes factorization; difference of squares; distributive property verification; elimination method identity; elimination solution two variables; linear equation solution formula; partial fraction decomposition linear factors; perfect square trinomial; product of sums; quadratic vertex form conversion; radical equation squaring; square of difference; substitution method identity; substitution solution two variables; sum of cubes factorization
- **Procedures:** Add rational expressions with same denominator; Asymptotes of a linear rational function; Average rate of change between two points; Average rate of change of a function between two inputs; Centre and radius of a circle from its general equation; Combinations and permutations; Composition of two linear functions; Compound interest; Determinant and inverse of a 2 by 2 matrix; Determinant of 2x2 matrix; Discriminant of a quadratic; Distance between two points; Doubling time of exponential growth; Factoring a monic quadratic; Line through two points; Matrix scalar multiple definition; Midpoint of a line segment; Multiply rational expressions; Perimeter of a rectangle; Product and modulus of complex numbers; Product of two binomials; Root of a linear equation; Roots of a cubic equation; Roots of a quadratic equation …

`algebra_ai999x.templates()` lists every question form `ask()` reads; the capability guide (PDF, every example executed) is included in this repository.

## Out of scope

- Open-ended explanation, essay writing or tutoring dialogue: it is a solver, not a chatbot.
- Questions outside its certified algebra capabilities, and any question whose stated numbers it cannot all use — it refuses with the reason instead.
- High-stakes engineering, medical or legal decisions without independent review.

## Limitations

- It answers what its certified capabilities cover (quadratic equations, linear equations and systems, inequalities and absolute value, functions and composition, exponents and logarithms, sequences and series, counting, matrices, and certified proofs of identities and theorems); anything else is refused with a reason.
- `ask()` reads documented question forms and common phrasings; unusual wording may be refused — use `solve()` for guaranteed results.
- Results are as correct as the certified relations and their stated conditions; a certified relation is a checked model, not a claim about every physical situation.

## Citation

```bibtex
@software{algebra_ai999x_1_1_0,
  title  = {algebra-ai999x: an offline, verified algebra solver},
  author = {Farabi, Ibnul Jaif}, organization = {AI999X},
  year   = {2026}, version = {1.1.0},
  url    = {https://huggingface.co/AI999X/algebra-ai999x}
}
```

## Contact

Questions, bug reports and requests: open a discussion on https://huggingface.co/AI999X/algebra-ai999x/discussions or visit https://ai999x.com.

## Support the project

algebra-ai999x is free and open source. If it helps you, you can support further development on [Buy Me a Coffee](https://buymeacoffee.com/ibnuljaiffarabi).

Created and engineered by **Ibnul Jaif Farabi** · **[AI999X](https://huggingface.co/AI999X)** · [ai999x.com](https://ai999x.com)
