Define an option type.
The syntax of
(defoption foo-option foo ;; type argument :parents (...) ;; xdoc :short "..." ;; xdoc :long "..." ;; xdoc :measure (+ 1 (* 2 (acl2-count x))) ;; default: (acl2-count x) :xvar x ;; default: x, or find x symbol in measure :prepwork ;; admit these events before starting :pred foo?-p ;; default: foo-option-p :fix foo?-fix ;; default: foo-option-fix :equiv foo?-= ;; default: foo-option-equiv :case foo?-case ;; default: foo-option-case :count foo?-cnt ;; default: foo-option-count ;; (may be nil; skipped unless mutually recursive) :inline (:kind :fix) ;; default: (:kind :fix :acc) )
Note that the type argument must precede any keyword arguments.