(variable-g-bindings vars) → bindings
Function:
(defun variable-g-bindings (vars) (declare (xargs :guard (pseudo-var-list-p vars))) (let ((__function__ 'variable-g-bindings)) (declare (ignorable __function__)) (if (atom vars) nil (cons (cons (pseudo-var-fix (car vars)) (g-var (car vars))) (variable-g-bindings (cdr vars))))))
Theorem:
(defthm fgl-object-bindings-p-of-variable-g-bindings (b* ((bindings (variable-g-bindings vars))) (fgl-object-bindings-p bindings)) :rule-classes :rewrite)
Theorem:
(defthm fgl-object-bindings-bfrlist-of-variable-g-bindings (b* ((?bindings (variable-g-bindings vars))) (equal (fgl-object-bindings-bfrlist bindings) nil)))
Theorem:
(defthm alist-keys-of-variable-g-bindings (b* ((?bindings (variable-g-bindings vars))) (equal (alist-keys bindings) (pseudo-var-list-fix vars))))
Theorem:
(defthm lookup-in-variable-g-bindings (b* ((?bindings (variable-g-bindings vars))) (equal (hons-assoc-equal k bindings) (and (member k (pseudo-var-list-fix vars)) (cons k (g-var k))))))
Theorem:
(defthm variable-g-bindings-of-pseudo-var-list-fix-vars (equal (variable-g-bindings (pseudo-var-list-fix vars)) (variable-g-bindings vars)))
Theorem:
(defthm variable-g-bindings-pseudo-var-list-equiv-congruence-on-vars (implies (pseudo-var-list-equiv vars vars-equiv) (equal (variable-g-bindings vars) (variable-g-bindings vars-equiv))) :rule-classes :congruence)