Advertisement
Guest User

Untitled

a guest
Jul 7th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 2.37 KB | None | 0 0
  1. (in-package "ACL2")
  2.  
  3. (include-book "std/top" :dir :system)
  4. (include-book "centaur/gl/gl" :dir :system)
  5. (include-book "centaur/gl/def-gl-rule" :dir :system)
  6. (include-book "centaur/gl/bfr-satlink" :dir :system)
  7.  
  8. (def-gl-clause-processor my-glcp)
  9.  
  10. (make-event (prog2$ (tshell-ensure)
  11.                     '(value-triple :invisible))
  12.             :check-expansion t)
  13.  
  14. (defun verbose-glucose-config ()
  15.   (declare (xargs :guard t))
  16.   (satlink::make-config :cmdline "glucose-cert"
  17.                         :verbose t
  18.                         :mintime 1/2
  19.                         :remove-temps t))
  20.  
  21. (defattach gl::gl-satlink-config verbose-glucose-config)
  22. (gl::gl-satlink-mode)
  23.  
  24. (std::defenum player-count-p
  25.   (:zero :one :two))
  26.  
  27. (defconst *baseball* 0)
  28. (defconst *basketball* 1)
  29. (defconst *soccerball* 2)
  30. (defconst *volleyball* 3)
  31.  
  32. (make-event
  33.  `(std::defenum ball-p
  34.                 (,*baseball* ,*basketball* ,*soccerball* ,*volleyball*)))
  35.  
  36. (std::defaggregate sport
  37.   ((player-count player-count-p
  38.                  "Number of players, denoted with symbols instead of integers.")
  39.    (ball ball-p))
  40.   :legiblep
  41.   :ordered)
  42.  
  43. (define set-sport-to-basketball
  44.   ((sport sport-p))
  45.   (change-sport sport :ball *basketball*))
  46.  
  47. (defrule basketball-p-of-set-sport-to-basketball
  48.   (implies (sport-p sport)
  49.            (equal (sport->ball (set-sport-to-basketball sport))
  50.                   *basketball*))
  51.   :enable (set-sport-to-basketball))
  52.  
  53. (in-theory (enable sport-p ball-p player-count-p))
  54.  
  55. (def-gl-rule basketball-p-of-set-sport-to-basketball-via-gl
  56.   :hyp (sport-p sport)
  57.   :concl (equal (sport->ball (set-sport-to-basketball sport))
  58.                 *basketball*)
  59. ; Mimics the following from books/centaur/gl/gobjectp.lisp:
  60. ;; `(:g-ite (:g-boolean . ,(qv 0))
  61. ;;          (:g-ite (:g-boolean . ,(qv 1))
  62. ;;                  ACL2::ABC . COMMON-LISP::ABC)
  63. ;;          (:g-ite (:g-boolean . ,(qv 1))
  64. ;;                  ACL2::ACD . COMMON-LISP::ACD))
  65.   :g-bindings '((sport ((player-count . (:g-ite (:g-boolean . 0)
  66.                                                :zero
  67.                                                (:g-ite (:g-boolean . 1)
  68.                                                        :one
  69.                                                        .
  70.                                                        :two)))
  71.                         (ball . (:g-number (2 3 4)))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement