Try to prove a named formula.
(prove-named-formula name formula hints verbose state) → (mv success msg state)
Besides returning an indication of success or failure,
return a structured message (printable with
Note that prove$ always returns a
If the
Parentheses are printed around the progress message to ease navigation in an Emacs buffer.
Function:
(defun prove-named-formula (name formula hints verbose state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (symbolp name) (true-listp hints) (booleanp verbose)))) (let ((__function__ 'prove-named-formula)) (declare (ignorable __function__)) (b* (((run-when verbose) (cw "~%(Proving ~x0:~%~x1~|" name formula)) ((mv & yes/no state) (prove$ formula :hints hints))) (if yes/no (b* (((run-when verbose) (cw "Done.)~%"))) (mv t "" state)) (b* (((run-when verbose) (cw "Failed.)~%"))) (mv nil (msg "Unable to prove ~x0:~%~x1~|" name formula) state))))))