feat: add extensible state mechanism for SymM This PR add `SymExtension`, a typed extensible state mechanism for `SymM`, following the same pattern as `Grind.SolverExtension`. Extensions are registered at initialization time via `registerSymExtension` and provide typed `getState`/`modifyState` accessors. Extension state persists across `simp` invocations within a `sym =>` block and is re-initialized on each `SymM.run`. This enables modules (e.g., the upcoming arithmetic normalizer) to register persistent state without modifying `Sym.State` directly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This is the repository for Lean 4.
See Install Lean.
Please read our Contribution Guidelines first.
See Building Lean.