Major Section: ACL2-BUILT-INS
Oracle-funcall evaluates its first argument to produce an ACL2 function
symbol, and then applies that function symbol to the values of the rest of
the arguments. The return value is of the form (mv call-result state).
Examples: (oracle-funcall 'cons 3 4) ==> (mv '(3 . 4) <state>) (oracle-funcall (car '(floor foo bar)) (+ 6 7) 5) ==> (mv 2 <state>)
Oracle-funcall is a macro; each of its calls macroexpands to a call of
the related utility oracle-apply that takes the ACL2 state as an
argument, as follows:
(oracle-funcall fn x1 x2 .. xk)macroexpands to
(oracle-apply fn (list x1 x2 .. xk) state)
Note that calls of oracle-funcall and oracle-apply return two values:
the result of the function application, and a modified state.
See oracle-apply for details, including information about guards.