Expressionizer

My Age: 17

Expressionizer is a Python library for symbolic math expression building, simplification, and step-by-step evaluation. Unlike a typical CAS, it is designed around explainable algebraic transformation — every evaluation returns both a result and a rendered context tracing the steps, decomposition, and reasoning.

Core features include symbolic expression-tree primitives (Symbol, Sum, Product, Power, FunctionCall, Equation, InEquality), a rule-based calculus engine covering multivariate differentiation and definite/indefinite integrals, plain-text + LaTeX rendering, structured explanation output for downstream pipelines (render_document(), render_json()), calculator-mode tool-call placeholders for training workflows, and order-of-magnitude estimation to bound runaway traces on large numeric ops.

Built-in localization packs ship for English, Spanish, French, German, Korean, Hebrew, and Hebrew with niqqud, each validated for placeholder safety and English-leakage. ExplanationProfile allows per-call locale swaps, preset overlays (default, compact, plain, XML), and fine-grained template overrides for downstream rendering.

I primarily use Expressionizer for procedural generation of math training data — producing large datasets of problems paired with step-by-step solutions across multiple languages and formatting styles — but it is equally applicable to math tutoring tools, educational software, and any system that needs algebraic reasoning with human-readable traces. Published on PyPI, currently at 0.8.3 (pre-stable, tracking toward 1.0).