(vl-make-edgetable edges) → table
Function:
(defun vl-make-edgetable (edges) (declare (xargs :guard (and (vl-evatomlist-p edges) (vl-evatomlist-all-have-edges-p edges) (vl-idexprlist-p (vl-evatomlist->exprs edges)) (not (member nil (vl-exprlist->finaltypes (vl-evatomlist->exprs edges)))) (all-equalp 1 (vl-exprlist->finalwidths (vl-evatomlist->exprs edges)))))) (let ((__function__ 'vl-make-edgetable)) (declare (ignorable __function__)) (if (atom edges) nil (acons (vl-edgesynth-edge->name (car edges)) (car edges) (vl-make-edgetable (cdr edges))))))
Theorem:
(defthm vl-edgetable-p-of-vl-make-edgetable (implies (and (force (vl-evatomlist-p edges)) (force (vl-evatomlist-all-have-edges-p edges)) (force (vl-idexprlist-p (vl-evatomlist->exprs edges))) (force (not ((lambda (acl2::x acl2::l) (return-last 'acl2::mbe1-raw (acl2::member-eql-exec acl2::x acl2::l) (return-last 'progn (acl2::member-eql-exec$guard-check acl2::x acl2::l) (member-equal acl2::x acl2::l)))) 'nil (vl-exprlist->finaltypes (vl-evatomlist->exprs edges))))) (force (all-equalp '1 (vl-exprlist->finalwidths (vl-evatomlist->exprs edges))))) (b* ((table (vl-make-edgetable edges))) (vl-edgetable-p table))) :rule-classes :rewrite)