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