{"data":{"kind":"file","path":"README.md","version_id":"lz9i8cvq6lnag63iy66mp5s2","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":1724,"modified_at":"2026-01-23T13:20:35.534000","content_hash":"b8b634491bfb271a36093dbcee1f393668b8fa97ff75f1015204a892591d2892"},"entries":[],"content":"# FluxEM Math Environment\n\nRL training environment for learning optimal invocation of FluxEM's deterministic algebraic tools.\n\n## What This Does\n\nFluxEM provides **guaranteed-correct** computation through algebraic embeddings. This environment trains models to:\n\n1. **Recognize** when a problem needs exact computation\n2. **Invoke** the appropriate FluxEM tool\n3. **Integrate** the result into the final answer\n\n## Why This Matters\n\n| Scenario | Standard LLM | LLM + FluxEM Tools |\n|----------|--------------|-------------------|\n| 54 * 44 | Usually correct | Always correct |\n| 123456789 * 987654321 | Often wrong | Always correct |\n| 20! | Fails | Always correct |\n\nThe model learns WHEN to use tools, FluxEM guarantees correctness WHEN used.\n\n## Tools Available\n\n- `flux_arithmetic`: Exact arithmetic (+, -, *, /, **)\n- `flux_factorial`: n! computation\n- `flux_ncr`: Combinations C(n,k)\n- `flux_gcd`: Greatest common divisor\n- `flux_unit_convert`: Physical unit conversion\n- `flux_molecular_weight`: Chemical formula weights\n- `flux_vector_magnitude`: Vector norms\n\n## Usage\n\n```bash\n# Local eval\nprime eval run ./environments/fluxem_math\n\n# RL training\nprime rl run configs/lab/fluxem_math.toml\n```\n\n## Research Hypothesis\n\n**Standard approach**: Train model to do math -> fails OOD\n**FluxEM approach**: Train model to *invoke* deterministic tools -> guarantees scale\n\nThe RL training teaches:\n1. **When**: \"This looks like it needs exact computation\"\n2. **What**: Extracting the right expression from natural language\n3. **Integration**: Using the tool result in the final answer\n\nThe deterministic tool provides the **floor** (always correct when called).\nRL raises the **ceiling** (learns optimal invocation policy).\n","encoding":"utf-8","truncated":false,"total_bytes":1724},"status":null}