• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
      • Io
      • Defttag
      • Sys-call
      • Save-exec
      • Quicklisp
      • Oslib
      • Std/io
      • Bridge
      • Clex
      • Tshell
      • Unsound-eval
      • Hacker
      • ACL2s-interface
      • Startup-banner
      • Command-line
        • Save-exec
        • Argv
        • Getopt
          • Demo-p
            • Parse-demo
              • Parse-demo-long
              • Parse-demo-aux
              • Parse-demo-bundle
              • Parse-demo-short->long-list
                • Parse-demo-short->long
              • Demo
              • Make-demo
              • Change-demo
              • Honsed-demo
              • Make-honsed-demo
              • *demo-usage*
              • Demo->version
              • Demo->verbose
              • Demo->username
              • Demo->port
              • Demo->help
              • Demo->extra-stuff2
              • Demo->extra-stuff
              • Demo->dirs
            • Defoptions
            • Demo2
            • Parsers
            • Sanity-check-formals
            • Formal->parser
            • Formal->argname
            • Formal->longname
            • Formal->alias
            • Formal->usage
            • Formal->merge
            • Formal->hiddenp
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Parse-demo

    Parse-demo-short->long-list

    Signature
    (parse-demo-short->long-list getopt::aliases) 
      → 
    (mv getopt::errmsg getopt::longnames)
    Arguments
    getopt::aliases — Guard (character-listp getopt::aliases).
    Returns
    getopt::longnames — Type (string-listp getopt::longnames).

    Definitions and Theorems

    Function: parse-demo-short->long-list

    (defun parse-demo-short->long-list (getopt::aliases)
      (declare (xargs :guard (character-listp getopt::aliases)))
      (let ((acl2::__function__ 'parse-demo-short->long-list))
        (declare (ignorable acl2::__function__))
        (b* (((when (atom getopt::aliases))
              (mv nil nil))
             ((mv getopt::err getopt::longname)
              (parse-demo-short->long (car getopt::aliases)))
             ((when getopt::err)
              (mv getopt::err nil))
             ((mv getopt::err rest)
              (parse-demo-short->long-list (cdr getopt::aliases))))
          (mv getopt::err
              (cons getopt::longname rest)))))

    Theorem: string-listp-of-parse-demo-short->long-list.longnames

    (defthm string-listp-of-parse-demo-short->long-list.longnames
      (b* (((mv getopt::?errmsg getopt::?longnames)
            (parse-demo-short->long-list getopt::aliases)))
        (string-listp getopt::longnames))
      :rule-classes :rewrite)

    Theorem: true-listp-of-parse-demo-short->long-list

    (defthm true-listp-of-parse-demo-short->long-list
     (true-listp (mv-nth 1
                         (parse-demo-short->long-list getopt::aliases)))
     :rule-classes :type-prescription)