Support for Lean.reduceBool and Lean.reduceNat
Equations
- One or more equations did not get rendered due to their size.
Support for reducing Nat basic operations.
Equations
- One or more equations did not get rendered due to their size.
Support for constraints of the form ("..." =?= String.mk cs)
Equations
- One or more equations did not get rendered due to their size.
Return true if e is of the form fun (x_1 ... x_n) => ?m x_1 ... x_n), and ?m is unassigned.
Remark: n may be 0.
Equations
- One or more equations did not get rendered due to their size.
Check whether the types of the free variables at fvars are
definitionally equal to the types at ds₂.
Pre: fvars.size == ds₂.size
This method also updates the set of local instances, and invokes
the continuation k with the updated set.
We can't use withNewLocalInstances because the isDeq fvarType d₂
may use local instances.
Equations
- Lean.Meta.isDefEqBindingDomain fvars ds₂ k = Lean.Meta.isDefEqBindingDomain.loop fvars ds₂ k 0
Equations
- Lean.Meta.mkAuxMVar lctx localInsts type numScopeArgs = Lean.Meta.mkFreshExprMVarAt lctx localInsts type Lean.MetavarKind.natural Lean.Name.anonymous numScopeArgs
- mvarId : Lean.MVarId
- mvarDecl : Lean.MetavarDecl
- hasCtxLocals : Bool
- rhs : Lean.Expr
Equations
- Lean.Meta.CheckAssignment.throwCheckAssignmentFailure = throw (Lean.Exception.internal Lean.Meta.CheckAssignment.checkAssignmentExceptionId)
Equations
- Lean.Meta.CheckAssignment.throwOutOfScopeFVar = throw (Lean.Exception.internal Lean.Meta.CheckAssignment.outOfScopeExceptionId)
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Meta.CheckAssignmentQuick.check hasCtxLocals mctx lctx mvarDecl mvarId fvars e = Lean.Meta.CheckAssignmentQuick.check.visit hasCtxLocals mctx lctx mvarDecl mvarId fvars e
Auxiliary function for handling constraints of the form ?m a₁ ... aₙ =?= v.
It will check whether we can perform the assignment
?m := fun fvars => v
The result is none if the assignment can't be performed.
The result is some newV where newV is a possibly updated v. This method may need
to unfold let-declarations.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Meta.whenUndefDo x k = do let status ← x match status with | Lean.LBool.true => pure true | Lean.LBool.false => pure false | Lean.LBool.undef => k