• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
      • Std/util
      • Std/strings
      • Std/osets
      • Std/io
      • Std/basic
        • Maybe-stringp
          • Character-list
          • Maybe-string
          • Maybe-string-fix
          • Maybe-natp
          • Two-nats-measure
          • Impossible
          • Bytep
          • Nat-list-measure
          • Maybe-posp
          • Nibblep
          • Organize-symbols-by-pkg
          • Organize-symbols-by-name
          • Lnfix
          • Good-valuep
          • Streqv
          • Chareqv
          • Symbol-package-name-non-cl
          • Arith-equivs
          • Induction-schemes
          • Maybe-integerp
          • Char-fix
          • Pos-fix
          • Symbol-package-name-lst
          • Mbt$
          • Maybe-bitp
          • Good-pseudo-termp
          • Str-fix
          • Maybe-string-fix
            • Nonkeyword-listp
            • Lifix
            • Bfix
            • Std/basic/if*
            • Impliez
            • Tuplep
            • Std/basic/intern-in-package-of-symbol
            • Lbfix
            • Std/basic/symbol-name-lst
            • True
            • Std/basic/rfix
            • Std/basic/realfix
            • Std/basic/member-symbol-name
            • Std/basic/fix
            • False
            • Std/basic/nfix
            • Std/basic/ifix
          • Std/system
          • Std/typed-lists
          • Std/bitsets
          • Std/testing
          • Std/typed-alists
          • Std/stobjs
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Std/basic
      • Maybe-stringp

      Maybe-string-fix

      Fixer for maybe-stringp.

      Signature
      (maybe-string-fix x) → fixed-x
      Arguments
      x — Guard (maybe-stringp x).
      Returns
      fixed-x — Type (maybe-stringp fixed-x).

      Definitions and Theorems

      Function: maybe-string-fix

      (defun maybe-string-fix (x)
        (declare (xargs :guard (maybe-stringp x)))
        (mbe :logic (if (maybe-stringp x) x nil)
             :exec x))

      Theorem: maybe-stringp-of-maybe-string-fix

      (defthm maybe-stringp-of-maybe-string-fix
        (b* ((fixed-x (maybe-string-fix x)))
          (maybe-stringp fixed-x))
        :rule-classes :rewrite)

      Theorem: maybe-string-fix-when-maybe-stringp

      (defthm maybe-string-fix-when-maybe-stringp
        (implies (maybe-stringp x)
                 (equal (maybe-string-fix x) x)))