- commonMCtx? : Option Lean.MetavarContext
- mctx₁ : Lean.MetavarContext
- mctx₂ : Lean.MetavarContext
- allowAssignmentDiff : Bool
Allow metavariables to be unassigned on one side of the comparison and assigned on the other. So when we compare two expressions and we encounter a metavariable
?x
in one of them and a subexpressione
in the other (at the same position), we consider?x
equal toe
.
Instances For
- equalMVarIds : Std.HashMap Lean.MVarId Lean.MVarId
- equalLMVarIds : Std.HashMap Lean.LMVarId Lean.LMVarId
- leftUnassignedMVarValues : Std.HashMap Lean.MVarId Lean.Expr
A map from metavariables which are unassigned in the left goal to their corresponding expression in the right goal. Only used when
allowAssignmentDiff = true
. - rightUnassignedMVarValues : Std.HashMap Lean.MVarId Lean.Expr
A map from metavariables which are unassigned in the right goal to their corresponding expression in the left goal. Only used when
allowAssignmentDiff = true
.
Instances For
@[reducible, inline]
Equations
Instances For
@[always_inline]
Equations
- Aesop.instMonadEqualUpToIdsM = Monad.mk
def
Aesop.EqualUpToIdsM.run'
{α : Type}
(x : Aesop.EqualUpToIdsM α)
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(allowAssignmentDiff : Bool)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.EqualUpToIdsM.run
{α : Type}
(x : Aesop.EqualUpToIdsM α)
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(allowAssignmentDiff : Bool)
:
Equations
- x.run commonMCtx? mctx₁ mctx₂ allowAssignmentDiff = (fun (x : α × Aesop.EqualUpToIdsM.State) => x.fst) <$> x.run' commonMCtx? mctx₁ mctx₂ allowAssignmentDiff
Instances For
@[inline]
Equations
- Aesop.EqualUpToIds.readCommonMCtx? = do let __do_lift ← read pure __do_lift.commonMCtx?
Instances For
@[inline]
Equations
- Aesop.EqualUpToIds.readMCtx₁ = do let __do_lift ← read pure __do_lift.mctx₁
Instances For
@[inline]
Equations
- Aesop.EqualUpToIds.readMCtx₂ = do let __do_lift ← read pure __do_lift.mctx₂
Instances For
@[inline]
Equations
- Aesop.EqualUpToIds.readAllowAssignmentDiff = do let __do_lift ← read pure __do_lift.allowAssignmentDiff
Instances For
@[specialize #[]]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[specialize #[]]
Equations
- One or more equations did not get rendered due to their size.
Instances For
- lctx₁ : Lean.LocalContext
- localInstances₁ : Lean.LocalInstances
- lctx₂ : Lean.LocalContext
- localInstances₂ : Lean.LocalInstances
- equalFVarIds : Std.HashMap Lean.FVarId Lean.FVarId
Instances For
- mvarId: Lean.MVarId → Aesop.EqualUpToIds.MVarValue
- expr: Lean.Expr → Aesop.EqualUpToIds.MVarValue
- delayedAssignment: Lean.DelayedMetavarAssignment → Aesop.EqualUpToIds.MVarValue
Instances For
@[specialize #[]]
Instances For
@[implemented_by Aesop.EqualUpToIds.Unsafe.levelsEqualUpToIdsCore]
@[reducible, inline]
Equations
Instances For
@[specialize #[]]
Instances For
@[specialize #[]]
Instances For
unsafe def
Aesop.EqualUpToIds.Unsafe.exprsEqualUpToIdsCore₂.printExpr
(mctx : Lean.MetavarContext)
(lctx : Lean.LocalContext)
(localInstances : Lean.LocalInstances)
(e : Lean.Expr)
:
Instances For
unsafe def
Aesop.EqualUpToIds.Unsafe.exprsEqualUpToIdsCore₃.normalizeMVar
(mctx : Lean.MetavarContext)
(m : Lean.MVarId)
:
Instances For
@[specialize #[]]
unsafe def
Aesop.EqualUpToIds.Unsafe.localContextsEqualUpToIdsCore
(lctx₁ : Lean.LocalContext)
(lctx₂ : Lean.LocalContext)
(localInstances₁ : Lean.LocalInstances)
(localInstances₂ : Lean.LocalInstances)
:
Instances For
unsafe def
Aesop.EqualUpToIds.Unsafe.localContextsEqualUpToIdsCore.go
(decls₁ : Array Lean.LocalDecl)
(decls₂ : Array Lean.LocalDecl)
(h : decls₁.size = decls₂.size)
(i : Nat)
(gctx : Aesop.EqualUpToIds.GoalContext)
:
Instances For
@[specialize #[]]
unsafe def
Aesop.EqualUpToIds.Unsafe.unassignedMVarsEqualUpToIdsCore
(mvarId₁ : Lean.MVarId)
(mvarId₂ : Lean.MVarId)
:
Instances For
@[implemented_by Aesop.EqualUpToIds.Unsafe.exprsEqualUpToIdsCore₁]
@[implemented_by Aesop.EqualUpToIds.Unsafe.unassignedMVarsEqualUpToIdsCore]
opaque
Aesop.EqualUpToIds.unassignedMVarsEqualUpToIdsCore
(mvarId₁ : Lean.MVarId)
(mvarId₂ : Lean.MVarId)
:
@[specialize #[]]
def
Aesop.EqualUpToIds.tacticStatesEqualUpToIdsCore
(goals₁ : Array Lean.MVarId)
(goals₂ : Array Lean.MVarId)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.exprsEqualUpToIds
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(lctx₁ : Lean.LocalContext)
(lctx₂ : Lean.LocalContext)
(localInstances₁ : Lean.LocalInstances)
(localInstances₂ : Lean.LocalInstances)
(e₁ : Lean.Expr)
(e₂ : Lean.Expr)
(allowAssignmentDiff : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.unassignedMVarsEqualUptoIds
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(mvarId₁ : Lean.MVarId)
(mvarId₂ : Lean.MVarId)
(allowAssignmentDiff : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.unassignedMVarsEqualUptoIds'
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(mvarId₁ : Lean.MVarId)
(mvarId₂ : Lean.MVarId)
(allowAssignmentDiff : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.tacticStatesEqualUpToIds
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(goals₁ : Array Lean.MVarId)
(goals₂ : Array Lean.MVarId)
(allowAssignmentDiff : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.tacticStatesEqualUpToIds'
(commonMCtx? : Option Lean.MetavarContext)
(mctx₁ : Lean.MetavarContext)
(mctx₂ : Lean.MetavarContext)
(goals₁ : Array Lean.MVarId)
(goals₂ : Array Lean.MVarId)
(allowAssignmentDiff : optParam Bool false)
:
Equations
- One or more equations did not get rendered due to their size.