Filtering...

sublis-var-simple

books/kestrel/terms-light/sublis-var-simple
other
(in-package "ACL2")
sublis-var-simplemutual-recursion
(mutual-recursion (defund sublis-var-simple
    (alist term)
    (declare (xargs :guard (and (symbol-alistp alist) (pseudo-termp term))
        :measure (acl2-count term)))
    (cond ((variablep term) (let ((res (assoc-eq term alist)))
          (if res
            (cdr res)
            term)))
      ((fquotep term) term)
      (t (cons-with-hint (ffn-symb term)
          (sublis-var-simple-lst alist (fargs term))
          term))))
  (defund sublis-var-simple-lst
    (alist terms)
    (declare (xargs :measure (acl2-count terms)
        :guard (and (symbol-alistp alist) (pseudo-term-listp terms))))
    (if (endp terms)
      nil
      (cons-with-hint (sublis-var-simple alist (car terms))
        (sublis-var-simple-lst alist (cdr terms))
        terms))))