def
Lean.Meta.unifyEq?
(mvarId : MVarId)
(eqFVarId : FVarId)
(subst : FVarSubst := { map := ∅ })
(acyclic : MVarId → Expr → MetaM Bool := fun (x : MVarId) (x : Expr) => pure false)
(caseName? : Option Name := none)
 :
Helper method for methods such as Cases.unifyEqs?.
Given the given goal mvarId containing the local hypothesis eqFVarId, it performs the following operations:
- If eqFVarIdis a heterogeneous equality, tries to convert it to a homogeneous one.
- If eqFVarIdis a homogeneous equality of the forma = b, it tries- If aandbare definitionally equal, clear it
- Normalize aandbusing the current reducibility setting.
- If a(b) is a free variable not occurring inb(a), replace it everywhere.
- If aandbare distinct constructors, returnnoneto indicate that the goal has been closed.
- If aandbare the same constructor, applyinjection, the result contains the number of new equalities introduced in the goal.
- It also tries to apply the given acyclicmethod to try to close the goal. Remark: It is a parameter becausesimpusesunifyEq?, andacyclicdepends onsimp.
 
- If 
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Meta.unifyEq?.substEq
(mvarId : MVarId)
(eqFVarId : FVarId)
(subst : FVarSubst := { map := ∅ })
(acyclic : MVarId → Expr → MetaM Bool := fun (x : MVarId) (x : Expr) => pure false)
(eqDecl : LocalDecl)
(a b : Expr)
(symm : Bool)
 :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Meta.unifyEq?.injection
(mvarId : MVarId)
(eqFVarId : FVarId)
(subst : FVarSubst := { map := ∅ })
(caseName? : Option Name := none)
(eqDecl : LocalDecl)
(injectionOffset? : Expr → Expr → MetaM (Option MVarId))
(a b : Expr)
 :
Equations
- One or more equations did not get rendered due to their size.