Convert the given goal Ctx |- target into Ctx |- targetNew using an equality proof eqProof : target = targetNew.
It assumes eqProof has type target = targetNew
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.replaceTargetEq mvarId targetNew eqProof = Lean.MVarId.replaceTargetEq mvarId targetNew eqProof
Instances For
Convert the given goal Ctx |- target into Ctx |- targetNew. It assumes the goals are definitionally equal.
We use the proof term
@id target mvarNew
to create a checkpoint.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.replaceTargetDefEq mvarId targetNew = Lean.MVarId.replaceTargetDefEq mvarId targetNew
Instances For
Replace type of the local declaration with id fvarId with one with the same user-facing name, but with type typeNew.
This method assumes eqProof is a proof that type of fvarId is equal to typeNew.
This tactic actually adds a new declaration and (try to) clear the old one.
If the old one cannot be cleared, then at least its user-facing name becomes inaccessible.
Remark: the new declaration is added immediately after fvarId.
typeNew must be well-formed at fvarId, but eqProof may contain variables declared after fvarId.
Equations
- Lean.MVarId.replaceLocalDecl mvarId fvarId typeNew eqProof = Lean.Meta.replaceLocalDeclCore mvarId fvarId typeNew eqProof
Instances For
Equations
- Lean.Meta.replaceLocalDecl mvarId fvarId typeNew eqProof = Lean.MVarId.replaceLocalDecl mvarId fvarId typeNew eqProof
Instances For
Replace the type of fvarId at mvarId with typeNew.
Remark: this method assumes that typeNew is definitionally equal to the current type of fvarId.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.replaceLocalDeclDefEq mvarId fvarId typeNew = Lean.MVarId.replaceLocalDeclDefEq mvarId fvarId typeNew
Instances For
Replace the target type of mvarId with typeNew.
If checkDefEq = false, this method assumes that typeNew is definitionally equal to the current target type.
If checkDefEq = true, throw an error if typeNew is not definitionally equal to the current target type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.change mvarId targetNew checkDefEq = Lean.MVarId.withContext mvarId (Lean.MVarId.change mvarId targetNew checkDefEq)
Instances For
Replace the type of the free variable fvarId with typeNew.
If checkDefEq = false, this method assumes that typeNew is definitionally equal to fvarId type.
If checkDefEq = true, throw an error if typeNew is not definitionally equal to fvarId type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.changeLocalDecl mvarId fvarId typeNew checkDefEq = Lean.MVarId.changeLocalDecl mvarId fvarId typeNew checkDefEq
Instances For
Modify mvarId target type using f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.modifyTarget mvarId f = Lean.MVarId.modifyTarget mvarId f
Instances For
Modify mvarId target type left-hand-side using f.
Throw an error if target type is not an equality.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.modifyTargetEqLHS mvarId f = Lean.MVarId.modifyTargetEqLHS mvarId f