Cbv Utility Functions #
Predicates for recognizing ground literal values (isVal, isBuiltinValue) and
proof terms (isProofTerm) in the SymM monad. Both are used by cbvPre to
short-circuit before structural dispatch.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns .rfl (done := true) for ground literal values of any recognized builtin type,
preventing the simplifier from recursing into them. For example, this stops the evaluator
from trying to unfold OfNat.ofNat 2 further.
Equations
Instances For
Equations
- Lean.Meta.Tactic.Cbv.guardSimproc p s e = if p e = true then s e else pure Lean.Meta.Sym.Simp.Result.rfl
Instances For
Marks proof terms as done so the simplifier does not recurse into them.
Equations
- Lean.Meta.Tactic.Cbv.isProofTerm e = do let __do_lift ← liftM (Lean.Meta.Tactic.Cbv.isProof✝ e) pure (Lean.Meta.Sym.Simp.Result.rfl __do_lift)