• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
          • Atj
            • Atj-implementation
              • Atj-types
              • Atj-java-primitive-array-model
              • Atj-java-abstract-syntax
              • Atj-input-processing
              • Atj-java-pretty-printer
              • Atj-code-generation
                • Atj-gen-test-method
                • Atj-shallow-code-generation
                • Atj-common-code-generation
                • Atj-shallow-quoted-constant-generation
                • Atj-pre-translation
                • Atj-gen-everything
                • Atj-name-translation
                  • Atj-var-to-jvar
                  • Atj-char-to-jchars-id
                  • Atj-fn-to-method
                  • Atj-pkg-to-class
                  • Atj-fns-to-methods
                  • *atj-disallowed-class-names*
                  • Atj-pkgs-to-classes
                  • *atj-predefined-method-names*
                  • Atj-chars-to-jchars-id
                    • *atj-disallowed-jvar-names*
                    • Atj-get-pkg-class-name
                    • Atj-get-fn-method-name
                    • Atj-var-add-index
                    • *atj-disallowed-method-names*
                  • Atj-gen-test-cunit
                  • Atj-gen-test-class
                  • Atj-gen-main-file
                  • Atj-post-translation
                  • Atj-deep-code-generation
                  • Atj-gen-test-methods
                  • Atj-gen-test-file
                  • Atj-gen-env-file
                  • Atj-gen-output-subdir
                • Atj-java-primitives
                • Atj-java-primitive-arrays
                • Atj-type-macros
                • Atj-java-syntax-operations
                • Atj-fn
                • Atj-library-extensions
                • Atj-java-input-types
                • Atj-test-structures
                • Aij-notions
                • Atj-macro-definition
              • Atj-tutorial
            • Aij
            • Language
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Lists-light
          • Axe
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Atj-name-translation

    Atj-chars-to-jchars-id

    Lift atj-char-to-jchars-id to lists.

    Signature
    (atj-chars-to-jchars-id chars startp uscore flip-case-p) 
      → 
    jchars
    Arguments
    chars — Guard (character-listp chars).
    startp — Guard (booleanp startp).
    uscore — Guard (member-eq uscore '(nil :dash :space)).
    flip-case-p — Guard (booleanp flip-case-p).
    Returns
    jchars — Type (character-listp jchars), given (character-listp chars).

    This is used on the sequence of characters that form an ACL2 symbol name or package name. The startp flag becomes nil at the first recursive call, because after the first character we are no longer at the start of the Java identifier.

    Definitions and Theorems

    Function: atj-chars-to-jchars-id

    (defun atj-chars-to-jchars-id (chars startp uscore flip-case-p)
     (declare (xargs :guard (and (character-listp chars)
                                 (booleanp startp)
                                 (member-eq uscore '(nil :dash :space))
                                 (booleanp flip-case-p))))
     (let ((__function__ 'atj-chars-to-jchars-id))
      (declare (ignorable __function__))
      (cond
         ((endp chars) nil)
         (t (append (atj-char-to-jchars-id (car chars)
                                           startp uscore flip-case-p)
                    (atj-chars-to-jchars-id (cdr chars)
                                            nil uscore flip-case-p))))))

    Theorem: character-listp-of-atj-chars-to-jchars-id

    (defthm character-listp-of-atj-chars-to-jchars-id
     (implies
       (character-listp chars)
       (b*
        ((jchars
              (atj-chars-to-jchars-id chars startp uscore flip-case-p)))
        (character-listp jchars)))
     :rule-classes :rewrite)