Filtering...

bfr-param

books/centaur/gl/bfr-param
other
(in-package "GL")
other
(include-book "bvecs")
other
(include-book "centaur/ubdds/param" :dir :system)
other
(include-book "centaur/aig/misc" :dir :system)
other
(local (include-book "centaur/aig/eval-restrict" :dir :system))
other
(local (in-theory (disable append-of-nil)))
bfr-list-to-param-spacefunction
(defun bfr-list-to-param-space
  (p x)
  (declare (xargs :guard t
      :guard-hints ('(:in-theory (enable bfr-to-param-space
           bfr-list-to-param-space))))
    (ignorable p))
  (mbe :logic (if (atom x)
      nil
      (cons (bfr-to-param-space p (car x))
        (bfr-list-to-param-space p (cdr x))))
    :exec (if (atom x)
      nil
      (bfr-case :bdd (to-param-space-list p x)
        :aig (aig-restrict-list x
          (aig-extract-iterated-assigns-alist p 10))))))
other
(defthm bfr-eval-list-to-param-space-list
  (implies (bfr-eval p env)
    (equal (bfr-eval-list (bfr-list-to-param-space p x)
        (bfr-param-env p env))
      (bfr-eval-list x env)))
  :hints (("Goal" :in-theory (e/d (bfr-eval-list bfr-list-to-param-space)
       (bfr-param-env)))))
other
(defthm bfr-eval-list-to-param-space-list-with-unparam-env
  (implies (and (syntaxp (not (and (consp env) (eq (car env) 'bfr-param-env))))
      (bdd-mode-or-p-true p env))
    (equal (bfr-eval-list (bfr-list-to-param-space p x)
        env)
      (bfr-eval-list x
        (bfr-unparam-env p env))))
  :hints (("Goal" :in-theory (e/d (bfr-eval-list bfr-list-to-param-space)
       (bfr-param-env)))))
other
(defthm bfr-list->s-to-param-space-list
  (implies (bfr-eval p env)
    (equal (bfr-list->s (bfr-list-to-param-space p x)
        (bfr-param-env p env))
      (bfr-list->s x env)))
  :hints (("Goal" :in-theory (e/d (bfr-list->s scdr
         s-endp
         default-car
         bfr-list-to-param-space)
       (bfr-to-param-space bfr-param-env))
     :induct (bfr-list-to-param-space p x)
     :expand ((bfr-list->s x env) (:free (x y env)
         (bfr-list->s (cons x y) env))))))
other
(defthm bfr-list->s-to-param-space-list-with-unparam-env
  (implies (and (syntaxp (not (and (consp env) (eq (car env) 'bfr-param-env))))
      (bdd-mode-or-p-true p env))
    (equal (bfr-list->s (bfr-list-to-param-space p x)
        env)
      (bfr-list->s x (bfr-unparam-env p env))))
  :hints (("Goal" :in-theory (e/d (bfr-list->s scdr
         s-endp
         default-car
         bfr-list-to-param-space)
       (bfr-to-param-space bfr-param-env))
     :induct (bfr-list-to-param-space p x)
     :expand ((:free (env) (bfr-list->s x env)) (:free (x y env)
         (bfr-list->s (cons x y) env))))))
other
(defthm bfr-list->u-to-param-space-list
  (implies (bfr-eval p env)
    (equal (bfr-list->u (bfr-list-to-param-space p x)
        (bfr-param-env p env))
      (bfr-list->u x env)))
  :hints (("Goal" :in-theory (e/d (bfr-list->u scdr
         s-endp
         bfr-list-to-param-space)
       (bfr-to-param-space bfr-param-env)))))
other
(defthm bfr-list->u-to-param-space-list-with-unparam-env
  (implies (and (syntaxp (not (and (consp env) (eq (car env) 'bfr-param-env))))
      (bdd-mode-or-p-true p env))
    (equal (bfr-list->u (bfr-list-to-param-space p x)
        env)
      (bfr-list->u x (bfr-unparam-env p env))))
  :hints (("Goal" :in-theory (e/d (bfr-list->u scdr
         s-endp
         bfr-list-to-param-space)
       (bfr-to-param-space bfr-param-env)))))
other
(defund genv-param
  (p env)
  (declare (xargs :guard (consp env))
    (ignorable p))
  (cons (bfr-param-env p (car env)) (cdr env)))
other
(defund genv-unparam
  (p env)
  (declare (xargs :guard (consp env))
    (ignorable p))
  (cons (bfr-unparam-env p (car env))
    (cdr env)))