Return fresh defsurj theorem names.
(expdata-fresh-defsurj-thm-names surjname verify-guards$ names-to-avoid wrld) → (mv forth-image back-image back-of-forth oldp-guard newp-guard forth-guard back-guard forth-injective updated-names-to-avoid)
These are used as the
In order for the generated defsurj to succeed, we supply explicit fresh theorem names to use. These are returned by this function.
We append the keyword (without colon) that denotes the theorem
at the end of the defsurj name
(which is generated by expdata-fresh-defsurj-name-with-*s-suffix,
and add enough
The names of the guard-related theorems are
Function:
(defun expdata-fresh-defsurj-thm-names (surjname verify-guards$ names-to-avoid wrld) (declare (xargs :guard (and (symbolp surjname) (booleanp verify-guards$) (symbol-listp names-to-avoid) (plist-worldp wrld)))) (let ((__function__ 'expdata-fresh-defsurj-thm-names)) (declare (ignorable __function__)) (b* ((prefix (add-suffix surjname "-")) ((mv forth-image names-to-avoid) (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :alpha-image)) nil names-to-avoid wrld)) ((mv back-image names-to-avoid) (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :beta-image)) nil names-to-avoid wrld)) ((mv back-of-forth names-to-avoid) (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :beta-of-alpha)) nil names-to-avoid wrld)) ((mv oldp-guard names-to-avoid) (if verify-guards$ (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :doma-guard)) nil names-to-avoid wrld) (mv nil names-to-avoid))) ((mv newp-guard names-to-avoid) (if verify-guards$ (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :domb-guard)) nil names-to-avoid wrld) (mv nil names-to-avoid))) ((mv forth-guard names-to-avoid) (if verify-guards$ (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :alpha-guard)) nil names-to-avoid wrld) (mv nil names-to-avoid))) ((mv back-guard names-to-avoid) (if verify-guards$ (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :beta-guard)) nil names-to-avoid wrld) (mv nil names-to-avoid))) ((mv forth-injective names-to-avoid) (fresh-logical-name-with-$s-suffix (add-suffix prefix (symbol-name :alpha-injective)) nil names-to-avoid wrld))) (mv forth-image back-image back-of-forth oldp-guard newp-guard forth-guard back-guard forth-injective names-to-avoid))))