Skip to content
Snippets Groups Projects
load-pvs.lisp 709 B
Newer Older
Gabriel's avatar
Gabriel committed
;;; Place the following definitions into "~/.sbclrc" to be able to load PVS into
;;; any sbcl session.
(defmacro load-pvs (&optional pvspath)
  "Load PVS into the current lisp environment. Argument PVSPATH is the filespec
to the sources of PVS. If not provided, it is fetched from the environment
variables PVSPATH."
  (let (($pvspath (gensym)))
    `(let ((,$pvspath
             (cond
               (,pvspath ,pvspath)
               ((uiop:getenvp "PVSPATH") (uiop:getenv-pathname "PVSPATH"))
               (t (error "Cannot load PVS: PVSPATH not set.")))))
       (uiop:with-current-directory (,$pvspath)
         (load "pvs.system")
         (uiop:symbol-call :make "OPERATE-ON-SYSTEM" :pvs :load)))))