EVALn
bossLib.EVALn : int -> conv
Evaluate a term by deduction, limiting number of steps taken.
An invocation EVALn n M
symbolically evaluates
M
by applying the defining equations of constants occurring
in M
, stopping when M
reduces to a normal
form, or after n
reduction steps have occurred. If
n
is large enough and there is a normal form, the behaviour
will be the same as EVAL M
, which see.
Never fails.
In the example below, a custom pretty-printer hides a potentially large term involving the terms that are used to represent intermediates stages of numeral computation.
- EVALn 50 “MAP (\x. x * x) [1;2;3;4;5]”;
val it =
⊢ MAP (λx. x²) [1; 2; 3; 4; 5] =
1::4:: <..num comp'n..> ::MAP (λx. x²) [4; 5]: thm
computeLib.CBV_CONV
, computeLib.RESTR_EVAL_CONV
,
bossLib.EVAL_TAC
, computeLib.monitoring
,
bossLib.Define