Major Section: ACL2-BUILT-INS
See oracle-apply, as we assume familiarity with that function.
Oracle-apply-raw is a variant of oracle-apply that is untouchable,
and hence requires a trust tag to remove the untouchability (see defttag and
see remove-untouchable). Unlike oracle-apply, oracle-apply-raw
simply calls the raw Lisp function funcall to compute the result, without
restriction: the specified :guard is t, the function itself is
applied (not its executable counterpart), there is no restriction for
untouchable functions or return-last, and safe mode is not used. Thus,
in general, oracle-apply-raw can be dangerous to use: any manner of error
can occur!
As is the case for oracle-apply, the function symbol
oracle-apply-raw is defined in :logic mode and is
guard-verified. Oracle-apply-raw is logically defined to be
oracle-apply; more precisely:
(oracle-apply-raw fn args state)
= {logical definition}
(ec-call (oracle-apply fn args state))