Filtering...

g-cons

books/centaur/gl/g-cons
other
(in-package "GL")
other
(include-book "g-if")
other
(include-book "g-primitives-help")
other
(include-book "eval-g-base")
other
(local (include-book "eval-g-base-help"))
other
(local (include-book "hyp-fix"))
other
(def-g-fn cdr
  `(if (atom x)
    (gret nil)
    (pattern-match x
      ((g-ite test then else) (if (zp clk)
          (gret (g-apply 'cdr (gl-list x)))
          (g-if (gret test)
            (,GL::GFN then . ,GL::PARAMS)
            (,GL::GFN else . ,GL::PARAMS))))
      ((g-boolean &) (gret nil))
      ((g-integer &) (gret nil))
      ((g-apply & &) (gret (g-apply 'cdr (gl-list x))))
      ((g-var &) (gret (g-apply 'cdr (gl-list x))))
      ((g-concrete obj) (gret (mk-g-concrete (ec-call (cdr obj)))))
      ((cons & b) (gret b))
      (& (gret nil)))))
other
(verify-g-guards cdr
  :hints `(("goal" :in-theory (disable ,GL::GFN))))
other
(def-gobj-dependency-thm cdr
  :hints `(("goal" :induct ,GL::GCALL
     :expand (,GL::GCALL)
     :in-theory (disable (:d ,GL::GFN)))))
other
(def-g-correct-thm cdr
  eval-g-base
  :hints `(("goal" :in-theory (e/d (eval-g-base general-concrete-obj)
       ((:definition ,GL::GFN) logcons
         bfr-list->s
         bfr-list->u
         eval-g-base-alt-def
         equal-of-booleans-rewrite
         default-car
         double-containment))
     :induct (,GL::GFN x . ,GL::PARAMS)
     :expand ((,GL::GFN x . ,GL::PARAMS)))))
other
(def-g-fn car
  `(if (atom x)
    (gret nil)
    (pattern-match x
      ((g-ite test then else) (if (zp clk)
          (gret (g-apply 'car (gl-list x)))
          (g-if (gret test)
            (,GL::GFN then . ,GL::PARAMS)
            (,GL::GFN else . ,GL::PARAMS))))
      ((g-boolean &) (gret nil))
      ((g-integer &) (gret nil))
      ((g-apply & &) (gret (g-apply 'car (gl-list x))))
      ((g-var &) (gret (g-apply 'car (gl-list x))))
      ((g-concrete obj) (gret (mk-g-concrete (ec-call (car obj)))))
      ((cons a &) (gret a))
      (& (gret nil)))))
other
(verify-g-guards car
  :hints `(("goal" :in-theory (disable ,GL::GFN))))
other
(def-gobj-dependency-thm car
  :hints `(("goal" :induct ,GL::GCALL
     :expand (,GL::GCALL)
     :in-theory (disable (:d ,GL::GFN)))))
other
(def-g-correct-thm car
  eval-g-base
  :hints `(("goal" :in-theory (e/d (eval-g-base general-concrete-obj)
       ((:definition ,GL::GFN) eval-g-base-alt-def logcons))
     :induct (,GL::GFN x . ,GL::PARAMS)
     :expand ((,GL::GFN x . ,GL::PARAMS)))))
other
(def-g-fn cons `(gret (gl-cons x y)))
other
(verify-g-guards cons)
other
(def-gobj-dependency-thm cons
  :hints `(("Goal" :in-theory (enable ,GL::GFN))))
other
(def-g-correct-thm cons
  eval-g-base
  :hints `(("Goal" :in-theory (enable ,GL::GFN))))