Collect free variables appearing in an initializer declarator.
(free-vars-initdeclor initdeclor bound-vars) → (mv free-vars bound-vars)
Function:
(defun free-vars-initdeclor (initdeclor bound-vars) (declare (xargs :guard (and (initdeclorp initdeclor) (ident-setp bound-vars)))) (let ((__function__ 'free-vars-initdeclor)) (declare (ignorable __function__)) (b* ((bound-vars (ident-set-fix bound-vars)) ((initdeclor initdeclor) initdeclor) (ident (declor-get-ident initdeclor.declor))) (mv (free-vars-initer-option initdeclor.init? bound-vars) (if ident (insert (ident-fix ident) bound-vars) bound-vars)))))
Theorem:
(defthm ident-setp-of-free-vars-initdeclor.free-vars (b* (((mv ?free-vars ?bound-vars) (free-vars-initdeclor initdeclor bound-vars))) (ident-setp free-vars)) :rule-classes :rewrite)
Theorem:
(defthm ident-setp-of-free-vars-initdeclor.bound-vars (b* (((mv ?free-vars ?bound-vars) (free-vars-initdeclor initdeclor bound-vars))) (ident-setp bound-vars)) :rule-classes :rewrite)