- solved: Lean.Meta.Simp.UsedSimps → Aesop.SimpResult
- unchanged: Aesop.SimpResult
- simplified: Lean.MVarId → Lean.Meta.Simp.UsedSimps → Aesop.SimpResult
Instances For
Equations
- x.newGoal? = match x with | Aesop.SimpResult.solved usedTheorems => none | Aesop.SimpResult.unchanged => none | Aesop.SimpResult.simplified g usedTheorems => some g
Instances For
Add all let
hypotheses in the local context as simp
theorems.
Background: by default, in the goal x : _ := v ⊢ P[x]
, simp
does not
substitute x
by v
in the target. The simp
option zetaDelta
can be used
to make simp
perform this substitution, but we don't want to set it because
then Aesop simp
would diverge from default simp
, so we would have to adjust
the aesop?
output as well. Instead, we add let
hypotheses explicitly. This
way, simp?
picks them up as well.
See lean4#3520.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.addLetDeclsToSimpTheoremsUnlessZetaDelta ctx = if ctx.config.zetaDelta = true then pure ctx else Aesop.addLetDeclsToSimpTheorems ctx
Instances For
def
Aesop.simpGoal
(mvarId : Lean.MVarId)
(ctx : Lean.Meta.Simp.Context)
(simprocs : Lean.Meta.Simp.SimprocsArray)
(discharge? : optParam (Option Lean.Meta.Simp.Discharge) none)
(simplifyTarget : optParam Bool true)
(fvarIdsToSimp : optParam (Array Lean.FVarId) #[])
(stats : optParam Lean.Meta.Simp.Stats
{
usedTheorems :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
diag :=
{
usedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
triedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
congrThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
thmsWithBadKeys :=
{ root := Lean.PersistentArrayNode.node (Array.mkEmpty Lean.PersistentArray.branching.toNat),
tail := Array.mkEmpty Lean.PersistentArray.branching.toNat, size := 0,
shift := Lean.PersistentArray.initShift, tailOff := 0 } } })
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.simpGoalWithAllHypotheses
(mvarId : Lean.MVarId)
(ctx : Lean.Meta.Simp.Context)
(simprocs : Lean.Meta.Simp.SimprocsArray)
(discharge? : optParam (Option Lean.Meta.Simp.Discharge) none)
(simplifyTarget : optParam Bool true)
(stats : optParam Lean.Meta.Simp.Stats
{
usedTheorems :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
diag :=
{
usedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
triedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
congrThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
thmsWithBadKeys :=
{ root := Lean.PersistentArrayNode.node (Array.mkEmpty Lean.PersistentArray.branching.toNat),
tail := Array.mkEmpty Lean.PersistentArray.branching.toNat, size := 0,
shift := Lean.PersistentArray.initShift, tailOff := 0 } } })
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.simpAll
(mvarId : Lean.MVarId)
(ctx : Lean.Meta.Simp.Context)
(simprocs : Lean.Meta.Simp.SimprocsArray)
(stats : optParam Lean.Meta.Simp.Stats
{
usedTheorems :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
diag :=
{
usedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
triedThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
congrThmCounter :=
{ root := Lean.PersistentHashMap.Node.entries Lean.PersistentHashMap.mkEmptyEntriesArray, size := 0 },
thmsWithBadKeys :=
{ root := Lean.PersistentArrayNode.node (Array.mkEmpty Lean.PersistentArray.branching.toNat),
tail := Array.mkEmpty Lean.PersistentArray.branching.toNat, size := 0,
shift := Lean.PersistentArray.initShift, tailOff := 0 } } })
:
Equations
- One or more equations did not get rendered due to their size.