This PR adds the `register_sym_simp` command for declaring named `Sym.simp` variants with `pre`/`post` simproc chains and optional config overrides. ``` register_sym_simp myVariant where pre := telescope post := ground >> rewrite [thm1, thm2] with self maxSteps := 50000 ``` - `SymSimpVariant` structure storing `pre?`/`post?` syntax (elaborated at use time in `GrindTacticM`) and `Config` overrides - `SimpleScopedEnvExtension` for persistent cross-module variant storage - `register_sym_simp` command syntax with `sym_simp_field` category - Command elaborator with syntax quotation matching and duplicate field detection - `getSymSimpVariant?` lookup function - `deriving Inhabited` on `Simp.Config` for extension support Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
28 lines
1 KiB
Text
28 lines
1 KiB
Text
/-
|
|
Copyright (c) 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
module
|
|
prelude
|
|
public import Lean.Meta.Sym.Simp.App
|
|
public import Lean.Meta.Sym.Simp.CongrInfo
|
|
public import Lean.Meta.Sym.Simp.DiscrTree
|
|
public import Lean.Meta.Sym.Simp.Main
|
|
public import Lean.Meta.Sym.Simp.Result
|
|
public import Lean.Meta.Sym.Simp.Rewrite
|
|
public import Lean.Meta.Sym.Simp.SimpM
|
|
public import Lean.Meta.Sym.Simp.Simproc
|
|
public import Lean.Meta.Sym.Simp.Theorems
|
|
public import Lean.Meta.Sym.Simp.Have
|
|
public import Lean.Meta.Sym.Simp.Lambda
|
|
public import Lean.Meta.Sym.Simp.Forall
|
|
public import Lean.Meta.Sym.Simp.Debug
|
|
public import Lean.Meta.Sym.Simp.EvalGround
|
|
public import Lean.Meta.Sym.Simp.Discharger
|
|
public import Lean.Meta.Sym.Simp.ControlFlow
|
|
public import Lean.Meta.Sym.Simp.Goal
|
|
public import Lean.Meta.Sym.Simp.Telescope
|
|
public import Lean.Meta.Sym.Simp.Attr
|
|
public import Lean.Meta.Sym.Simp.Variant
|
|
public import Lean.Meta.Sym.Simp.RegisterCommand
|