(maybe-backref-extract-substr x str) → substr
Function:
(defun maybe-backref-extract-substr (x str) (declare (xargs :guard (and (maybe-backref-p x) (stringp str)))) (declare (xargs :guard (maybe-backref-in-bounds x str))) (let ((__function__ 'maybe-backref-extract-substr)) (declare (ignorable __function__)) (and x (backref-extract-substr x str))))
Theorem:
(defthm maybe-stringp-of-maybe-backref-extract-substr (b* ((substr (maybe-backref-extract-substr x str))) (acl2::maybe-stringp substr)) :rule-classes :type-prescription)
Theorem:
(defthm maybe-backref-extract-substr-exists (b* ((?substr (maybe-backref-extract-substr x str))) (iff substr x)))
Theorem:
(defthm maybe-backref-extract-substr-is-string (b* ((?substr (maybe-backref-extract-substr x str))) (iff (stringp substr) x)))
Theorem:
(defthm maybe-backref-extract-substr-of-maybe-backref-fix-x (equal (maybe-backref-extract-substr (maybe-backref-fix x) str) (maybe-backref-extract-substr x str)))
Theorem:
(defthm maybe-backref-extract-substr-maybe-backref-equiv-congruence-on-x (implies (maybe-backref-equiv x x-equiv) (equal (maybe-backref-extract-substr x str) (maybe-backref-extract-substr x-equiv str))) :rule-classes :congruence)
Theorem:
(defthm maybe-backref-extract-substr-of-str-fix-str (equal (maybe-backref-extract-substr x (acl2::str-fix str)) (maybe-backref-extract-substr x str)))
Theorem:
(defthm maybe-backref-extract-substr-streqv-congruence-on-str (implies (acl2::streqv str str-equiv) (equal (maybe-backref-extract-substr x str) (maybe-backref-extract-substr x str-equiv))) :rule-classes :congruence)