anchor.diff:      (mbe :logic (if (function-option-name-p option-name) option-name ':formals)
            :exec option-name))
   
  -(local (in-theory (enable function-option-name-fix)))
  -(deffixtype function-option-name
  -  :pred  function-option-name-p
  -  :fix   function-option-name-fix
  -  :equiv function-option-name-equiv
  -  :define t
  -  :forward t
  -  :topic function-option-name-p)
  +(encapsulate ()
  +  (local (in-theory (enable function-option-name-fix)))
  +  (deffixtype function-option-name
  +    :pred  function-option-name-p
  +    :fix   function-option-name-fix
  +    :equiv function-option-name-equiv
  +    :define t
  +    :forward t
  +    :topic function-option-name-p)
   
   (deflist function-option-name-lst
     :elt-type function-option-name
  -  :true-listp t)
  +  :true-listp t))
   
     ;; (define function-option-name-lst-p ((option-lst t))
     ;;   :returns (syntax-good? booleanp)
  
positive.code: 
    (def-join-thms ev-process-hint)
  
    (local (in-theory (enable process-hint)))
    (defthm correctness-of-process-hint
      (implies (and (pseudo-term-listp cl)
  
negative.code:                          (function-option-name-lst-p used-2))))
    :rule-classes(:congruence))
  
  (defthm function-option-name-fix-preserve-member
    (implies (member x used :test 'equal)
             (member (function-option-name-fix x)
                     (function-option-name-lst-fix used) :test 'equal)))
  
  (defthm function-option-name-lst-fix-preserve-subsetp
    (implies (subsetp used-1 used-2 :test 'equal)
             (subsetp (function-option-name-lst-fix used-1)
                      (function-option-name-lst-fix used-2)
                      :test 'equal))
    :hints(("Goal" :in-theory (e/d (subsetp-equal)))))
  
  (defthm function-option-syntax-p--monotonicity
    (implies (and (equal (true-listp used-1) (true-listp used-2))
  