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))))