• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • C
          • Syntax-for-tools
          • Atc
          • Transformation-tools
          • Language
            • Abstract-syntax
            • Integer-ranges
            • Implementation-environments
            • Dynamic-semantics
            • Static-semantics
            • Grammar
              • Cst-statement-conc?
              • Cst-white-space-conc?
              • Cst-token-conc?
              • Cst-lexeme-conc?
              • Cst-external-declaration-conc?
              • Cst-list-list-conc-matchp$
              • Cst-list-list-alt-matchp$
              • Cst-block-item-conc?
              • Cst-list-rep-matchp$
              • Cst-list-elem-matchp$
              • Cst-constant-conc?
              • Cst-comment-conc?
              • Cst-external-declaration-conc2-rep-elem
              • Cst-external-declaration-conc1-rep-elem
              • Cst-struct-declarator-list-conc-rep-elem
              • Cst-struct-declarator-list-conc-rep
              • Cst-storage-class-specifier-conc-rep-elem
              • Cst-storage-class-specifier-conc-rep
              • Cst-matchp$
              • Cst-init-declarator-list-conc-rep-elem
              • Cst-external-declaration-conc2-rep
              • Cst-external-declaration-conc2
              • Cst-external-declaration-conc1-rep
              • Cst-external-declaration-conc1
              • Cst-enumeration-constant-conc-rep-elem
              • *grammar*
                • *grammar*-tree-operations
                • Cst-white-space-conc5-rep-elem
                • Cst-white-space-conc5-rep
                • Cst-white-space-conc4-rep-elem
                • Cst-white-space-conc4-rep
                • Cst-white-space-conc3-rep-elem
                • Cst-white-space-conc3-rep
                • Cst-white-space-conc2-rep-elem
                • Cst-white-space-conc2-rep
                • Cst-white-space-conc1-rep-elem
                • Cst-white-space-conc1-rep
                • Cst-unsigned-suffix-conc-rep-elem
                • Cst-struct-declarator-list-conc
                • Cst-struct-declarator-conc-rep-elem
                • Cst-struct-declarator-conc-rep
                • Cst-storage-class-specifier-conc
                • Cst-statement-conc6-rep-elem
                • Cst-statement-conc5-rep-elem
                • Cst-statement-conc4-rep-elem
                • Cst-statement-conc3-rep-elem
                • Cst-statement-conc2-rep-elem
                • Cst-statement-conc1-rep-elem
                • Cst-specifier-qualifier-list-conc
                • Cst-parameter-type-list-conc-rep-elem
                • Cst-parameter-type-list-conc-rep
                • Cst-parameter-declaration-conc
                • Cst-init-declarator-list-conc-rep
                • Cst-identifier-nondigit-conc-rep-elem
                • Cst-identifier-nondigit-conc-rep
                • Cst-hexadecimal-prefix-conc-rep-elem
                • Cst-hexadecimal-prefix-conc-rep
                • Cst-enumeration-constant-conc-rep
                • Cst-constant-expression-conc-rep-elem
                • Cst-constant-expression-conc-rep
                • Cst-carriage-return-conc-rep-elem
                • Cst-block-item-conc2-rep-elem
                • Cst-block-item-conc1-rep-elem
                • Cst-white-space-conc5
                • Cst-white-space-conc4
                • Cst-white-space-conc3
                • Cst-white-space-conc2
                • Cst-white-space-conc1
                • Cst-vertical-tab-conc-rep-elem
                • Cst-unsigned-suffix-conc-rep
                • Cst-typedef-name-conc-rep-elem
                • Cst-token-conc4-rep-elem
                • Cst-token-conc3-rep-elem
                • Cst-token-conc2-rep-elem
                • Cst-token-conc1-rep-elem
                • Cst-struct-declarator-conc
                • Cst-struct-declaration-conc
                • Cst-statement-conc6-rep
                • Cst-statement-conc5-rep
                • Cst-statement-conc4-rep
                • Cst-statement-conc3-rep
                • Cst-statement-conc2-rep
                • Cst-statement-conc1-rep
                • Cst-parameter-type-list-conc
                • Cst-long-suffix-conc-rep-elem
                • Cst-lexeme-conc3-rep-elem
                • Cst-lexeme-conc2-rep-elem
                • Cst-lexeme-conc1-rep-elem
                • Cst-init-declarator-list-conc
                • Cst-identifier-nondigit-conc
                • Cst-horizontal-tab-conc-rep-elem
                • Cst-horizontal-tab-conc-rep
                • Cst-hexadecimal-prefix-conc
                • Cst-function-definition-conc
                • Cst-expression-statement-conc
                • Cst-expression-conc-rep-elem
                • Cst-enumeration-constant-conc
                • Cst-double-quote-conc-rep-elem
                • Cst-constant-expression-conc
                • Cst-constant-conc2-rep-elem
                • Cst-constant-conc2-rep
                • Cst-constant-conc1-rep-elem
                • Cst-constant-conc1-rep
                • Cst-compound-statement-conc
                • Cst-comment-conc2-rep-elem
                • Cst-comment-conc2-rep
                • Cst-comment-conc1-rep-elem
                • Cst-comment-conc1-rep
                • Cst-carriage-return-conc-rep
                • Cst-block-item-conc2-rep
                • Cst-block-item-conc2
                • Cst-block-item-conc1-rep
                • Cst-block-item-conc1
                • Cst-vertical-tab-conc-rep
                • Cst-vertical-tab-conc
                • Cst-unsigned-suffix-conc
                • Cst-typedef-name-conc-rep
                • Cst-typedef-name-conc
                • Cst-type-name-conc
                • Cst-token-conc4-rep
                • Cst-token-conc4
                • Cst-token-conc3-rep
                • Cst-token-conc3
                • Cst-token-conc2-rep
                • Cst-token-conc2
                • Cst-token-conc1-rep
                • Cst-token-conc1
                • Cst-statement-conc6
                • Cst-statement-conc5
                • Cst-statement-conc4
                • Cst-statement-conc3
                • Cst-statement-conc2
                • Cst-statement-conc1
                • Cst-long-suffix-conc-rep
                • Cst-long-suffix-conc
                • Cst-line-feed-conc-rep-elem
                • Cst-line-feed-conc-rep
                • Cst-line-comment-conc
                • Cst-lexeme-conc3-rep
                • Cst-lexeme-conc3
                • Cst-lexeme-conc2-rep
                • Cst-lexeme-conc2
                • Cst-lexeme-conc1-rep
                • Cst-lexeme-conc1
                • Cst-horizontal-tab-conc
                • Cst-form-feed-conc-rep-elem
                • Cst-form-feed-conc-rep
                • Cst-expression-conc-rep
                • Cst-enum-specifier-conc
                • Cst-double-quote-conc-rep
                • Cst-double-quote-conc
                • Cst-declarator-conc
                • Cst-declaration-conc
                • Cst-constant-conc2
                • Cst-constant-conc1
                • Cst-comment-conc2
                • Cst-comment-conc1
                • Cst-character-conc-rep-elem
                • Cst-character-conc-rep
                • Cst-carriage-return-conc
                • Cst-block-comment-conc
                • Cst-space-conc-rep-elem
                • Cst-space-conc-rep
                • Cst-new-line-conc
                • Cst-line-feed-conc
                • Cst-form-feed-conc
                • Cst-expression-conc
                • Cst-character-conc
                • Cst-space-conc
                • Cst-%xe-7f-nat
                • Cst-%xe-29-nat
                • Cst-%xb-c-nat
                • Cst-%x30-7f-nat
                • Cst-%x2b-7f-nat
                • Cst-%x2b-2e-nat
                • Cst-%x0-9-nat
                • Cst-%x0-7f-nat
              • Types
              • Integer-formats-definitions
              • Computation-states
              • Portable-ascii-identifiers
              • Values
              • Integer-operations
              • Object-designators
              • Operations
              • Errors
              • Tag-environments
              • Function-environments
              • Character-sets
              • Flexible-array-member-removal
              • Arithmetic-operations
              • Pointer-operations
              • Real-operations
              • Array-operations
              • Scalar-operations
              • Structure-operations
            • Representation
            • Insertion-sort
            • Pack
          • Soft
          • Bv
          • Imp-language
          • Ethereum
          • Event-macros
          • Java
          • Riscv
          • Bitcoin
          • Zcash
          • Yul
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Axe
          • Lists-light
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • *grammar*

    *grammar*-tree-operations

    Tree operations specialized to *grammar*.

    Definitions and Theorems

    Function: cst-matchp$

    (defun cst-matchp$ (abnf::tree abnf::elem)
     (declare (xargs :guard (and (abnf::treep abnf::tree)
                                 (abnf::elementp abnf::elem))))
     (and (abnf::tree-terminatedp abnf::tree)
          (abnf::tree-match-element-p abnf::tree abnf::elem *grammar*)))

    Theorem: booleanp-of-cst-matchp$

    (defthm booleanp-of-cst-matchp$
      (b* ((abnf::yes/no (cst-matchp$ abnf::tree abnf::elem)))
        (booleanp abnf::yes/no))
      :rule-classes :rewrite)

    Theorem: cst-matchp$-of-tree-fix-tree

    (defthm cst-matchp$-of-tree-fix-tree
      (equal (cst-matchp$ (abnf::tree-fix abnf::tree)
                          abnf::elem)
             (cst-matchp$ abnf::tree abnf::elem)))

    Theorem: cst-matchp$-tree-equiv-congruence-on-tree

    (defthm cst-matchp$-tree-equiv-congruence-on-tree
      (implies (abnf::tree-equiv abnf::tree tree-equiv)
               (equal (cst-matchp$ abnf::tree abnf::elem)
                      (cst-matchp$ tree-equiv abnf::elem)))
      :rule-classes :congruence)

    Theorem: cst-matchp$-of-element-fix-elem

    (defthm cst-matchp$-of-element-fix-elem
      (equal (cst-matchp$ abnf::tree
                          (abnf::element-fix abnf::elem))
             (cst-matchp$ abnf::tree abnf::elem)))

    Theorem: cst-matchp$-element-equiv-congruence-on-elem

    (defthm cst-matchp$-element-equiv-congruence-on-elem
      (implies (abnf::element-equiv abnf::elem elem-equiv)
               (equal (cst-matchp$ abnf::tree abnf::elem)
                      (cst-matchp$ abnf::tree elem-equiv)))
      :rule-classes :congruence)

    Function: cst-list-elem-matchp$

    (defun cst-list-elem-matchp$ (abnf::trees abnf::elem)
      (declare (xargs :guard (and (abnf::tree-listp abnf::trees)
                                  (abnf::elementp abnf::elem))))
      (and (abnf::tree-list-terminatedp abnf::trees)
           (abnf::tree-list-match-element-p
                abnf::trees abnf::elem *grammar*)))

    Theorem: booleanp-of-cst-list-elem-matchp$

    (defthm booleanp-of-cst-list-elem-matchp$
     (b* ((abnf::yes/no (cst-list-elem-matchp$ abnf::trees abnf::elem)))
       (booleanp abnf::yes/no))
     :rule-classes :rewrite)

    Theorem: cst-list-elem-matchp$-of-tree-list-fix-trees

    (defthm cst-list-elem-matchp$-of-tree-list-fix-trees
      (equal (cst-list-elem-matchp$ (abnf::tree-list-fix abnf::trees)
                                    abnf::elem)
             (cst-list-elem-matchp$ abnf::trees abnf::elem)))

    Theorem: cst-list-elem-matchp$-tree-list-equiv-congruence-on-trees

    (defthm cst-list-elem-matchp$-tree-list-equiv-congruence-on-trees
      (implies (abnf::tree-list-equiv abnf::trees trees-equiv)
               (equal (cst-list-elem-matchp$ abnf::trees abnf::elem)
                      (cst-list-elem-matchp$ trees-equiv abnf::elem)))
      :rule-classes :congruence)

    Theorem: cst-list-elem-matchp$-of-element-fix-elem

    (defthm cst-list-elem-matchp$-of-element-fix-elem
      (equal (cst-list-elem-matchp$ abnf::trees
                                    (abnf::element-fix abnf::elem))
             (cst-list-elem-matchp$ abnf::trees abnf::elem)))

    Theorem: cst-list-elem-matchp$-element-equiv-congruence-on-elem

    (defthm cst-list-elem-matchp$-element-equiv-congruence-on-elem
      (implies (abnf::element-equiv abnf::elem elem-equiv)
               (equal (cst-list-elem-matchp$ abnf::trees abnf::elem)
                      (cst-list-elem-matchp$ abnf::trees elem-equiv)))
      :rule-classes :congruence)

    Function: cst-list-rep-matchp$

    (defun cst-list-rep-matchp$ (abnf::trees abnf::rep)
      (declare (xargs :guard (and (abnf::tree-listp abnf::trees)
                                  (abnf::repetitionp abnf::rep))))
      (and (abnf::tree-list-terminatedp abnf::trees)
           (abnf::tree-list-match-repetition-p
                abnf::trees abnf::rep *grammar*)))

    Theorem: booleanp-of-cst-list-rep-matchp$

    (defthm booleanp-of-cst-list-rep-matchp$
      (b* ((abnf::yes/no (cst-list-rep-matchp$ abnf::trees abnf::rep)))
        (booleanp abnf::yes/no))
      :rule-classes :rewrite)

    Theorem: cst-list-rep-matchp$-of-tree-list-fix-trees

    (defthm cst-list-rep-matchp$-of-tree-list-fix-trees
      (equal (cst-list-rep-matchp$ (abnf::tree-list-fix abnf::trees)
                                   abnf::rep)
             (cst-list-rep-matchp$ abnf::trees abnf::rep)))

    Theorem: cst-list-rep-matchp$-tree-list-equiv-congruence-on-trees

    (defthm cst-list-rep-matchp$-tree-list-equiv-congruence-on-trees
      (implies (abnf::tree-list-equiv abnf::trees trees-equiv)
               (equal (cst-list-rep-matchp$ abnf::trees abnf::rep)
                      (cst-list-rep-matchp$ trees-equiv abnf::rep)))
      :rule-classes :congruence)

    Theorem: cst-list-rep-matchp$-of-repetition-fix-rep

    (defthm cst-list-rep-matchp$-of-repetition-fix-rep
      (equal (cst-list-rep-matchp$ abnf::trees
                                   (abnf::repetition-fix abnf::rep))
             (cst-list-rep-matchp$ abnf::trees abnf::rep)))

    Theorem: cst-list-rep-matchp$-repetition-equiv-congruence-on-rep

    (defthm cst-list-rep-matchp$-repetition-equiv-congruence-on-rep
      (implies (abnf::repetition-equiv abnf::rep rep-equiv)
               (equal (cst-list-rep-matchp$ abnf::trees abnf::rep)
                      (cst-list-rep-matchp$ abnf::trees rep-equiv)))
      :rule-classes :congruence)

    Function: cst-list-list-conc-matchp$

    (defun cst-list-list-conc-matchp$ (abnf::treess abnf::conc)
      (declare (xargs :guard (and (abnf::tree-list-listp abnf::treess)
                                  (abnf::concatenationp abnf::conc))))
      (and (abnf::tree-list-list-terminatedp abnf::treess)
           (abnf::tree-list-list-match-concatenation-p
                abnf::treess abnf::conc *grammar*)))

    Theorem: booleanp-of-cst-list-list-conc-matchp$

    (defthm booleanp-of-cst-list-list-conc-matchp$
      (b* ((abnf::yes/no
                (cst-list-list-conc-matchp$ abnf::treess abnf::conc)))
        (booleanp abnf::yes/no))
      :rule-classes :rewrite)

    Theorem: cst-list-list-conc-matchp$-of-tree-list-list-fix-treess

    (defthm cst-list-list-conc-matchp$-of-tree-list-list-fix-treess
      (equal (cst-list-list-conc-matchp$
                  (abnf::tree-list-list-fix abnf::treess)
                  abnf::conc)
             (cst-list-list-conc-matchp$ abnf::treess abnf::conc)))

    Theorem: cst-list-list-conc-matchp$-tree-list-list-equiv-congruence-on-treess

    (defthm
     cst-list-list-conc-matchp$-tree-list-list-equiv-congruence-on-treess
     (implies
          (abnf::tree-list-list-equiv abnf::treess treess-equiv)
          (equal (cst-list-list-conc-matchp$ abnf::treess abnf::conc)
                 (cst-list-list-conc-matchp$ treess-equiv abnf::conc)))
     :rule-classes :congruence)

    Theorem: cst-list-list-conc-matchp$-of-concatenation-fix-conc

    (defthm cst-list-list-conc-matchp$-of-concatenation-fix-conc
     (equal
       (cst-list-list-conc-matchp$ abnf::treess
                                   (abnf::concatenation-fix abnf::conc))
       (cst-list-list-conc-matchp$ abnf::treess abnf::conc)))

    Theorem: cst-list-list-conc-matchp$-concatenation-equiv-congruence-on-conc

    (defthm
      cst-list-list-conc-matchp$-concatenation-equiv-congruence-on-conc
      (implies
           (abnf::concatenation-equiv abnf::conc conc-equiv)
           (equal (cst-list-list-conc-matchp$ abnf::treess abnf::conc)
                  (cst-list-list-conc-matchp$ abnf::treess conc-equiv)))
      :rule-classes :congruence)

    Function: cst-list-list-alt-matchp$

    (defun cst-list-list-alt-matchp$ (abnf::treess abnf::alt)
      (declare (xargs :guard (and (abnf::tree-list-listp abnf::treess)
                                  (abnf::alternationp abnf::alt))))
      (and (abnf::tree-list-list-terminatedp abnf::treess)
           (abnf::tree-list-list-match-alternation-p
                abnf::treess abnf::alt *grammar*)))

    Theorem: booleanp-of-cst-list-list-alt-matchp$

    (defthm booleanp-of-cst-list-list-alt-matchp$
      (b* ((abnf::yes/no
                (cst-list-list-alt-matchp$ abnf::treess abnf::alt)))
        (booleanp abnf::yes/no))
      :rule-classes :rewrite)

    Theorem: cst-list-list-alt-matchp$-of-tree-list-list-fix-treess

    (defthm cst-list-list-alt-matchp$-of-tree-list-list-fix-treess
     (equal
      (cst-list-list-alt-matchp$ (abnf::tree-list-list-fix abnf::treess)
                                 abnf::alt)
      (cst-list-list-alt-matchp$ abnf::treess abnf::alt)))

    Theorem: cst-list-list-alt-matchp$-tree-list-list-equiv-congruence-on-treess

    (defthm
     cst-list-list-alt-matchp$-tree-list-list-equiv-congruence-on-treess
     (implies
          (abnf::tree-list-list-equiv abnf::treess treess-equiv)
          (equal (cst-list-list-alt-matchp$ abnf::treess abnf::alt)
                 (cst-list-list-alt-matchp$ treess-equiv abnf::alt)))
     :rule-classes :congruence)

    Theorem: cst-list-list-alt-matchp$-of-alternation-fix-alt

    (defthm cst-list-list-alt-matchp$-of-alternation-fix-alt
      (equal
           (cst-list-list-alt-matchp$ abnf::treess
                                      (abnf::alternation-fix abnf::alt))
           (cst-list-list-alt-matchp$ abnf::treess abnf::alt)))

    Theorem: cst-list-list-alt-matchp$-alternation-equiv-congruence-on-alt

    (defthm
          cst-list-list-alt-matchp$-alternation-equiv-congruence-on-alt
      (implies
           (abnf::alternation-equiv abnf::alt alt-equiv)
           (equal (cst-list-list-alt-matchp$ abnf::treess abnf::alt)
                  (cst-list-list-alt-matchp$ abnf::treess alt-equiv)))
      :rule-classes :congruence)

    Function: cst-%x0-9-nat

    (defun cst-%x0-9-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x0-9")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%x0-9-nat

    (defthm natp-of-cst-%x0-9-nat
      (b* ((nat (cst-%x0-9-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x0-9-nat-of-tree-fix-cst

    (defthm cst-%x0-9-nat-of-tree-fix-cst
      (equal (cst-%x0-9-nat (abnf::tree-fix abnf::cst))
             (cst-%x0-9-nat abnf::cst)))

    Theorem: cst-%x0-9-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x0-9-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x0-9-nat abnf::cst)
                      (cst-%x0-9-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%x0-7f-nat

    (defun cst-%x0-7f-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x0-7F")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%x0-7f-nat

    (defthm natp-of-cst-%x0-7f-nat
      (b* ((nat (cst-%x0-7f-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x0-7f-nat-of-tree-fix-cst

    (defthm cst-%x0-7f-nat-of-tree-fix-cst
      (equal (cst-%x0-7f-nat (abnf::tree-fix abnf::cst))
             (cst-%x0-7f-nat abnf::cst)))

    Theorem: cst-%x0-7f-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x0-7f-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x0-7f-nat abnf::cst)
                      (cst-%x0-7f-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%xb-c-nat

    (defun cst-%xb-c-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%xB-C")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%xb-c-nat

    (defthm natp-of-cst-%xb-c-nat
      (b* ((nat (cst-%xb-c-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%xb-c-nat-of-tree-fix-cst

    (defthm cst-%xb-c-nat-of-tree-fix-cst
      (equal (cst-%xb-c-nat (abnf::tree-fix abnf::cst))
             (cst-%xb-c-nat abnf::cst)))

    Theorem: cst-%xb-c-nat-tree-equiv-congruence-on-cst

    (defthm cst-%xb-c-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%xb-c-nat abnf::cst)
                      (cst-%xb-c-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%xe-29-nat

    (defun cst-%xe-29-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%xE-29")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%xe-29-nat

    (defthm natp-of-cst-%xe-29-nat
      (b* ((nat (cst-%xe-29-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%xe-29-nat-of-tree-fix-cst

    (defthm cst-%xe-29-nat-of-tree-fix-cst
      (equal (cst-%xe-29-nat (abnf::tree-fix abnf::cst))
             (cst-%xe-29-nat abnf::cst)))

    Theorem: cst-%xe-29-nat-tree-equiv-congruence-on-cst

    (defthm cst-%xe-29-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%xe-29-nat abnf::cst)
                      (cst-%xe-29-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%xe-7f-nat

    (defun cst-%xe-7f-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%xE-7F")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%xe-7f-nat

    (defthm natp-of-cst-%xe-7f-nat
      (b* ((nat (cst-%xe-7f-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%xe-7f-nat-of-tree-fix-cst

    (defthm cst-%xe-7f-nat-of-tree-fix-cst
      (equal (cst-%xe-7f-nat (abnf::tree-fix abnf::cst))
             (cst-%xe-7f-nat abnf::cst)))

    Theorem: cst-%xe-7f-nat-tree-equiv-congruence-on-cst

    (defthm cst-%xe-7f-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%xe-7f-nat abnf::cst)
                      (cst-%xe-7f-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%x2b-2e-nat

    (defun cst-%x2b-2e-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x2B-2E")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%x2b-2e-nat

    (defthm natp-of-cst-%x2b-2e-nat
      (b* ((nat (cst-%x2b-2e-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x2b-2e-nat-of-tree-fix-cst

    (defthm cst-%x2b-2e-nat-of-tree-fix-cst
      (equal (cst-%x2b-2e-nat (abnf::tree-fix abnf::cst))
             (cst-%x2b-2e-nat abnf::cst)))

    Theorem: cst-%x2b-2e-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x2b-2e-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x2b-2e-nat abnf::cst)
                      (cst-%x2b-2e-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%x2b-7f-nat

    (defun cst-%x2b-7f-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x2B-7F")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%x2b-7f-nat

    (defthm natp-of-cst-%x2b-7f-nat
      (b* ((nat (cst-%x2b-7f-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x2b-7f-nat-of-tree-fix-cst

    (defthm cst-%x2b-7f-nat-of-tree-fix-cst
      (equal (cst-%x2b-7f-nat (abnf::tree-fix abnf::cst))
             (cst-%x2b-7f-nat abnf::cst)))

    Theorem: cst-%x2b-7f-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x2b-7f-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x2b-7f-nat abnf::cst)
                      (cst-%x2b-7f-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%x30-7f-nat

    (defun cst-%x30-7f-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x30-7F")))
      (lnfix (nth 0
                  (abnf::tree-leafterm->get abnf::cst))))

    Theorem: natp-of-cst-%x30-7f-nat

    (defthm natp-of-cst-%x30-7f-nat
      (b* ((nat (cst-%x30-7f-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x30-7f-nat-of-tree-fix-cst

    (defthm cst-%x30-7f-nat-of-tree-fix-cst
      (equal (cst-%x30-7f-nat (abnf::tree-fix abnf::cst))
             (cst-%x30-7f-nat abnf::cst)))

    Theorem: cst-%x30-7f-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x30-7f-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x30-7f-nat abnf::cst)
                      (cst-%x30-7f-nat cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-%x0-9-nat-bounds

    (defthm cst-%x0-9-nat-bounds
      (implies (cst-matchp abnf::cst "%x0-9")
               (and (<= 0 (cst-%x0-9-nat abnf::cst))
                    (<= (cst-%x0-9-nat abnf::cst) 9)))
      :rule-classes :linear)

    Theorem: cst-%x0-7f-nat-bounds

    (defthm cst-%x0-7f-nat-bounds
      (implies (cst-matchp abnf::cst "%x0-7F")
               (and (<= 0 (cst-%x0-7f-nat abnf::cst))
                    (<= (cst-%x0-7f-nat abnf::cst) 127)))
      :rule-classes :linear)

    Theorem: cst-%xb-c-nat-bounds

    (defthm cst-%xb-c-nat-bounds
      (implies (cst-matchp abnf::cst "%xB-C")
               (and (<= 11 (cst-%xb-c-nat abnf::cst))
                    (<= (cst-%xb-c-nat abnf::cst) 12)))
      :rule-classes :linear)

    Theorem: cst-%xe-29-nat-bounds

    (defthm cst-%xe-29-nat-bounds
      (implies (cst-matchp abnf::cst "%xE-29")
               (and (<= 14 (cst-%xe-29-nat abnf::cst))
                    (<= (cst-%xe-29-nat abnf::cst) 41)))
      :rule-classes :linear)

    Theorem: cst-%xe-7f-nat-bounds

    (defthm cst-%xe-7f-nat-bounds
      (implies (cst-matchp abnf::cst "%xE-7F")
               (and (<= 14 (cst-%xe-7f-nat abnf::cst))
                    (<= (cst-%xe-7f-nat abnf::cst) 127)))
      :rule-classes :linear)

    Theorem: cst-%x2b-2e-nat-bounds

    (defthm cst-%x2b-2e-nat-bounds
      (implies (cst-matchp abnf::cst "%x2B-2E")
               (and (<= 43 (cst-%x2b-2e-nat abnf::cst))
                    (<= (cst-%x2b-2e-nat abnf::cst) 46)))
      :rule-classes :linear)

    Theorem: cst-%x2b-7f-nat-bounds

    (defthm cst-%x2b-7f-nat-bounds
      (implies (cst-matchp abnf::cst "%x2B-7F")
               (and (<= 43 (cst-%x2b-7f-nat abnf::cst))
                    (<= (cst-%x2b-7f-nat abnf::cst) 127)))
      :rule-classes :linear)

    Theorem: cst-%x30-7f-nat-bounds

    (defthm cst-%x30-7f-nat-bounds
      (implies (cst-matchp abnf::cst "%x30-7F")
               (and (<= 48 (cst-%x30-7f-nat abnf::cst))
                    (<= (cst-%x30-7f-nat abnf::cst) 127)))
      :rule-classes :linear)

    Theorem: cst-"!"-leafterm

    (defthm |CST-"!"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"!\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"!="-leafterm

    (defthm |CST-"!="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"!=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"#"-leafterm

    (defthm |CST-"#"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"#\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"##"-leafterm

    (defthm |CST-"##"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"##\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"%"-leafterm

    (defthm |CST-"%"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"%\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"%:"-leafterm

    (defthm |CST-"%:"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"%:\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"%:%:"-leafterm

    (defthm |CST-"%:%:"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"%:%:\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"%="-leafterm

    (defthm |CST-"%="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"%=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"%>"-leafterm

    (defthm |CST-"%>"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"%>\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"&"-leafterm

    (defthm |CST-"&"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"&\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"&&"-leafterm

    (defthm |CST-"&&"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"&&\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"&="-leafterm

    (defthm |CST-"&="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"&=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"("-leafterm

    (defthm |CST-"("-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"(\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-")"-leafterm

    (defthm |CST-")"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\")\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"*"-leafterm

    (defthm |CST-"*"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"*\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"*="-leafterm

    (defthm |CST-"*="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"*=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"+"-leafterm

    (defthm |CST-"+"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"+\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"++"-leafterm

    (defthm |CST-"++"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"++\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"+="-leafterm

    (defthm |CST-"+="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"+=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-","-leafterm

    (defthm |CST-","-LEAFTERM|
      (implies (cst-matchp abnf::cst "\",\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"-"-leafterm

    (defthm |CST-"-"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"-\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"--"-leafterm

    (defthm |CST-"--"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"--\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"-="-leafterm

    (defthm |CST-"-="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"-=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"->"-leafterm

    (defthm |CST-"->"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"->\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"."-leafterm

    (defthm |CST-"."-LEAFTERM|
      (implies (cst-matchp abnf::cst "\".\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"..."-leafterm

    (defthm |CST-"..."-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"...\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"/"-leafterm

    (defthm |CST-"/"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"/\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"/*"-leafterm

    (defthm |CST-"/*"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"/*\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"//"-leafterm

    (defthm |CST-"//"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"//\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"/="-leafterm

    (defthm |CST-"/="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"/=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"0"-leafterm

    (defthm |CST-"0"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"0\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"1"-leafterm

    (defthm |CST-"1"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"1\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"2"-leafterm

    (defthm |CST-"2"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"2\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"3"-leafterm

    (defthm |CST-"3"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"3\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"4"-leafterm

    (defthm |CST-"4"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"4\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"5"-leafterm

    (defthm |CST-"5"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"5\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"6"-leafterm

    (defthm |CST-"6"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"6\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"7"-leafterm

    (defthm |CST-"7"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"7\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"8"-leafterm

    (defthm |CST-"8"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"8\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"9"-leafterm

    (defthm |CST-"9"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"9\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-":"-leafterm

    (defthm |CST-":"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\":\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-":>"-leafterm

    (defthm |CST-":>"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\":>\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-";"-leafterm

    (defthm |CST-";"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\";\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<"-leafterm

    (defthm |CST-"<"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<%"-leafterm

    (defthm |CST-"<%"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<%\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<:"-leafterm

    (defthm |CST-"<:"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<:\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<<"-leafterm

    (defthm |CST-"<<"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<<\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<<="-leafterm

    (defthm |CST-"<<="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<<=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"<="-leafterm

    (defthm |CST-"<="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"<=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"="-leafterm

    (defthm |CST-"="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"=="-leafterm

    (defthm |CST-"=="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"==\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-">"-leafterm

    (defthm |CST-">"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\">\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-">="-leafterm

    (defthm |CST-">="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\">=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-">>"-leafterm

    (defthm |CST-">>"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\">>\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-">>="-leafterm

    (defthm |CST-">>="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\">>=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"?"-leafterm

    (defthm |CST-"?"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"?\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"["-leafterm

    (defthm |CST-"["-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"[\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"]"-leafterm

    (defthm |CST-"]"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"]\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"^"-leafterm

    (defthm |CST-"^"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"^\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"^="-leafterm

    (defthm |CST-"^="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"^=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"_"-leafterm

    (defthm |CST-"_"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"_\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"{"-leafterm

    (defthm |CST-"{"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"{\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"|"-leafterm

    (defthm |CST-"\|"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"|\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"|="-leafterm

    (defthm |CST-"\|="-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"|=\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"||"-leafterm

    (defthm |CST-"\|\|"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"||\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"}"-leafterm

    (defthm |CST-"}"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"}\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-"~"-leafterm

    (defthm |CST-"~"-LEAFTERM|
      (implies (cst-matchp abnf::cst "\"~\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"0x"-leafterm

    (defthm |CST-%i"0x"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"0x\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"a"-leafterm

    (defthm |CST-%i"a"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"a\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"b"-leafterm

    (defthm |CST-%i"b"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"b\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"c"-leafterm

    (defthm |CST-%i"c"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"c\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"d"-leafterm

    (defthm |CST-%i"d"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"d\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"e"-leafterm

    (defthm |CST-%i"e"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"e\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"f"-leafterm

    (defthm |CST-%i"f"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"f\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"g"-leafterm

    (defthm |CST-%i"g"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"g\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"h"-leafterm

    (defthm |CST-%i"h"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"h\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"i"-leafterm

    (defthm |CST-%i"i"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"i\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"j"-leafterm

    (defthm |CST-%i"j"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"j\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"k"-leafterm

    (defthm |CST-%i"k"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"k\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"l"-leafterm

    (defthm |CST-%i"l"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"l\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"m"-leafterm

    (defthm |CST-%i"m"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"m\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"n"-leafterm

    (defthm |CST-%i"n"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"n\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"o"-leafterm

    (defthm |CST-%i"o"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"o\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"p"-leafterm

    (defthm |CST-%i"p"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"p\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"q"-leafterm

    (defthm |CST-%i"q"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"q\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"r"-leafterm

    (defthm |CST-%i"r"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"r\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"s"-leafterm

    (defthm |CST-%i"s"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"s\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"t"-leafterm

    (defthm |CST-%i"t"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"t\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"u"-leafterm

    (defthm |CST-%i"u"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"u\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"v"-leafterm

    (defthm |CST-%i"v"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"v\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"w"-leafterm

    (defthm |CST-%i"w"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"w\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"x"-leafterm

    (defthm |CST-%i"x"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"x\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"y"-leafterm

    (defthm |CST-%i"y"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"y\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%i"z"-leafterm

    (defthm |CST-%i"z"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%i\"z\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"ll"-leafterm

    (defthm |CST-%s"LL"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"LL\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_alignas"-leafterm

    (defthm |CST-%s"_Alignas"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Alignas\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_alignof"-leafterm

    (defthm |CST-%s"_Alignof"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Alignof\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_atomic"-leafterm

    (defthm |CST-%s"_Atomic"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Atomic\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_bool"-leafterm

    (defthm |CST-%s"_Bool"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Bool\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_complex"-leafterm

    (defthm |CST-%s"_Complex"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Complex\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_generic"-leafterm

    (defthm |CST-%s"_Generic"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Generic\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_imaginary"-leafterm

    (defthm |CST-%s"_Imaginary"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Imaginary\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_noreturn"-leafterm

    (defthm |CST-%s"_Noreturn"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Noreturn\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_static_assert"-leafterm

    (defthm |CST-%s"_Static_assert"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Static_assert\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"_thread_local"-leafterm

    (defthm |CST-%s"_Thread_local"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"_Thread_local\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"auto"-leafterm

    (defthm |CST-%s"auto"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"auto\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"break"-leafterm

    (defthm |CST-%s"break"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"break\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"case"-leafterm

    (defthm |CST-%s"case"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"case\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"char"-leafterm

    (defthm |CST-%s"char"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"char\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"const"-leafterm

    (defthm |CST-%s"const"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"const\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"continue"-leafterm

    (defthm |CST-%s"continue"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"continue\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"default"-leafterm

    (defthm |CST-%s"default"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"default\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"do"-leafterm

    (defthm |CST-%s"do"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"do\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"double"-leafterm

    (defthm |CST-%s"double"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"double\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"else"-leafterm

    (defthm |CST-%s"else"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"else\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"enum"-leafterm

    (defthm |CST-%s"enum"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"enum\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"extern"-leafterm

    (defthm |CST-%s"extern"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"extern\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"float"-leafterm

    (defthm |CST-%s"float"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"float\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"for"-leafterm

    (defthm |CST-%s"for"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"for\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"goto"-leafterm

    (defthm |CST-%s"goto"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"goto\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"if"-leafterm

    (defthm |CST-%s"if"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"if\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"inline"-leafterm

    (defthm |CST-%s"inline"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"inline\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"int"-leafterm

    (defthm |CST-%s"int"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"int\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"ll"-leafterm

    (defthm |CST-%s"ll"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"ll\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"long"-leafterm

    (defthm |CST-%s"long"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"long\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"register"-leafterm

    (defthm |CST-%s"register"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"register\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"restrict"-leafterm

    (defthm |CST-%s"restrict"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"restrict\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"return"-leafterm

    (defthm |CST-%s"return"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"return\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"short"-leafterm

    (defthm |CST-%s"short"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"short\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"signed"-leafterm

    (defthm |CST-%s"signed"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"signed\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"sizeof"-leafterm

    (defthm |CST-%s"sizeof"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"sizeof\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"static"-leafterm

    (defthm |CST-%s"static"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"static\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"struct"-leafterm

    (defthm |CST-%s"struct"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"struct\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"switch"-leafterm

    (defthm |CST-%s"switch"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"switch\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"typedef"-leafterm

    (defthm |CST-%s"typedef"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"typedef\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"union"-leafterm

    (defthm |CST-%s"union"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"union\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"unsigned"-leafterm

    (defthm |CST-%s"unsigned"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"unsigned\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"void"-leafterm

    (defthm |CST-%s"void"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"void\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"volatile"-leafterm

    (defthm |CST-%s"volatile"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"volatile\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-%s"while"-leafterm

    (defthm |CST-%s"while"-LEAFTERM|
      (implies (cst-matchp abnf::cst "%s\"while\"")
               (equal (abnf::tree-kind abnf::cst)
                      :leafterm)))

    Theorem: cst-horizontal-tab-nonleaf

    (defthm cst-horizontal-tab-nonleaf
      (implies (cst-matchp abnf::cst "horizontal-tab")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-line-feed-nonleaf

    (defthm cst-line-feed-nonleaf
      (implies (cst-matchp abnf::cst "line-feed")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-vertical-tab-nonleaf

    (defthm cst-vertical-tab-nonleaf
      (implies (cst-matchp abnf::cst "vertical-tab")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-form-feed-nonleaf

    (defthm cst-form-feed-nonleaf
      (implies (cst-matchp abnf::cst "form-feed")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-carriage-return-nonleaf

    (defthm cst-carriage-return-nonleaf
      (implies (cst-matchp abnf::cst "carriage-return")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-space-nonleaf

    (defthm cst-space-nonleaf
      (implies (cst-matchp abnf::cst "space")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-double-quote-nonleaf

    (defthm cst-double-quote-nonleaf
      (implies (cst-matchp abnf::cst "double-quote")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-not-line-feed-or-carriage-return-nonleaf

    (defthm cst-not-line-feed-or-carriage-return-nonleaf
      (implies (cst-matchp abnf::cst
                           "not-line-feed-or-carriage-return")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-nonleaf

    (defthm cst-not-star-or-line-feed-or-carriage-return-nonleaf
      (implies (cst-matchp abnf::cst
                           "not-star-or-line-feed-or-carriage-return")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-nonleaf

    (defthm
          cst-not-star-or-slash-or-line-feed-or-carriage-return-nonleaf
     (implies
        (cst-matchp abnf::cst
                    "not-star-or-slash-or-line-feed-or-carriage-return")
        (equal (abnf::tree-kind abnf::cst)
               :nonleaf)))

    Theorem: cst-character-nonleaf

    (defthm cst-character-nonleaf
      (implies (cst-matchp abnf::cst "character")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-token-nonleaf

    (defthm cst-token-nonleaf
      (implies (cst-matchp abnf::cst "token")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-keyword-nonleaf

    (defthm cst-keyword-nonleaf
      (implies (cst-matchp abnf::cst "keyword")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-identifier-nonleaf

    (defthm cst-identifier-nonleaf
      (implies (cst-matchp abnf::cst "identifier")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-identifier-nondigit-nonleaf

    (defthm cst-identifier-nondigit-nonleaf
      (implies (cst-matchp abnf::cst "identifier-nondigit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-nondigit-nonleaf

    (defthm cst-nondigit-nonleaf
      (implies (cst-matchp abnf::cst "nondigit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-digit-nonleaf

    (defthm cst-digit-nonleaf
      (implies (cst-matchp abnf::cst "digit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-constant-nonleaf

    (defthm cst-constant-nonleaf
      (implies (cst-matchp abnf::cst "constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-integer-constant-nonleaf

    (defthm cst-integer-constant-nonleaf
      (implies (cst-matchp abnf::cst "integer-constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-decimal-constant-nonleaf

    (defthm cst-decimal-constant-nonleaf
      (implies (cst-matchp abnf::cst "decimal-constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-octal-constant-nonleaf

    (defthm cst-octal-constant-nonleaf
      (implies (cst-matchp abnf::cst "octal-constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-hexadecimal-constant-nonleaf

    (defthm cst-hexadecimal-constant-nonleaf
      (implies (cst-matchp abnf::cst "hexadecimal-constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-hexadecimal-prefix-nonleaf

    (defthm cst-hexadecimal-prefix-nonleaf
      (implies (cst-matchp abnf::cst "hexadecimal-prefix")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-nonzero-digit-nonleaf

    (defthm cst-nonzero-digit-nonleaf
      (implies (cst-matchp abnf::cst "nonzero-digit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-octal-digit-nonleaf

    (defthm cst-octal-digit-nonleaf
      (implies (cst-matchp abnf::cst "octal-digit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-hexadecimal-digit-nonleaf

    (defthm cst-hexadecimal-digit-nonleaf
      (implies (cst-matchp abnf::cst "hexadecimal-digit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-integer-suffix-nonleaf

    (defthm cst-integer-suffix-nonleaf
      (implies (cst-matchp abnf::cst "integer-suffix")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-unsigned-suffix-nonleaf

    (defthm cst-unsigned-suffix-nonleaf
      (implies (cst-matchp abnf::cst "unsigned-suffix")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-long-suffix-nonleaf

    (defthm cst-long-suffix-nonleaf
      (implies (cst-matchp abnf::cst "long-suffix")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-long-long-suffix-nonleaf

    (defthm cst-long-long-suffix-nonleaf
      (implies (cst-matchp abnf::cst "long-long-suffix")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-enumeration-constant-nonleaf

    (defthm cst-enumeration-constant-nonleaf
      (implies (cst-matchp abnf::cst "enumeration-constant")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-punctuator-nonleaf

    (defthm cst-punctuator-nonleaf
      (implies (cst-matchp abnf::cst "punctuator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-new-line-nonleaf

    (defthm cst-new-line-nonleaf
      (implies (cst-matchp abnf::cst "new-line")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-comment-nonleaf

    (defthm cst-comment-nonleaf
      (implies (cst-matchp abnf::cst "comment")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-block-comment-nonleaf

    (defthm cst-block-comment-nonleaf
      (implies (cst-matchp abnf::cst "block-comment")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-rest-of-block-comment-nonleaf

    (defthm cst-rest-of-block-comment-nonleaf
      (implies (cst-matchp abnf::cst "rest-of-block-comment")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-rest-of-block-comment-after-star-nonleaf

    (defthm cst-rest-of-block-comment-after-star-nonleaf
      (implies (cst-matchp abnf::cst
                           "rest-of-block-comment-after-star")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-line-comment-nonleaf

    (defthm cst-line-comment-nonleaf
      (implies (cst-matchp abnf::cst "line-comment")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-white-space-nonleaf

    (defthm cst-white-space-nonleaf
      (implies (cst-matchp abnf::cst "white-space")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-lexeme-nonleaf

    (defthm cst-lexeme-nonleaf
      (implies (cst-matchp abnf::cst "lexeme")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-primary-expression-nonleaf

    (defthm cst-primary-expression-nonleaf
      (implies (cst-matchp abnf::cst "primary-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-postfix-expression-nonleaf

    (defthm cst-postfix-expression-nonleaf
      (implies (cst-matchp abnf::cst "postfix-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-argument-expression-list-nonleaf

    (defthm cst-argument-expression-list-nonleaf
      (implies (cst-matchp abnf::cst "argument-expression-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-unary-expression-nonleaf

    (defthm cst-unary-expression-nonleaf
      (implies (cst-matchp abnf::cst "unary-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-unary-operator-nonleaf

    (defthm cst-unary-operator-nonleaf
      (implies (cst-matchp abnf::cst "unary-operator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-cast-expression-nonleaf

    (defthm cst-cast-expression-nonleaf
      (implies (cst-matchp abnf::cst "cast-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-multiplicative-expression-nonleaf

    (defthm cst-multiplicative-expression-nonleaf
      (implies (cst-matchp abnf::cst "multiplicative-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-additive-expression-nonleaf

    (defthm cst-additive-expression-nonleaf
      (implies (cst-matchp abnf::cst "additive-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-shift-expression-nonleaf

    (defthm cst-shift-expression-nonleaf
      (implies (cst-matchp abnf::cst "shift-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-relational-expression-nonleaf

    (defthm cst-relational-expression-nonleaf
      (implies (cst-matchp abnf::cst "relational-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-equality-expression-nonleaf

    (defthm cst-equality-expression-nonleaf
      (implies (cst-matchp abnf::cst "equality-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-and-expression-nonleaf

    (defthm cst-and-expression-nonleaf
      (implies (cst-matchp abnf::cst "and-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-exclusive-or-expression-nonleaf

    (defthm cst-exclusive-or-expression-nonleaf
      (implies (cst-matchp abnf::cst "exclusive-or-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-inclusive-or-expression-nonleaf

    (defthm cst-inclusive-or-expression-nonleaf
      (implies (cst-matchp abnf::cst "inclusive-or-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-logical-and-expression-nonleaf

    (defthm cst-logical-and-expression-nonleaf
      (implies (cst-matchp abnf::cst "logical-and-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-logical-or-expression-nonleaf

    (defthm cst-logical-or-expression-nonleaf
      (implies (cst-matchp abnf::cst "logical-or-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-conditional-expression-nonleaf

    (defthm cst-conditional-expression-nonleaf
      (implies (cst-matchp abnf::cst "conditional-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-assignment-expression-nonleaf

    (defthm cst-assignment-expression-nonleaf
      (implies (cst-matchp abnf::cst "assignment-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-assignment-operator-nonleaf

    (defthm cst-assignment-operator-nonleaf
      (implies (cst-matchp abnf::cst "assignment-operator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-expression-nonleaf

    (defthm cst-expression-nonleaf
      (implies (cst-matchp abnf::cst "expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-constant-expression-nonleaf

    (defthm cst-constant-expression-nonleaf
      (implies (cst-matchp abnf::cst "constant-expression")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-declaration-nonleaf

    (defthm cst-declaration-nonleaf
      (implies (cst-matchp abnf::cst "declaration")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-declaration-specifiers-nonleaf

    (defthm cst-declaration-specifiers-nonleaf
      (implies (cst-matchp abnf::cst "declaration-specifiers")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-init-declarator-list-nonleaf

    (defthm cst-init-declarator-list-nonleaf
      (implies (cst-matchp abnf::cst "init-declarator-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-init-declarator-nonleaf

    (defthm cst-init-declarator-nonleaf
      (implies (cst-matchp abnf::cst "init-declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-storage-class-specifier-nonleaf

    (defthm cst-storage-class-specifier-nonleaf
      (implies (cst-matchp abnf::cst "storage-class-specifier")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-type-specifier-nonleaf

    (defthm cst-type-specifier-nonleaf
      (implies (cst-matchp abnf::cst "type-specifier")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-or-union-specifier-nonleaf

    (defthm cst-struct-or-union-specifier-nonleaf
      (implies (cst-matchp abnf::cst "struct-or-union-specifier")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-or-union-nonleaf

    (defthm cst-struct-or-union-nonleaf
      (implies (cst-matchp abnf::cst "struct-or-union")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-declaration-list-nonleaf

    (defthm cst-struct-declaration-list-nonleaf
      (implies (cst-matchp abnf::cst "struct-declaration-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-declaration-nonleaf

    (defthm cst-struct-declaration-nonleaf
      (implies (cst-matchp abnf::cst "struct-declaration")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-specifier-qualifier-list-nonleaf

    (defthm cst-specifier-qualifier-list-nonleaf
      (implies (cst-matchp abnf::cst "specifier-qualifier-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-declarator-list-nonleaf

    (defthm cst-struct-declarator-list-nonleaf
      (implies (cst-matchp abnf::cst "struct-declarator-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-struct-declarator-nonleaf

    (defthm cst-struct-declarator-nonleaf
      (implies (cst-matchp abnf::cst "struct-declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-enum-specifier-nonleaf

    (defthm cst-enum-specifier-nonleaf
      (implies (cst-matchp abnf::cst "enum-specifier")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-declarator-nonleaf

    (defthm cst-declarator-nonleaf
      (implies (cst-matchp abnf::cst "declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-direct-declarator-nonleaf

    (defthm cst-direct-declarator-nonleaf
      (implies (cst-matchp abnf::cst "direct-declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-pointer-nonleaf

    (defthm cst-pointer-nonleaf
      (implies (cst-matchp abnf::cst "pointer")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-parameter-type-list-nonleaf

    (defthm cst-parameter-type-list-nonleaf
      (implies (cst-matchp abnf::cst "parameter-type-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-parameter-list-nonleaf

    (defthm cst-parameter-list-nonleaf
      (implies (cst-matchp abnf::cst "parameter-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-parameter-declaration-nonleaf

    (defthm cst-parameter-declaration-nonleaf
      (implies (cst-matchp abnf::cst "parameter-declaration")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-type-name-nonleaf

    (defthm cst-type-name-nonleaf
      (implies (cst-matchp abnf::cst "type-name")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-abstract-declarator-nonleaf

    (defthm cst-abstract-declarator-nonleaf
      (implies (cst-matchp abnf::cst "abstract-declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-direct-abstract-declarator-nonleaf

    (defthm cst-direct-abstract-declarator-nonleaf
      (implies (cst-matchp abnf::cst "direct-abstract-declarator")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-typedef-name-nonleaf

    (defthm cst-typedef-name-nonleaf
      (implies (cst-matchp abnf::cst "typedef-name")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-initializer-nonleaf

    (defthm cst-initializer-nonleaf
      (implies (cst-matchp abnf::cst "initializer")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-initializer-list-nonleaf

    (defthm cst-initializer-list-nonleaf
      (implies (cst-matchp abnf::cst "initializer-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-statement-nonleaf

    (defthm cst-statement-nonleaf
      (implies (cst-matchp abnf::cst "statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-labeled-statement-nonleaf

    (defthm cst-labeled-statement-nonleaf
      (implies (cst-matchp abnf::cst "labeled-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-compound-statement-nonleaf

    (defthm cst-compound-statement-nonleaf
      (implies (cst-matchp abnf::cst "compound-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-block-item-list-nonleaf

    (defthm cst-block-item-list-nonleaf
      (implies (cst-matchp abnf::cst "block-item-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-block-item-nonleaf

    (defthm cst-block-item-nonleaf
      (implies (cst-matchp abnf::cst "block-item")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-expression-statement-nonleaf

    (defthm cst-expression-statement-nonleaf
      (implies (cst-matchp abnf::cst "expression-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-selection-statement-nonleaf

    (defthm cst-selection-statement-nonleaf
      (implies (cst-matchp abnf::cst "selection-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-iteration-statement-nonleaf

    (defthm cst-iteration-statement-nonleaf
      (implies (cst-matchp abnf::cst "iteration-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-jump-statement-nonleaf

    (defthm cst-jump-statement-nonleaf
      (implies (cst-matchp abnf::cst "jump-statement")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-translation-unit-nonleaf

    (defthm cst-translation-unit-nonleaf
      (implies (cst-matchp abnf::cst "translation-unit")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-external-declaration-nonleaf

    (defthm cst-external-declaration-nonleaf
      (implies (cst-matchp abnf::cst "external-declaration")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-function-definition-nonleaf

    (defthm cst-function-definition-nonleaf
      (implies (cst-matchp abnf::cst "function-definition")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-declaration-list-nonleaf

    (defthm cst-declaration-list-nonleaf
      (implies (cst-matchp abnf::cst "declaration-list")
               (equal (abnf::tree-kind abnf::cst)
                      :nonleaf)))

    Theorem: cst-horizontal-tab-rulename

    (defthm cst-horizontal-tab-rulename
      (implies (cst-matchp abnf::cst "horizontal-tab")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "horizontal-tab"))))

    Theorem: cst-line-feed-rulename

    (defthm cst-line-feed-rulename
      (implies (cst-matchp abnf::cst "line-feed")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "line-feed"))))

    Theorem: cst-vertical-tab-rulename

    (defthm cst-vertical-tab-rulename
      (implies (cst-matchp abnf::cst "vertical-tab")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "vertical-tab"))))

    Theorem: cst-form-feed-rulename

    (defthm cst-form-feed-rulename
      (implies (cst-matchp abnf::cst "form-feed")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "form-feed"))))

    Theorem: cst-carriage-return-rulename

    (defthm cst-carriage-return-rulename
      (implies (cst-matchp abnf::cst "carriage-return")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "carriage-return"))))

    Theorem: cst-space-rulename

    (defthm cst-space-rulename
      (implies (cst-matchp abnf::cst "space")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "space"))))

    Theorem: cst-double-quote-rulename

    (defthm cst-double-quote-rulename
      (implies (cst-matchp abnf::cst "double-quote")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "double-quote"))))

    Theorem: cst-not-line-feed-or-carriage-return-rulename

    (defthm cst-not-line-feed-or-carriage-return-rulename
      (implies
           (cst-matchp abnf::cst
                       "not-line-feed-or-carriage-return")
           (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                  (abnf::rulename "not-line-feed-or-carriage-return"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-rulename

    (defthm cst-not-star-or-line-feed-or-carriage-return-rulename
     (implies
      (cst-matchp abnf::cst
                  "not-star-or-line-feed-or-carriage-return")
      (equal
          (abnf::tree-nonleaf->rulename? abnf::cst)
          (abnf::rulename "not-star-or-line-feed-or-carriage-return"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-rulename

    (defthm
         cst-not-star-or-slash-or-line-feed-or-carriage-return-rulename
     (implies
       (cst-matchp abnf::cst
                   "not-star-or-slash-or-line-feed-or-carriage-return")
       (equal
            (abnf::tree-nonleaf->rulename? abnf::cst)
            (abnf::rulename
                 "not-star-or-slash-or-line-feed-or-carriage-return"))))

    Theorem: cst-character-rulename

    (defthm cst-character-rulename
      (implies (cst-matchp abnf::cst "character")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "character"))))

    Theorem: cst-token-rulename

    (defthm cst-token-rulename
      (implies (cst-matchp abnf::cst "token")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "token"))))

    Theorem: cst-keyword-rulename

    (defthm cst-keyword-rulename
      (implies (cst-matchp abnf::cst "keyword")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "keyword"))))

    Theorem: cst-identifier-rulename

    (defthm cst-identifier-rulename
      (implies (cst-matchp abnf::cst "identifier")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "identifier"))))

    Theorem: cst-identifier-nondigit-rulename

    (defthm cst-identifier-nondigit-rulename
      (implies (cst-matchp abnf::cst "identifier-nondigit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "identifier-nondigit"))))

    Theorem: cst-nondigit-rulename

    (defthm cst-nondigit-rulename
      (implies (cst-matchp abnf::cst "nondigit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "nondigit"))))

    Theorem: cst-digit-rulename

    (defthm cst-digit-rulename
      (implies (cst-matchp abnf::cst "digit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "digit"))))

    Theorem: cst-constant-rulename

    (defthm cst-constant-rulename
      (implies (cst-matchp abnf::cst "constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "constant"))))

    Theorem: cst-integer-constant-rulename

    (defthm cst-integer-constant-rulename
      (implies (cst-matchp abnf::cst "integer-constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "integer-constant"))))

    Theorem: cst-decimal-constant-rulename

    (defthm cst-decimal-constant-rulename
      (implies (cst-matchp abnf::cst "decimal-constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "decimal-constant"))))

    Theorem: cst-octal-constant-rulename

    (defthm cst-octal-constant-rulename
      (implies (cst-matchp abnf::cst "octal-constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "octal-constant"))))

    Theorem: cst-hexadecimal-constant-rulename

    (defthm cst-hexadecimal-constant-rulename
      (implies (cst-matchp abnf::cst "hexadecimal-constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "hexadecimal-constant"))))

    Theorem: cst-hexadecimal-prefix-rulename

    (defthm cst-hexadecimal-prefix-rulename
      (implies (cst-matchp abnf::cst "hexadecimal-prefix")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "hexadecimal-prefix"))))

    Theorem: cst-nonzero-digit-rulename

    (defthm cst-nonzero-digit-rulename
      (implies (cst-matchp abnf::cst "nonzero-digit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "nonzero-digit"))))

    Theorem: cst-octal-digit-rulename

    (defthm cst-octal-digit-rulename
      (implies (cst-matchp abnf::cst "octal-digit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "octal-digit"))))

    Theorem: cst-hexadecimal-digit-rulename

    (defthm cst-hexadecimal-digit-rulename
      (implies (cst-matchp abnf::cst "hexadecimal-digit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "hexadecimal-digit"))))

    Theorem: cst-integer-suffix-rulename

    (defthm cst-integer-suffix-rulename
      (implies (cst-matchp abnf::cst "integer-suffix")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "integer-suffix"))))

    Theorem: cst-unsigned-suffix-rulename

    (defthm cst-unsigned-suffix-rulename
      (implies (cst-matchp abnf::cst "unsigned-suffix")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "unsigned-suffix"))))

    Theorem: cst-long-suffix-rulename

    (defthm cst-long-suffix-rulename
      (implies (cst-matchp abnf::cst "long-suffix")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "long-suffix"))))

    Theorem: cst-long-long-suffix-rulename

    (defthm cst-long-long-suffix-rulename
      (implies (cst-matchp abnf::cst "long-long-suffix")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "long-long-suffix"))))

    Theorem: cst-enumeration-constant-rulename

    (defthm cst-enumeration-constant-rulename
      (implies (cst-matchp abnf::cst "enumeration-constant")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "enumeration-constant"))))

    Theorem: cst-punctuator-rulename

    (defthm cst-punctuator-rulename
      (implies (cst-matchp abnf::cst "punctuator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "punctuator"))))

    Theorem: cst-new-line-rulename

    (defthm cst-new-line-rulename
      (implies (cst-matchp abnf::cst "new-line")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "new-line"))))

    Theorem: cst-comment-rulename

    (defthm cst-comment-rulename
      (implies (cst-matchp abnf::cst "comment")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "comment"))))

    Theorem: cst-block-comment-rulename

    (defthm cst-block-comment-rulename
      (implies (cst-matchp abnf::cst "block-comment")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "block-comment"))))

    Theorem: cst-rest-of-block-comment-rulename

    (defthm cst-rest-of-block-comment-rulename
      (implies (cst-matchp abnf::cst "rest-of-block-comment")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "rest-of-block-comment"))))

    Theorem: cst-rest-of-block-comment-after-star-rulename

    (defthm cst-rest-of-block-comment-after-star-rulename
      (implies
           (cst-matchp abnf::cst
                       "rest-of-block-comment-after-star")
           (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                  (abnf::rulename "rest-of-block-comment-after-star"))))

    Theorem: cst-line-comment-rulename

    (defthm cst-line-comment-rulename
      (implies (cst-matchp abnf::cst "line-comment")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "line-comment"))))

    Theorem: cst-white-space-rulename

    (defthm cst-white-space-rulename
      (implies (cst-matchp abnf::cst "white-space")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "white-space"))))

    Theorem: cst-lexeme-rulename

    (defthm cst-lexeme-rulename
      (implies (cst-matchp abnf::cst "lexeme")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "lexeme"))))

    Theorem: cst-primary-expression-rulename

    (defthm cst-primary-expression-rulename
      (implies (cst-matchp abnf::cst "primary-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "primary-expression"))))

    Theorem: cst-postfix-expression-rulename

    (defthm cst-postfix-expression-rulename
      (implies (cst-matchp abnf::cst "postfix-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "postfix-expression"))))

    Theorem: cst-argument-expression-list-rulename

    (defthm cst-argument-expression-list-rulename
      (implies (cst-matchp abnf::cst "argument-expression-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "argument-expression-list"))))

    Theorem: cst-unary-expression-rulename

    (defthm cst-unary-expression-rulename
      (implies (cst-matchp abnf::cst "unary-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "unary-expression"))))

    Theorem: cst-unary-operator-rulename

    (defthm cst-unary-operator-rulename
      (implies (cst-matchp abnf::cst "unary-operator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "unary-operator"))))

    Theorem: cst-cast-expression-rulename

    (defthm cst-cast-expression-rulename
      (implies (cst-matchp abnf::cst "cast-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "cast-expression"))))

    Theorem: cst-multiplicative-expression-rulename

    (defthm cst-multiplicative-expression-rulename
      (implies (cst-matchp abnf::cst "multiplicative-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "multiplicative-expression"))))

    Theorem: cst-additive-expression-rulename

    (defthm cst-additive-expression-rulename
      (implies (cst-matchp abnf::cst "additive-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "additive-expression"))))

    Theorem: cst-shift-expression-rulename

    (defthm cst-shift-expression-rulename
      (implies (cst-matchp abnf::cst "shift-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "shift-expression"))))

    Theorem: cst-relational-expression-rulename

    (defthm cst-relational-expression-rulename
      (implies (cst-matchp abnf::cst "relational-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "relational-expression"))))

    Theorem: cst-equality-expression-rulename

    (defthm cst-equality-expression-rulename
      (implies (cst-matchp abnf::cst "equality-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "equality-expression"))))

    Theorem: cst-and-expression-rulename

    (defthm cst-and-expression-rulename
      (implies (cst-matchp abnf::cst "and-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "and-expression"))))

    Theorem: cst-exclusive-or-expression-rulename

    (defthm cst-exclusive-or-expression-rulename
      (implies (cst-matchp abnf::cst "exclusive-or-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "exclusive-or-expression"))))

    Theorem: cst-inclusive-or-expression-rulename

    (defthm cst-inclusive-or-expression-rulename
      (implies (cst-matchp abnf::cst "inclusive-or-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "inclusive-or-expression"))))

    Theorem: cst-logical-and-expression-rulename

    (defthm cst-logical-and-expression-rulename
      (implies (cst-matchp abnf::cst "logical-and-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "logical-and-expression"))))

    Theorem: cst-logical-or-expression-rulename

    (defthm cst-logical-or-expression-rulename
      (implies (cst-matchp abnf::cst "logical-or-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "logical-or-expression"))))

    Theorem: cst-conditional-expression-rulename

    (defthm cst-conditional-expression-rulename
      (implies (cst-matchp abnf::cst "conditional-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "conditional-expression"))))

    Theorem: cst-assignment-expression-rulename

    (defthm cst-assignment-expression-rulename
      (implies (cst-matchp abnf::cst "assignment-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "assignment-expression"))))

    Theorem: cst-assignment-operator-rulename

    (defthm cst-assignment-operator-rulename
      (implies (cst-matchp abnf::cst "assignment-operator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "assignment-operator"))))

    Theorem: cst-expression-rulename

    (defthm cst-expression-rulename
      (implies (cst-matchp abnf::cst "expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "expression"))))

    Theorem: cst-constant-expression-rulename

    (defthm cst-constant-expression-rulename
      (implies (cst-matchp abnf::cst "constant-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "constant-expression"))))

    Theorem: cst-declaration-rulename

    (defthm cst-declaration-rulename
      (implies (cst-matchp abnf::cst "declaration")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "declaration"))))

    Theorem: cst-declaration-specifiers-rulename

    (defthm cst-declaration-specifiers-rulename
      (implies (cst-matchp abnf::cst "declaration-specifiers")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "declaration-specifiers"))))

    Theorem: cst-init-declarator-list-rulename

    (defthm cst-init-declarator-list-rulename
      (implies (cst-matchp abnf::cst "init-declarator-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "init-declarator-list"))))

    Theorem: cst-init-declarator-rulename

    (defthm cst-init-declarator-rulename
      (implies (cst-matchp abnf::cst "init-declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "init-declarator"))))

    Theorem: cst-storage-class-specifier-rulename

    (defthm cst-storage-class-specifier-rulename
      (implies (cst-matchp abnf::cst "storage-class-specifier")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "storage-class-specifier"))))

    Theorem: cst-type-specifier-rulename

    (defthm cst-type-specifier-rulename
      (implies (cst-matchp abnf::cst "type-specifier")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "type-specifier"))))

    Theorem: cst-struct-or-union-specifier-rulename

    (defthm cst-struct-or-union-specifier-rulename
      (implies (cst-matchp abnf::cst "struct-or-union-specifier")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-or-union-specifier"))))

    Theorem: cst-struct-or-union-rulename

    (defthm cst-struct-or-union-rulename
      (implies (cst-matchp abnf::cst "struct-or-union")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-or-union"))))

    Theorem: cst-struct-declaration-list-rulename

    (defthm cst-struct-declaration-list-rulename
      (implies (cst-matchp abnf::cst "struct-declaration-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-declaration-list"))))

    Theorem: cst-struct-declaration-rulename

    (defthm cst-struct-declaration-rulename
      (implies (cst-matchp abnf::cst "struct-declaration")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-declaration"))))

    Theorem: cst-specifier-qualifier-list-rulename

    (defthm cst-specifier-qualifier-list-rulename
      (implies (cst-matchp abnf::cst "specifier-qualifier-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "specifier-qualifier-list"))))

    Theorem: cst-struct-declarator-list-rulename

    (defthm cst-struct-declarator-list-rulename
      (implies (cst-matchp abnf::cst "struct-declarator-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-declarator-list"))))

    Theorem: cst-struct-declarator-rulename

    (defthm cst-struct-declarator-rulename
      (implies (cst-matchp abnf::cst "struct-declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "struct-declarator"))))

    Theorem: cst-enum-specifier-rulename

    (defthm cst-enum-specifier-rulename
      (implies (cst-matchp abnf::cst "enum-specifier")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "enum-specifier"))))

    Theorem: cst-declarator-rulename

    (defthm cst-declarator-rulename
      (implies (cst-matchp abnf::cst "declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "declarator"))))

    Theorem: cst-direct-declarator-rulename

    (defthm cst-direct-declarator-rulename
      (implies (cst-matchp abnf::cst "direct-declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "direct-declarator"))))

    Theorem: cst-pointer-rulename

    (defthm cst-pointer-rulename
      (implies (cst-matchp abnf::cst "pointer")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "pointer"))))

    Theorem: cst-parameter-type-list-rulename

    (defthm cst-parameter-type-list-rulename
      (implies (cst-matchp abnf::cst "parameter-type-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "parameter-type-list"))))

    Theorem: cst-parameter-list-rulename

    (defthm cst-parameter-list-rulename
      (implies (cst-matchp abnf::cst "parameter-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "parameter-list"))))

    Theorem: cst-parameter-declaration-rulename

    (defthm cst-parameter-declaration-rulename
      (implies (cst-matchp abnf::cst "parameter-declaration")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "parameter-declaration"))))

    Theorem: cst-type-name-rulename

    (defthm cst-type-name-rulename
      (implies (cst-matchp abnf::cst "type-name")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "type-name"))))

    Theorem: cst-abstract-declarator-rulename

    (defthm cst-abstract-declarator-rulename
      (implies (cst-matchp abnf::cst "abstract-declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "abstract-declarator"))))

    Theorem: cst-direct-abstract-declarator-rulename

    (defthm cst-direct-abstract-declarator-rulename
      (implies (cst-matchp abnf::cst "direct-abstract-declarator")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "direct-abstract-declarator"))))

    Theorem: cst-typedef-name-rulename

    (defthm cst-typedef-name-rulename
      (implies (cst-matchp abnf::cst "typedef-name")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "typedef-name"))))

    Theorem: cst-initializer-rulename

    (defthm cst-initializer-rulename
      (implies (cst-matchp abnf::cst "initializer")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "initializer"))))

    Theorem: cst-initializer-list-rulename

    (defthm cst-initializer-list-rulename
      (implies (cst-matchp abnf::cst "initializer-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "initializer-list"))))

    Theorem: cst-statement-rulename

    (defthm cst-statement-rulename
      (implies (cst-matchp abnf::cst "statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "statement"))))

    Theorem: cst-labeled-statement-rulename

    (defthm cst-labeled-statement-rulename
      (implies (cst-matchp abnf::cst "labeled-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "labeled-statement"))))

    Theorem: cst-compound-statement-rulename

    (defthm cst-compound-statement-rulename
      (implies (cst-matchp abnf::cst "compound-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "compound-statement"))))

    Theorem: cst-block-item-list-rulename

    (defthm cst-block-item-list-rulename
      (implies (cst-matchp abnf::cst "block-item-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "block-item-list"))))

    Theorem: cst-block-item-rulename

    (defthm cst-block-item-rulename
      (implies (cst-matchp abnf::cst "block-item")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "block-item"))))

    Theorem: cst-expression-statement-rulename

    (defthm cst-expression-statement-rulename
      (implies (cst-matchp abnf::cst "expression-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "expression-statement"))))

    Theorem: cst-selection-statement-rulename

    (defthm cst-selection-statement-rulename
      (implies (cst-matchp abnf::cst "selection-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "selection-statement"))))

    Theorem: cst-iteration-statement-rulename

    (defthm cst-iteration-statement-rulename
      (implies (cst-matchp abnf::cst "iteration-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "iteration-statement"))))

    Theorem: cst-jump-statement-rulename

    (defthm cst-jump-statement-rulename
      (implies (cst-matchp abnf::cst "jump-statement")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "jump-statement"))))

    Theorem: cst-translation-unit-rulename

    (defthm cst-translation-unit-rulename
      (implies (cst-matchp abnf::cst "translation-unit")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "translation-unit"))))

    Theorem: cst-external-declaration-rulename

    (defthm cst-external-declaration-rulename
      (implies (cst-matchp abnf::cst "external-declaration")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "external-declaration"))))

    Theorem: cst-function-definition-rulename

    (defthm cst-function-definition-rulename
      (implies (cst-matchp abnf::cst "function-definition")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "function-definition"))))

    Theorem: cst-declaration-list-rulename

    (defthm cst-declaration-list-rulename
      (implies (cst-matchp abnf::cst "declaration-list")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "declaration-list"))))

    Theorem: cst-horizontal-tab-branches-match-alt

    (defthm cst-horizontal-tab-branches-match-alt
     (implies
      (cst-matchp abnf::cst "horizontal-tab")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x9")))

    Theorem: cst-line-feed-branches-match-alt

    (defthm cst-line-feed-branches-match-alt
     (implies
      (cst-matchp abnf::cst "line-feed")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%xA")))

    Theorem: cst-vertical-tab-branches-match-alt

    (defthm cst-vertical-tab-branches-match-alt
     (implies
      (cst-matchp abnf::cst "vertical-tab")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%xB")))

    Theorem: cst-form-feed-branches-match-alt

    (defthm cst-form-feed-branches-match-alt
     (implies
      (cst-matchp abnf::cst "form-feed")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%xC")))

    Theorem: cst-carriage-return-branches-match-alt

    (defthm cst-carriage-return-branches-match-alt
     (implies
      (cst-matchp abnf::cst "carriage-return")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%xD")))

    Theorem: cst-space-branches-match-alt

    (defthm cst-space-branches-match-alt
     (implies
      (cst-matchp abnf::cst "space")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x20")))

    Theorem: cst-double-quote-branches-match-alt

    (defthm cst-double-quote-branches-match-alt
     (implies
      (cst-matchp abnf::cst "double-quote")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x22")))

    Theorem: cst-not-line-feed-or-carriage-return-branches-match-alt

    (defthm cst-not-line-feed-or-carriage-return-branches-match-alt
     (implies
      (cst-matchp abnf::cst
                  "not-line-feed-or-carriage-return")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x0-9 / %xB-C / %xE-7F")))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-branches-match-alt

    (defthm
        cst-not-star-or-line-feed-or-carriage-return-branches-match-alt
     (implies
      (cst-matchp abnf::cst
                  "not-star-or-line-feed-or-carriage-return")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x0-9 / %xB-C / %xE-29 / %x2B-7F")))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-branches-match-alt

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-branches-match-alt
     (implies
        (cst-matchp abnf::cst
                    "not-star-or-slash-or-line-feed-or-carriage-return")
        (cst-list-list-alt-matchp
             (abnf::tree-nonleaf->branches abnf::cst)
             "%x0-9 / %xB-C / %xE-29 / %x2B-2E / %x30-7F")))

    Theorem: cst-character-branches-match-alt

    (defthm cst-character-branches-match-alt
     (implies
      (cst-matchp abnf::cst "character")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x0-7F")))

    Theorem: cst-token-branches-match-alt

    (defthm cst-token-branches-match-alt
      (implies (cst-matchp abnf::cst "token")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "keyword / identifier / constant / punctuator")))

    Theorem: cst-keyword-branches-match-alt

    (defthm cst-keyword-branches-match-alt
     (implies
      (cst-matchp abnf::cst "keyword")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "%s\"auto\" / %s\"break\" / %s\"case\" / %s\"char\" / %s\"const\" / %s\"continue\" / %s\"default\" / %s\"do\" / %s\"double\" / %s\"else\" / %s\"enum\" / %s\"extern\" / %s\"float\" / %s\"for\" / %s\"goto\" / %s\"if\" / %s\"inline\" / %s\"int\" / %s\"long\" / %s\"register\" / %s\"restrict\" / %s\"return\" / %s\"short\" / %s\"signed\" / %s\"sizeof\" / %s\"static\" / %s\"struct\" / %s\"switch\" / %s\"typedef\" / %s\"union\" / %s\"unsigned\" / %s\"void\" / %s\"volatile\" / %s\"while\" / %s\"_Alignas\" / %s\"_Alignof\" / %s\"_Atomic\" / %s\"_Bool\" / %s\"_Complex\" / %s\"_Generic\" / %s\"_Imaginary\" / %s\"_Noreturn\" / %s\"_Static_assert\" / %s\"_Thread_local\"")))

    Theorem: cst-identifier-branches-match-alt

    (defthm cst-identifier-branches-match-alt
     (implies
      (cst-matchp abnf::cst "identifier")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "identifier-nondigit / identifier identifier-nondigit / identifier digit")))

    Theorem: cst-identifier-nondigit-branches-match-alt

    (defthm cst-identifier-nondigit-branches-match-alt
     (implies
      (cst-matchp abnf::cst "identifier-nondigit")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "nondigit")))

    Theorem: cst-nondigit-branches-match-alt

    (defthm cst-nondigit-branches-match-alt
     (implies
      (cst-matchp abnf::cst "nondigit")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"_\" / %i\"a\" / %i\"b\" / %i\"c\" / %i\"d\" / %i\"e\" / %i\"f\" / %i\"g\" / %i\"h\" / %i\"i\" / %i\"j\" / %i\"k\" / %i\"l\" / %i\"m\" / %i\"n\" / %i\"o\" / %i\"p\" / %i\"q\" / %i\"r\" / %i\"s\" / %i\"t\" / %i\"u\" / %i\"v\" / %i\"w\" / %i\"x\" / %i\"y\" / %i\"z\"")))

    Theorem: cst-digit-branches-match-alt

    (defthm cst-digit-branches-match-alt
     (implies
      (cst-matchp abnf::cst "digit")
      (cst-list-list-alt-matchp
          (abnf::tree-nonleaf->branches abnf::cst)
          "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\"")))

    Theorem: cst-constant-branches-match-alt

    (defthm cst-constant-branches-match-alt
      (implies (cst-matchp abnf::cst "constant")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "integer-constant / enumeration-constant")))

    Theorem: cst-integer-constant-branches-match-alt

    (defthm cst-integer-constant-branches-match-alt
     (implies
      (cst-matchp abnf::cst "integer-constant")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "decimal-constant [ integer-suffix ] / octal-constant [ integer-suffix ] / hexadecimal-constant [ integer-suffix ]")))

    Theorem: cst-decimal-constant-branches-match-alt

    (defthm cst-decimal-constant-branches-match-alt
      (implies (cst-matchp abnf::cst "decimal-constant")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "nonzero-digit / decimal-constant digit")))

    Theorem: cst-octal-constant-branches-match-alt

    (defthm cst-octal-constant-branches-match-alt
     (implies
      (cst-matchp abnf::cst "octal-constant")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "\"0\" / octal-constant octal-digit")))

    Theorem: cst-hexadecimal-constant-branches-match-alt

    (defthm cst-hexadecimal-constant-branches-match-alt
     (implies
      (cst-matchp abnf::cst "hexadecimal-constant")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "hexadecimal-prefix hexadecimal-digit / hexadecimal-constant hexadecimal-digit")))

    Theorem: cst-hexadecimal-prefix-branches-match-alt

    (defthm cst-hexadecimal-prefix-branches-match-alt
     (implies
      (cst-matchp abnf::cst "hexadecimal-prefix")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%i\"0x\"")))

    Theorem: cst-nonzero-digit-branches-match-alt

    (defthm cst-nonzero-digit-branches-match-alt
      (implies
           (cst-matchp abnf::cst "nonzero-digit")
           (cst-list-list-alt-matchp
                (abnf::tree-nonleaf->branches abnf::cst)
                "\"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\"")))

    Theorem: cst-octal-digit-branches-match-alt

    (defthm cst-octal-digit-branches-match-alt
      (implies (cst-matchp abnf::cst "octal-digit")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\"")))

    Theorem: cst-hexadecimal-digit-branches-match-alt

    (defthm cst-hexadecimal-digit-branches-match-alt
     (implies
      (cst-matchp abnf::cst "hexadecimal-digit")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / %i\"a\" / %i\"b\" / %i\"c\" / %i\"d\" / %i\"e\" / %i\"f\"")))

    Theorem: cst-integer-suffix-branches-match-alt

    (defthm cst-integer-suffix-branches-match-alt
     (implies
      (cst-matchp abnf::cst "integer-suffix")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "unsigned-suffix [ long-suffix ] / unsigned-suffix [ long-long-suffix ] / long-suffix [ unsigned-suffix ] / long-long-suffix [ unsigned-suffix ]")))

    Theorem: cst-unsigned-suffix-branches-match-alt

    (defthm cst-unsigned-suffix-branches-match-alt
     (implies
      (cst-matchp abnf::cst "unsigned-suffix")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%i\"u\"")))

    Theorem: cst-long-suffix-branches-match-alt

    (defthm cst-long-suffix-branches-match-alt
     (implies
      (cst-matchp abnf::cst "long-suffix")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%i\"l\"")))

    Theorem: cst-long-long-suffix-branches-match-alt

    (defthm cst-long-long-suffix-branches-match-alt
     (implies
      (cst-matchp abnf::cst "long-long-suffix")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%s\"ll\" / %s\"LL\"")))

    Theorem: cst-enumeration-constant-branches-match-alt

    (defthm cst-enumeration-constant-branches-match-alt
     (implies
      (cst-matchp abnf::cst "enumeration-constant")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "identifier")))

    Theorem: cst-punctuator-branches-match-alt

    (defthm cst-punctuator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "punctuator")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"[\" / \"]\" / \"(\" / \")\" / \"{\" / \"}\" / \".\" / \"->\" / \"++\" / \"--\" / \"&\" / \"*\" / \"+\" / \"-\" / \"~\" / \"!\" / \"/\" / \"%\" / \"<<\" / \">>\" / \"<\" / \">\" / \"<=\" / \">=\" / \"==\" / \"!=\" / \"^\" / \"|\" / \"&&\" / \"||\" / \"?\" / \":\" / \";\" / \"...\" / \"=\" / \"*=\" / \"/=\" / \"%=\" / \"+=\" / \"-=\" / \"<<=\" / \">>=\" / \"&=\" / \"^=\" / \"|=\" / \",\" / \"#\" / \"##\" / \"<:\" / \":>\" / \"<%\" / \"%>\" / \"%:\" / \"%:%:\"")))

    Theorem: cst-new-line-branches-match-alt

    (defthm cst-new-line-branches-match-alt
     (implies
      (cst-matchp abnf::cst "new-line")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "[ carriage-return ] line-feed")))

    Theorem: cst-comment-branches-match-alt

    (defthm cst-comment-branches-match-alt
     (implies
      (cst-matchp abnf::cst "comment")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "block-comment / line-comment")))

    Theorem: cst-block-comment-branches-match-alt

    (defthm cst-block-comment-branches-match-alt
     (implies
      (cst-matchp abnf::cst "block-comment")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "\"/*\" rest-of-block-comment")))

    Theorem: cst-rest-of-block-comment-branches-match-alt

    (defthm cst-rest-of-block-comment-branches-match-alt
     (implies
      (cst-matchp abnf::cst "rest-of-block-comment")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"*\" rest-of-block-comment-after-star / not-star-or-line-feed-or-carriage-return rest-of-block-comment / new-line rest-of-block-comment")))

    Theorem: cst-rest-of-block-comment-after-star-branches-match-alt

    (defthm cst-rest-of-block-comment-after-star-branches-match-alt
     (implies
      (cst-matchp abnf::cst
                  "rest-of-block-comment-after-star")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"/\" / \"*\" rest-of-block-comment-after-star / not-star-or-slash-or-line-feed-or-carriage-return rest-of-block-comment / new-line rest-of-block-comment")))

    Theorem: cst-line-comment-branches-match-alt

    (defthm cst-line-comment-branches-match-alt
      (implies (cst-matchp abnf::cst "line-comment")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "\"//\" *not-line-feed-or-carriage-return")))

    Theorem: cst-white-space-branches-match-alt

    (defthm cst-white-space-branches-match-alt
     (implies
      (cst-matchp abnf::cst "white-space")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "space / horizontal-tab / vertical-tab / form-feed / new-line")))

    Theorem: cst-lexeme-branches-match-alt

    (defthm cst-lexeme-branches-match-alt
     (implies
      (cst-matchp abnf::cst "lexeme")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "token / comment / white-space")))

    Theorem: cst-primary-expression-branches-match-alt

    (defthm cst-primary-expression-branches-match-alt
      (implies (cst-matchp abnf::cst "primary-expression")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "identifier / constant \"(\" expression \")\"")))

    Theorem: cst-postfix-expression-branches-match-alt

    (defthm cst-postfix-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "postfix-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "primary-expression / postfix-expression \"[\" expression \"]\" / identifier \"(\" [ argument-expression-list ] \")\" / postfix-expression \".\" identifier / postfix-expression \"->\" identifier / postfix-expression \"++\" / postfix-expression \"--\"")))

    Theorem: cst-argument-expression-list-branches-match-alt

    (defthm cst-argument-expression-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "argument-expression-list")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "assignment-expression / argument-expression-list \",\" assignment-expression")))

    Theorem: cst-unary-expression-branches-match-alt

    (defthm cst-unary-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "unary-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "postfix-expression / \"++\" unary-expression / \"--\" unary-expression / unary-operator cast-expression")))

    Theorem: cst-unary-operator-branches-match-alt

    (defthm cst-unary-operator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "unary-operator")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "\"&\" / \"*\" / \"+\" / \"-\" / \"~\" / \"!\"")))

    Theorem: cst-cast-expression-branches-match-alt

    (defthm cst-cast-expression-branches-match-alt
     (implies
          (cst-matchp abnf::cst "cast-expression")
          (cst-list-list-alt-matchp
               (abnf::tree-nonleaf->branches abnf::cst)
               "unary-expression / \"(\" type-name \")\" cast-expression")))

    Theorem: cst-multiplicative-expression-branches-match-alt

    (defthm cst-multiplicative-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "multiplicative-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "cast-expression / multiplicative-expression \"*\" cast-expression / multiplicative-expression \"/\" cast-expression / multiplicative-expression \"%\" cast-expression")))

    Theorem: cst-additive-expression-branches-match-alt

    (defthm cst-additive-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "additive-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "multiplicative-expression / additive-expression \"+\" multiplicative-expression / additive-expression \"-\" multiplicative-expression")))

    Theorem: cst-shift-expression-branches-match-alt

    (defthm cst-shift-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "shift-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "additive-expression / shift-expression \"<<\" additive-expression / shift-expression \">>\" additive-expression")))

    Theorem: cst-relational-expression-branches-match-alt

    (defthm cst-relational-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "relational-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "shift-expression / relational-expression \"<\" shift-expression / relational-expression \">\" shift-expression / relational-expression \"<=\" shift-expression / relational-expression \"<=\" shift-expression")))

    Theorem: cst-equality-expression-branches-match-alt

    (defthm cst-equality-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "equality-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "relational-expression / equality-expression \"==\" relational-expression / equality-expression \"!=\" relational-expression")))

    Theorem: cst-and-expression-branches-match-alt

    (defthm cst-and-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "and-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "equality-expression / and-expression \"&\" equality-expression")))

    Theorem: cst-exclusive-or-expression-branches-match-alt

    (defthm cst-exclusive-or-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "exclusive-or-expression")
      (cst-list-list-alt-matchp
        (abnf::tree-nonleaf->branches abnf::cst)
        "and-expression / exclusive-or-expression \"^\" and-expression")))

    Theorem: cst-inclusive-or-expression-branches-match-alt

    (defthm cst-inclusive-or-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "inclusive-or-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "exclusive-or-expression / inclusive-or-expression \"|\" exclusive-or-expression")))

    Theorem: cst-logical-and-expression-branches-match-alt

    (defthm cst-logical-and-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "logical-and-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "inclusive-or-expression / logical-and-expression \"&&\" inclusive-or-expression")))

    Theorem: cst-logical-or-expression-branches-match-alt

    (defthm cst-logical-or-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "logical-or-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "logical-and-expression / logical-or-expression \"||\" logical-and-expression")))

    Theorem: cst-conditional-expression-branches-match-alt

    (defthm cst-conditional-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "conditional-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "logical-or-expression / logical-or-expression \"?\" expression \":\" conditional-expression")))

    Theorem: cst-assignment-expression-branches-match-alt

    (defthm cst-assignment-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "assignment-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "conditional-expression / unary-expression assignment-operator assignment-expression")))

    Theorem: cst-assignment-operator-branches-match-alt

    (defthm cst-assignment-operator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "assignment-operator")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"=\" / \"*=\" / \"/=\" / \"%=\" / \"+=\" / \"-=\" / \"<<=\" / \">>=\" / \"&=\" / \"^=\" / \"|=\"")))

    Theorem: cst-expression-branches-match-alt

    (defthm cst-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "expression")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "assignment-expression")))

    Theorem: cst-constant-expression-branches-match-alt

    (defthm cst-constant-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "constant-expression")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "conditional-expression")))

    Theorem: cst-declaration-branches-match-alt

    (defthm cst-declaration-branches-match-alt
      (implies
           (cst-matchp abnf::cst "declaration")
           (cst-list-list-alt-matchp
                (abnf::tree-nonleaf->branches abnf::cst)
                "declaration-specifiers [ init-declarator-list ] \";\"")))

    Theorem: cst-declaration-specifiers-branches-match-alt

    (defthm cst-declaration-specifiers-branches-match-alt
     (implies
      (cst-matchp abnf::cst "declaration-specifiers")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "storage-class-specifier [ declaration-specifiers ] / type-specifier [ declaration-specifiers ]")))

    Theorem: cst-init-declarator-list-branches-match-alt

    (defthm cst-init-declarator-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "init-declarator-list")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "init-declarator")))

    Theorem: cst-init-declarator-branches-match-alt

    (defthm cst-init-declarator-branches-match-alt
      (implies (cst-matchp abnf::cst "init-declarator")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "declarator / declarator \"=\" initializer")))

    Theorem: cst-storage-class-specifier-branches-match-alt

    (defthm cst-storage-class-specifier-branches-match-alt
     (implies
      (cst-matchp abnf::cst "storage-class-specifier")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%s\"extern\"")))

    Theorem: cst-type-specifier-branches-match-alt

    (defthm cst-type-specifier-branches-match-alt
     (implies
      (cst-matchp abnf::cst "type-specifier")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "%s\"void\" / %s\"char\" / %s\"short\" / %s\"int\" / %s\"long\" / %s\"float\" / %s\"double\" / %s\"signed\" / %s\"unsigned\" / %s\"_Bool\" / struct-or-union-specifier / enum-specifier / typedef-name")))

    Theorem: cst-struct-or-union-specifier-branches-match-alt

    (defthm cst-struct-or-union-specifier-branches-match-alt
     (implies
      (cst-matchp abnf::cst "struct-or-union-specifier")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "struct-or-union [ identifier ] \"{\" struct-declaration-list \"}\" / struct-or-union identifier")))

    Theorem: cst-struct-or-union-branches-match-alt

    (defthm cst-struct-or-union-branches-match-alt
     (implies
      (cst-matchp abnf::cst "struct-or-union")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%s\"struct\" / %s\"union\"")))

    Theorem: cst-struct-declaration-list-branches-match-alt

    (defthm cst-struct-declaration-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "struct-declaration-list")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "struct-declaration / struct-declaration-list struct-declaration")))

    Theorem: cst-struct-declaration-branches-match-alt

    (defthm cst-struct-declaration-branches-match-alt
      (implies
           (cst-matchp abnf::cst "struct-declaration")
           (cst-list-list-alt-matchp
                (abnf::tree-nonleaf->branches abnf::cst)
                "specifier-qualifier-list struct-declarator-list \";\"")))

    Theorem: cst-specifier-qualifier-list-branches-match-alt

    (defthm cst-specifier-qualifier-list-branches-match-alt
      (implies (cst-matchp abnf::cst "specifier-qualifier-list")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "type-specifier [ specifier-qualifier-list ]")))

    Theorem: cst-struct-declarator-list-branches-match-alt

    (defthm cst-struct-declarator-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "struct-declarator-list")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "struct-declarator")))

    Theorem: cst-struct-declarator-branches-match-alt

    (defthm cst-struct-declarator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "struct-declarator")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "declarator")))

    Theorem: cst-enum-specifier-branches-match-alt

    (defthm cst-enum-specifier-branches-match-alt
     (implies
      (cst-matchp abnf::cst "enum-specifier")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%s\"enum\" identifier")))

    Theorem: cst-declarator-branches-match-alt

    (defthm cst-declarator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "declarator")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "[ pointer ] direct-declarator")))

    Theorem: cst-direct-declarator-branches-match-alt

    (defthm cst-direct-declarator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "direct-declarator")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "identifier / \"(\" declarator \")\" / direct-declarator \"[\" [ integer-constant ] \"]\" / direct-declarator \"(\" parameter-type-list \")\" / direct-declarator \"(\" %s\"void\" \")\" / direct-declarator \"(\" \")\"")))

    Theorem: cst-pointer-branches-match-alt

    (defthm cst-pointer-branches-match-alt
     (implies
      (cst-matchp abnf::cst "pointer")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "\"*\" / \"*\" pointer")))

    Theorem: cst-parameter-type-list-branches-match-alt

    (defthm cst-parameter-type-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "parameter-type-list")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "parameter-list")))

    Theorem: cst-parameter-list-branches-match-alt

    (defthm cst-parameter-list-branches-match-alt
     (implies
      (cst-matchp abnf::cst "parameter-list")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "parameter-declaration / parameter-list \",\" parameter-declaration")))

    Theorem: cst-parameter-declaration-branches-match-alt

    (defthm cst-parameter-declaration-branches-match-alt
     (implies
      (cst-matchp abnf::cst "parameter-declaration")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "declaration-specifiers declarator")))

    Theorem: cst-type-name-branches-match-alt

    (defthm cst-type-name-branches-match-alt
     (implies (cst-matchp abnf::cst "type-name")
              (cst-list-list-alt-matchp
                   (abnf::tree-nonleaf->branches abnf::cst)
                   "specifier-qualifier-list [ abstract-declarator ]")))

    Theorem: cst-abstract-declarator-branches-match-alt

    (defthm cst-abstract-declarator-branches-match-alt
     (implies (cst-matchp abnf::cst "abstract-declarator")
              (cst-list-list-alt-matchp
                   (abnf::tree-nonleaf->branches abnf::cst)
                   "pointer / [ pointer ] direct-abstract-declarator")))

    Theorem: cst-direct-abstract-declarator-branches-match-alt

    (defthm cst-direct-abstract-declarator-branches-match-alt
     (implies
      (cst-matchp abnf::cst "direct-abstract-declarator")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "\"(\" abstract-declarator \")\" / [ direct-abstract-declarator ] \"[\" [ integer-constant ] \"]\"")))

    Theorem: cst-typedef-name-branches-match-alt

    (defthm cst-typedef-name-branches-match-alt
     (implies
      (cst-matchp abnf::cst "typedef-name")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "identifier")))

    Theorem: cst-initializer-branches-match-alt

    (defthm cst-initializer-branches-match-alt
     (implies
      (cst-matchp abnf::cst "initializer")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "assignment-expression / \"{\" initializer-list \"}\" / \"{\" initializer-list \",\" \"}\"")))

    Theorem: cst-initializer-list-branches-match-alt

    (defthm cst-initializer-list-branches-match-alt
      (implies (cst-matchp abnf::cst "initializer-list")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "initializer / initializer-list \",\" initializer")))

    Theorem: cst-statement-branches-match-alt

    (defthm cst-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "statement")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "labeled-statement / compound-statement / expression-statement / selection-statement / iteration-statement / jump-statement")))

    Theorem: cst-labeled-statement-branches-match-alt

    (defthm cst-labeled-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "labeled-statement")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "identifier \":\" statement / %s\"case\" constant-expression \":\" statement / %s\"default\" \":\" statement")))

    Theorem: cst-compound-statement-branches-match-alt

    (defthm cst-compound-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "compound-statement")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "\"{\" [ block-item-list ] \"}\"")))

    Theorem: cst-block-item-list-branches-match-alt

    (defthm cst-block-item-list-branches-match-alt
      (implies (cst-matchp abnf::cst "block-item-list")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "block-item / block-item-list block-item")))

    Theorem: cst-block-item-branches-match-alt

    (defthm cst-block-item-branches-match-alt
     (implies
      (cst-matchp abnf::cst "block-item")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "declaration / statement")))

    Theorem: cst-expression-statement-branches-match-alt

    (defthm cst-expression-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "expression-statement")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "[ expression ] \";\"")))

    Theorem: cst-selection-statement-branches-match-alt

    (defthm cst-selection-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "selection-statement")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "%s\"if\" \"(\" expression \")\" statement / %s\"if\" \"(\" expression \")\" statement %s\"else\" statement / %s\"switch\" \"(\" expression \")\" statement")))

    Theorem: cst-iteration-statement-branches-match-alt

    (defthm cst-iteration-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "iteration-statement")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "%s\"while\" \"(\" expression \")\" statement / %s\"do\" statement %s\"while\" \"(\" expression \")\" \";\" / %s\"for\" \"(\" [ expression ] \";\" [ expression ] \";\" [ expression ] \")\" statement")))

    Theorem: cst-jump-statement-branches-match-alt

    (defthm cst-jump-statement-branches-match-alt
     (implies
      (cst-matchp abnf::cst "jump-statement")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "%s\"goto\" identifier \";\" / %s\"continue\" \";\" / %s\"break\" \";\" / %s\"return\" [ expression ] \";\"")))

    Theorem: cst-translation-unit-branches-match-alt

    (defthm cst-translation-unit-branches-match-alt
     (implies
      (cst-matchp abnf::cst "translation-unit")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "external-declaration / translation-unit external-declaration")))

    Theorem: cst-external-declaration-branches-match-alt

    (defthm cst-external-declaration-branches-match-alt
     (implies
      (cst-matchp abnf::cst "external-declaration")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "function-definition / declaration")))

    Theorem: cst-function-definition-branches-match-alt

    (defthm cst-function-definition-branches-match-alt
     (implies
          (cst-matchp abnf::cst "function-definition")
          (cst-list-list-alt-matchp
               (abnf::tree-nonleaf->branches abnf::cst)
               "declaration-specifiers declarator compound-statement")))

    Theorem: cst-declaration-list-branches-match-alt

    (defthm cst-declaration-list-branches-match-alt
      (implies (cst-matchp abnf::cst "declaration-list")
               (cst-list-list-alt-matchp
                    (abnf::tree-nonleaf->branches abnf::cst)
                    "declaration / declaration-list declaration")))

    Theorem: cst-horizontal-tab-concs

    (defthm cst-horizontal-tab-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x9")
               (or (cst-list-list-conc-matchp abnf::cstss "%x9"))))

    Theorem: cst-line-feed-concs

    (defthm cst-line-feed-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%xA")
               (or (cst-list-list-conc-matchp abnf::cstss "%xA"))))

    Theorem: cst-vertical-tab-concs

    (defthm cst-vertical-tab-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%xB")
               (or (cst-list-list-conc-matchp abnf::cstss "%xB"))))

    Theorem: cst-form-feed-concs

    (defthm cst-form-feed-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%xC")
               (or (cst-list-list-conc-matchp abnf::cstss "%xC"))))

    Theorem: cst-carriage-return-concs

    (defthm cst-carriage-return-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%xD")
               (or (cst-list-list-conc-matchp abnf::cstss "%xD"))))

    Theorem: cst-space-concs

    (defthm cst-space-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x20")
               (or (cst-list-list-conc-matchp abnf::cstss "%x20"))))

    Theorem: cst-double-quote-concs

    (defthm cst-double-quote-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x22")
               (or (cst-list-list-conc-matchp abnf::cstss "%x22"))))

    Theorem: cst-not-line-feed-or-carriage-return-concs

    (defthm cst-not-line-feed-or-carriage-return-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss "%x0-9 / %xB-C / %xE-7F")
         (or (cst-list-list-conc-matchp abnf::cstss "%x0-9")
             (cst-list-list-conc-matchp abnf::cstss "%xB-C")
             (cst-list-list-conc-matchp abnf::cstss "%xE-7F"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-concs

    (defthm cst-not-star-or-line-feed-or-carriage-return-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss
                                     "%x0-9 / %xB-C / %xE-29 / %x2B-7F")
           (or (cst-list-list-conc-matchp abnf::cstss "%x0-9")
               (cst-list-list-conc-matchp abnf::cstss "%xB-C")
               (cst-list-list-conc-matchp abnf::cstss "%xE-29")
               (cst-list-list-conc-matchp abnf::cstss "%x2B-7F"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-concs

    (defthm cst-not-star-or-slash-or-line-feed-or-carriage-return-concs
      (implies (cst-list-list-alt-matchp
                    abnf::cstss
                    "%x0-9 / %xB-C / %xE-29 / %x2B-2E / %x30-7F")
               (or (cst-list-list-conc-matchp abnf::cstss "%x0-9")
                   (cst-list-list-conc-matchp abnf::cstss "%xB-C")
                   (cst-list-list-conc-matchp abnf::cstss "%xE-29")
                   (cst-list-list-conc-matchp abnf::cstss "%x2B-2E")
                   (cst-list-list-conc-matchp abnf::cstss "%x30-7F"))))

    Theorem: cst-character-concs

    (defthm cst-character-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x0-7F")
               (or (cst-list-list-conc-matchp abnf::cstss "%x0-7F"))))

    Theorem: cst-token-concs

    (defthm cst-token-concs
      (implies
           (cst-list-list-alt-matchp
                abnf::cstss
                "keyword / identifier / constant / punctuator")
           (or (cst-list-list-conc-matchp abnf::cstss "keyword")
               (cst-list-list-conc-matchp abnf::cstss "identifier")
               (cst-list-list-conc-matchp abnf::cstss "constant")
               (cst-list-list-conc-matchp abnf::cstss "punctuator"))))

    Theorem: cst-keyword-concs

    (defthm cst-keyword-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "%s\"auto\" / %s\"break\" / %s\"case\" / %s\"char\" / %s\"const\" / %s\"continue\" / %s\"default\" / %s\"do\" / %s\"double\" / %s\"else\" / %s\"enum\" / %s\"extern\" / %s\"float\" / %s\"for\" / %s\"goto\" / %s\"if\" / %s\"inline\" / %s\"int\" / %s\"long\" / %s\"register\" / %s\"restrict\" / %s\"return\" / %s\"short\" / %s\"signed\" / %s\"sizeof\" / %s\"static\" / %s\"struct\" / %s\"switch\" / %s\"typedef\" / %s\"union\" / %s\"unsigned\" / %s\"void\" / %s\"volatile\" / %s\"while\" / %s\"_Alignas\" / %s\"_Alignof\" / %s\"_Atomic\" / %s\"_Bool\" / %s\"_Complex\" / %s\"_Generic\" / %s\"_Imaginary\" / %s\"_Noreturn\" / %s\"_Static_assert\" / %s\"_Thread_local\"")
      (or (cst-list-list-conc-matchp abnf::cstss "%s\"auto\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"break\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"case\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"char\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"const\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"continue\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"default\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"do\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"double\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"else\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"enum\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"extern\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"float\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"for\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"goto\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"if\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"inline\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"int\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"long\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"register\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"restrict\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"return\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"short\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"signed\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"sizeof\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"static\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"struct\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"switch\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"typedef\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"union\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"unsigned\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"void\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"volatile\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"while\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Alignas\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Alignof\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Atomic\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Bool\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Complex\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Generic\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Imaginary\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Noreturn\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Static_assert\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Thread_local\""))))

    Theorem: cst-identifier-concs

    (defthm cst-identifier-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "identifier-nondigit / identifier identifier-nondigit / identifier digit")
      (or (cst-list-list-conc-matchp abnf::cstss "identifier-nondigit")
          (cst-list-list-conc-matchp abnf::cstss
                                     "identifier identifier-nondigit")
          (cst-list-list-conc-matchp abnf::cstss "identifier digit"))))

    Theorem: cst-identifier-nondigit-concs

    (defthm cst-identifier-nondigit-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "nondigit")
               (or (cst-list-list-conc-matchp abnf::cstss "nondigit"))))

    Theorem: cst-nondigit-concs

    (defthm cst-nondigit-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"_\" / %i\"a\" / %i\"b\" / %i\"c\" / %i\"d\" / %i\"e\" / %i\"f\" / %i\"g\" / %i\"h\" / %i\"i\" / %i\"j\" / %i\"k\" / %i\"l\" / %i\"m\" / %i\"n\" / %i\"o\" / %i\"p\" / %i\"q\" / %i\"r\" / %i\"s\" / %i\"t\" / %i\"u\" / %i\"v\" / %i\"w\" / %i\"x\" / %i\"y\" / %i\"z\"")
      (or (cst-list-list-conc-matchp abnf::cstss "\"_\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"a\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"b\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"c\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"d\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"e\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"f\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"g\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"h\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"i\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"j\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"k\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"l\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"m\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"n\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"o\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"p\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"q\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"r\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"s\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"t\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"u\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"v\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"w\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"x\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"y\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"z\""))))

    Theorem: cst-digit-concs

    (defthm cst-digit-concs
     (implies
       (cst-list-list-alt-matchp
            abnf::cstss
            "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\"")
       (or (cst-list-list-conc-matchp abnf::cstss "\"0\"")
           (cst-list-list-conc-matchp abnf::cstss "\"1\"")
           (cst-list-list-conc-matchp abnf::cstss "\"2\"")
           (cst-list-list-conc-matchp abnf::cstss "\"3\"")
           (cst-list-list-conc-matchp abnf::cstss "\"4\"")
           (cst-list-list-conc-matchp abnf::cstss "\"5\"")
           (cst-list-list-conc-matchp abnf::cstss "\"6\"")
           (cst-list-list-conc-matchp abnf::cstss "\"7\"")
           (cst-list-list-conc-matchp abnf::cstss "\"8\"")
           (cst-list-list-conc-matchp abnf::cstss "\"9\""))))

    Theorem: cst-constant-concs

    (defthm cst-constant-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "integer-constant / enumeration-constant")
      (or
       (cst-list-list-conc-matchp abnf::cstss "integer-constant")
       (cst-list-list-conc-matchp abnf::cstss "enumeration-constant"))))

    Theorem: cst-integer-constant-concs

    (defthm cst-integer-constant-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "decimal-constant [ integer-suffix ] / octal-constant [ integer-suffix ] / hexadecimal-constant [ integer-suffix ]")
      (or
       (cst-list-list-conc-matchp abnf::cstss
                                  "decimal-constant [ integer-suffix ]")
       (cst-list-list-conc-matchp abnf::cstss
                                  "octal-constant [ integer-suffix ]")
       (cst-list-list-conc-matchp
            abnf::cstss
            "hexadecimal-constant [ integer-suffix ]"))))

    Theorem: cst-decimal-constant-concs

    (defthm cst-decimal-constant-concs
      (implies
           (cst-list-list-alt-matchp
                abnf::cstss
                "nonzero-digit / decimal-constant digit")
           (or (cst-list-list-conc-matchp abnf::cstss "nonzero-digit")
               (cst-list-list-conc-matchp
                    abnf::cstss "decimal-constant digit"))))

    Theorem: cst-octal-constant-concs

    (defthm cst-octal-constant-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss
                                   "\"0\" / octal-constant octal-digit")
         (or (cst-list-list-conc-matchp abnf::cstss "\"0\"")
             (cst-list-list-conc-matchp abnf::cstss
                                        "octal-constant octal-digit"))))

    Theorem: cst-hexadecimal-constant-concs

    (defthm cst-hexadecimal-constant-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "hexadecimal-prefix hexadecimal-digit / hexadecimal-constant hexadecimal-digit")
      (or (cst-list-list-conc-matchp
               abnf::cstss
               "hexadecimal-prefix hexadecimal-digit")
          (cst-list-list-conc-matchp
               abnf::cstss
               "hexadecimal-constant hexadecimal-digit"))))

    Theorem: cst-hexadecimal-prefix-concs

    (defthm cst-hexadecimal-prefix-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%i\"0x\"")
               (or (cst-list-list-conc-matchp abnf::cstss "%i\"0x\""))))

    Theorem: cst-nonzero-digit-concs

    (defthm cst-nonzero-digit-concs
      (implies
           (cst-list-list-alt-matchp
                abnf::cstss
                "\"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\"")
           (or (cst-list-list-conc-matchp abnf::cstss "\"1\"")
               (cst-list-list-conc-matchp abnf::cstss "\"2\"")
               (cst-list-list-conc-matchp abnf::cstss "\"3\"")
               (cst-list-list-conc-matchp abnf::cstss "\"4\"")
               (cst-list-list-conc-matchp abnf::cstss "\"5\"")
               (cst-list-list-conc-matchp abnf::cstss "\"6\"")
               (cst-list-list-conc-matchp abnf::cstss "\"7\"")
               (cst-list-list-conc-matchp abnf::cstss "\"8\"")
               (cst-list-list-conc-matchp abnf::cstss "\"9\""))))

    Theorem: cst-octal-digit-concs

    (defthm cst-octal-digit-concs
      (implies (cst-list-list-alt-matchp
                    abnf::cstss
                    "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\"")
               (or (cst-list-list-conc-matchp abnf::cstss "\"0\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"1\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"2\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"3\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"4\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"5\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"6\"")
                   (cst-list-list-conc-matchp abnf::cstss "\"7\""))))

    Theorem: cst-hexadecimal-digit-concs

    (defthm cst-hexadecimal-digit-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / %i\"a\" / %i\"b\" / %i\"c\" / %i\"d\" / %i\"e\" / %i\"f\"")
      (or (cst-list-list-conc-matchp abnf::cstss "\"0\"")
          (cst-list-list-conc-matchp abnf::cstss "\"1\"")
          (cst-list-list-conc-matchp abnf::cstss "\"2\"")
          (cst-list-list-conc-matchp abnf::cstss "\"3\"")
          (cst-list-list-conc-matchp abnf::cstss "\"4\"")
          (cst-list-list-conc-matchp abnf::cstss "\"5\"")
          (cst-list-list-conc-matchp abnf::cstss "\"6\"")
          (cst-list-list-conc-matchp abnf::cstss "\"7\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"a\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"b\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"c\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"d\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"e\"")
          (cst-list-list-conc-matchp abnf::cstss "%i\"f\""))))

    Theorem: cst-integer-suffix-concs

    (defthm cst-integer-suffix-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "unsigned-suffix [ long-suffix ] / unsigned-suffix [ long-long-suffix ] / long-suffix [ unsigned-suffix ] / long-long-suffix [ unsigned-suffix ]")
      (or (cst-list-list-conc-matchp abnf::cstss
                                     "unsigned-suffix [ long-suffix ]")
          (cst-list-list-conc-matchp
               abnf::cstss
               "unsigned-suffix [ long-long-suffix ]")
          (cst-list-list-conc-matchp abnf::cstss
                                     "long-suffix [ unsigned-suffix ]")
          (cst-list-list-conc-matchp
               abnf::cstss
               "long-long-suffix [ unsigned-suffix ]"))))

    Theorem: cst-unsigned-suffix-concs

    (defthm cst-unsigned-suffix-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%i\"u\"")
               (or (cst-list-list-conc-matchp abnf::cstss "%i\"u\""))))

    Theorem: cst-long-suffix-concs

    (defthm cst-long-suffix-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%i\"l\"")
               (or (cst-list-list-conc-matchp abnf::cstss "%i\"l\""))))

    Theorem: cst-long-long-suffix-concs

    (defthm cst-long-long-suffix-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%s\"ll\" / %s\"LL\"")
               (or (cst-list-list-conc-matchp abnf::cstss "%s\"ll\"")
                   (cst-list-list-conc-matchp abnf::cstss "%s\"LL\""))))

    Theorem: cst-enumeration-constant-concs

    (defthm cst-enumeration-constant-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss "identifier")
           (or (cst-list-list-conc-matchp abnf::cstss "identifier"))))

    Theorem: cst-punctuator-concs

    (defthm cst-punctuator-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"[\" / \"]\" / \"(\" / \")\" / \"{\" / \"}\" / \".\" / \"->\" / \"++\" / \"--\" / \"&\" / \"*\" / \"+\" / \"-\" / \"~\" / \"!\" / \"/\" / \"%\" / \"<<\" / \">>\" / \"<\" / \">\" / \"<=\" / \">=\" / \"==\" / \"!=\" / \"^\" / \"|\" / \"&&\" / \"||\" / \"?\" / \":\" / \";\" / \"...\" / \"=\" / \"*=\" / \"/=\" / \"%=\" / \"+=\" / \"-=\" / \"<<=\" / \">>=\" / \"&=\" / \"^=\" / \"|=\" / \",\" / \"#\" / \"##\" / \"<:\" / \":>\" / \"<%\" / \"%>\" / \"%:\" / \"%:%:\"")
      (or (cst-list-list-conc-matchp abnf::cstss "\"[\"")
          (cst-list-list-conc-matchp abnf::cstss "\"]\"")
          (cst-list-list-conc-matchp abnf::cstss "\"(\"")
          (cst-list-list-conc-matchp abnf::cstss "\")\"")
          (cst-list-list-conc-matchp abnf::cstss "\"{\"")
          (cst-list-list-conc-matchp abnf::cstss "\"}\"")
          (cst-list-list-conc-matchp abnf::cstss "\".\"")
          (cst-list-list-conc-matchp abnf::cstss "\"->\"")
          (cst-list-list-conc-matchp abnf::cstss "\"++\"")
          (cst-list-list-conc-matchp abnf::cstss "\"--\"")
          (cst-list-list-conc-matchp abnf::cstss "\"&\"")
          (cst-list-list-conc-matchp abnf::cstss "\"*\"")
          (cst-list-list-conc-matchp abnf::cstss "\"+\"")
          (cst-list-list-conc-matchp abnf::cstss "\"-\"")
          (cst-list-list-conc-matchp abnf::cstss "\"~\"")
          (cst-list-list-conc-matchp abnf::cstss "\"!\"")
          (cst-list-list-conc-matchp abnf::cstss "\"/\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<<\"")
          (cst-list-list-conc-matchp abnf::cstss "\">>\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<\"")
          (cst-list-list-conc-matchp abnf::cstss "\">\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<=\"")
          (cst-list-list-conc-matchp abnf::cstss "\">=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"==\"")
          (cst-list-list-conc-matchp abnf::cstss "\"!=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"^\"")
          (cst-list-list-conc-matchp abnf::cstss "\"|\"")
          (cst-list-list-conc-matchp abnf::cstss "\"&&\"")
          (cst-list-list-conc-matchp abnf::cstss "\"||\"")
          (cst-list-list-conc-matchp abnf::cstss "\"?\"")
          (cst-list-list-conc-matchp abnf::cstss "\":\"")
          (cst-list-list-conc-matchp abnf::cstss "\";\"")
          (cst-list-list-conc-matchp abnf::cstss "\"...\"")
          (cst-list-list-conc-matchp abnf::cstss "\"=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"*=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"/=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"+=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"-=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<<=\"")
          (cst-list-list-conc-matchp abnf::cstss "\">>=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"&=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"^=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"|=\"")
          (cst-list-list-conc-matchp abnf::cstss "\",\"")
          (cst-list-list-conc-matchp abnf::cstss "\"#\"")
          (cst-list-list-conc-matchp abnf::cstss "\"##\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<:\"")
          (cst-list-list-conc-matchp abnf::cstss "\":>\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<%\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%>\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%:\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%:%:\""))))

    Theorem: cst-new-line-concs

    (defthm cst-new-line-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss
                                "[ carriage-return ] line-feed")
      (or (cst-list-list-conc-matchp abnf::cstss
                                     "[ carriage-return ] line-feed"))))

    Theorem: cst-comment-concs

    (defthm cst-comment-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss
                                     "block-comment / line-comment")
           (or (cst-list-list-conc-matchp abnf::cstss "block-comment")
               (cst-list-list-conc-matchp abnf::cstss "line-comment"))))

    Theorem: cst-block-comment-concs

    (defthm cst-block-comment-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss
                                   "\"/*\" rest-of-block-comment")
         (or (cst-list-list-conc-matchp abnf::cstss
                                        "\"/*\" rest-of-block-comment"))))

    Theorem: cst-rest-of-block-comment-concs

    (defthm cst-rest-of-block-comment-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"*\" rest-of-block-comment-after-star / not-star-or-line-feed-or-carriage-return rest-of-block-comment / new-line rest-of-block-comment")
      (or
       (cst-list-list-conc-matchp
            abnf::cstss
            "\"*\" rest-of-block-comment-after-star")
       (cst-list-list-conc-matchp
        abnf::cstss
        "not-star-or-line-feed-or-carriage-return rest-of-block-comment")
       (cst-list-list-conc-matchp abnf::cstss
                                  "new-line rest-of-block-comment"))))

    Theorem: cst-rest-of-block-comment-after-star-concs

    (defthm cst-rest-of-block-comment-after-star-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"/\" / \"*\" rest-of-block-comment-after-star / not-star-or-slash-or-line-feed-or-carriage-return rest-of-block-comment / new-line rest-of-block-comment")
      (or
       (cst-list-list-conc-matchp abnf::cstss "\"/\"")
       (cst-list-list-conc-matchp
            abnf::cstss
            "\"*\" rest-of-block-comment-after-star")
       (cst-list-list-conc-matchp
        abnf::cstss
        "not-star-or-slash-or-line-feed-or-carriage-return rest-of-block-comment")
       (cst-list-list-conc-matchp abnf::cstss
                                  "new-line rest-of-block-comment"))))

    Theorem: cst-line-comment-concs

    (defthm cst-line-comment-concs
      (implies (cst-list-list-alt-matchp
                    abnf::cstss
                    "\"//\" *not-line-feed-or-carriage-return")
               (or (cst-list-list-conc-matchp
                        abnf::cstss
                        "\"//\" *not-line-feed-or-carriage-return"))))

    Theorem: cst-white-space-concs

    (defthm cst-white-space-concs
     (implies
      (cst-list-list-alt-matchp
         abnf::cstss
         "space / horizontal-tab / vertical-tab / form-feed / new-line")
      (or (cst-list-list-conc-matchp abnf::cstss "space")
          (cst-list-list-conc-matchp abnf::cstss "horizontal-tab")
          (cst-list-list-conc-matchp abnf::cstss "vertical-tab")
          (cst-list-list-conc-matchp abnf::cstss "form-feed")
          (cst-list-list-conc-matchp abnf::cstss "new-line"))))

    Theorem: cst-lexeme-concs

    (defthm cst-lexeme-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss
                                     "token / comment / white-space")
           (or (cst-list-list-conc-matchp abnf::cstss "token")
               (cst-list-list-conc-matchp abnf::cstss "comment")
               (cst-list-list-conc-matchp abnf::cstss "white-space"))))

    Theorem: cst-primary-expression-concs

    (defthm cst-primary-expression-concs
     (implies
        (cst-list-list-alt-matchp
             abnf::cstss
             "identifier / constant \"(\" expression \")\"")
        (or (cst-list-list-conc-matchp abnf::cstss "identifier")
            (cst-list-list-conc-matchp abnf::cstss
                                       "constant \"(\" expression \")\""))))

    Theorem: cst-postfix-expression-concs

    (defthm cst-postfix-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "primary-expression / postfix-expression \"[\" expression \"]\" / identifier \"(\" [ argument-expression-list ] \")\" / postfix-expression \".\" identifier / postfix-expression \"->\" identifier / postfix-expression \"++\" / postfix-expression \"--\"")
      (or
       (cst-list-list-conc-matchp abnf::cstss "primary-expression")
       (cst-list-list-conc-matchp
            abnf::cstss
            "postfix-expression \"[\" expression \"]\"")
       (cst-list-list-conc-matchp
            abnf::cstss
            "identifier \"(\" [ argument-expression-list ] \")\"")
       (cst-list-list-conc-matchp abnf::cstss
                                  "postfix-expression \".\" identifier")
       (cst-list-list-conc-matchp abnf::cstss
                                  "postfix-expression \"->\" identifier")
       (cst-list-list-conc-matchp abnf::cstss "postfix-expression \"++\"")
       (cst-list-list-conc-matchp abnf::cstss
                                  "postfix-expression \"--\""))))

    Theorem: cst-argument-expression-list-concs

    (defthm cst-argument-expression-list-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "assignment-expression / argument-expression-list \",\" assignment-expression")
      (or
         (cst-list-list-conc-matchp abnf::cstss "assignment-expression")
         (cst-list-list-conc-matchp
              abnf::cstss
              "argument-expression-list \",\" assignment-expression"))))

    Theorem: cst-unary-expression-concs

    (defthm cst-unary-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "postfix-expression / \"++\" unary-expression / \"--\" unary-expression / unary-operator cast-expression")
      (or
         (cst-list-list-conc-matchp abnf::cstss "postfix-expression")
         (cst-list-list-conc-matchp abnf::cstss "\"++\" unary-expression")
         (cst-list-list-conc-matchp abnf::cstss "\"--\" unary-expression")
         (cst-list-list-conc-matchp abnf::cstss
                                    "unary-operator cast-expression"))))

    Theorem: cst-unary-operator-concs

    (defthm cst-unary-operator-concs
     (implies
          (cst-list-list-alt-matchp abnf::cstss
                                    "\"&\" / \"*\" / \"+\" / \"-\" / \"~\" / \"!\"")
          (or (cst-list-list-conc-matchp abnf::cstss "\"&\"")
              (cst-list-list-conc-matchp abnf::cstss "\"*\"")
              (cst-list-list-conc-matchp abnf::cstss "\"+\"")
              (cst-list-list-conc-matchp abnf::cstss "\"-\"")
              (cst-list-list-conc-matchp abnf::cstss "\"~\"")
              (cst-list-list-conc-matchp abnf::cstss "\"!\""))))

    Theorem: cst-cast-expression-concs

    (defthm cst-cast-expression-concs
     (implies
          (cst-list-list-alt-matchp
               abnf::cstss
               "unary-expression / \"(\" type-name \")\" cast-expression")
          (or (cst-list-list-conc-matchp abnf::cstss "unary-expression")
              (cst-list-list-conc-matchp
                   abnf::cstss
                   "\"(\" type-name \")\" cast-expression"))))

    Theorem: cst-multiplicative-expression-concs

    (defthm cst-multiplicative-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "cast-expression / multiplicative-expression \"*\" cast-expression / multiplicative-expression \"/\" cast-expression / multiplicative-expression \"%\" cast-expression")
      (or (cst-list-list-conc-matchp abnf::cstss "cast-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "multiplicative-expression \"*\" cast-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "multiplicative-expression \"/\" cast-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "multiplicative-expression \"%\" cast-expression"))))

    Theorem: cst-additive-expression-concs

    (defthm cst-additive-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "multiplicative-expression / additive-expression \"+\" multiplicative-expression / additive-expression \"-\" multiplicative-expression")
      (or (cst-list-list-conc-matchp
               abnf::cstss "multiplicative-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "additive-expression \"+\" multiplicative-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "additive-expression \"-\" multiplicative-expression"))))

    Theorem: cst-shift-expression-concs

    (defthm cst-shift-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "additive-expression / shift-expression \"<<\" additive-expression / shift-expression \">>\" additive-expression")
      (or (cst-list-list-conc-matchp abnf::cstss "additive-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "shift-expression \"<<\" additive-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "shift-expression \">>\" additive-expression"))))

    Theorem: cst-relational-expression-concs

    (defthm cst-relational-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "shift-expression / relational-expression \"<\" shift-expression / relational-expression \">\" shift-expression / relational-expression \"<=\" shift-expression / relational-expression \"<=\" shift-expression")
      (or (cst-list-list-conc-matchp abnf::cstss "shift-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "relational-expression \"<\" shift-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "relational-expression \">\" shift-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "relational-expression \"<=\" shift-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "relational-expression \"<=\" shift-expression"))))

    Theorem: cst-equality-expression-concs

    (defthm cst-equality-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "relational-expression / equality-expression \"==\" relational-expression / equality-expression \"!=\" relational-expression")
      (or
         (cst-list-list-conc-matchp abnf::cstss "relational-expression")
         (cst-list-list-conc-matchp
              abnf::cstss
              "equality-expression \"==\" relational-expression")
         (cst-list-list-conc-matchp
              abnf::cstss
              "equality-expression \"!=\" relational-expression"))))

    Theorem: cst-and-expression-concs

    (defthm cst-and-expression-concs
     (implies
      (cst-list-list-alt-matchp
         abnf::cstss
         "equality-expression / and-expression \"&\" equality-expression")
      (or (cst-list-list-conc-matchp abnf::cstss "equality-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "and-expression \"&\" equality-expression"))))

    Theorem: cst-exclusive-or-expression-concs

    (defthm cst-exclusive-or-expression-concs
     (implies
      (cst-list-list-alt-matchp
          abnf::cstss
          "and-expression / exclusive-or-expression \"^\" and-expression")
      (or (cst-list-list-conc-matchp abnf::cstss "and-expression")
          (cst-list-list-conc-matchp
               abnf::cstss
               "exclusive-or-expression \"^\" and-expression"))))

    Theorem: cst-inclusive-or-expression-concs

    (defthm cst-inclusive-or-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "exclusive-or-expression / inclusive-or-expression \"|\" exclusive-or-expression")
      (or
       (cst-list-list-conc-matchp abnf::cstss "exclusive-or-expression")
       (cst-list-list-conc-matchp
            abnf::cstss
            "inclusive-or-expression \"|\" exclusive-or-expression"))))

    Theorem: cst-logical-and-expression-concs

    (defthm cst-logical-and-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "inclusive-or-expression / logical-and-expression \"&&\" inclusive-or-expression")
      (or
       (cst-list-list-conc-matchp abnf::cstss "inclusive-or-expression")
       (cst-list-list-conc-matchp
            abnf::cstss
            "logical-and-expression \"&&\" inclusive-or-expression"))))

    Theorem: cst-logical-or-expression-concs

    (defthm cst-logical-or-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "logical-and-expression / logical-or-expression \"||\" logical-and-expression")
      (or
        (cst-list-list-conc-matchp abnf::cstss "logical-and-expression")
        (cst-list-list-conc-matchp
             abnf::cstss
             "logical-or-expression \"||\" logical-and-expression"))))

    Theorem: cst-conditional-expression-concs

    (defthm cst-conditional-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "logical-or-expression / logical-or-expression \"?\" expression \":\" conditional-expression")
      (or
       (cst-list-list-conc-matchp abnf::cstss "logical-or-expression")
       (cst-list-list-conc-matchp
        abnf::cstss
        "logical-or-expression \"?\" expression \":\" conditional-expression"))))

    Theorem: cst-assignment-expression-concs

    (defthm cst-assignment-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "conditional-expression / unary-expression assignment-operator assignment-expression")
      (or
       (cst-list-list-conc-matchp abnf::cstss "conditional-expression")
       (cst-list-list-conc-matchp
        abnf::cstss
        "unary-expression assignment-operator assignment-expression"))))

    Theorem: cst-assignment-operator-concs

    (defthm cst-assignment-operator-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"=\" / \"*=\" / \"/=\" / \"%=\" / \"+=\" / \"-=\" / \"<<=\" / \">>=\" / \"&=\" / \"^=\" / \"|=\"")
      (or (cst-list-list-conc-matchp abnf::cstss "\"=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"*=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"/=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"%=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"+=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"-=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"<<=\"")
          (cst-list-list-conc-matchp abnf::cstss "\">>=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"&=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"^=\"")
          (cst-list-list-conc-matchp abnf::cstss "\"|=\""))))

    Theorem: cst-expression-concs

    (defthm cst-expression-concs
     (implies
          (cst-list-list-alt-matchp abnf::cstss "assignment-expression")
          (or (cst-list-list-conc-matchp
                   abnf::cstss "assignment-expression"))))

    Theorem: cst-constant-expression-concs

    (defthm cst-constant-expression-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss "conditional-expression")
         (or (cst-list-list-conc-matchp
                  abnf::cstss "conditional-expression"))))

    Theorem: cst-declaration-concs

    (defthm cst-declaration-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "declaration-specifiers [ init-declarator-list ] \";\"")
      (or (cst-list-list-conc-matchp
               abnf::cstss
               "declaration-specifiers [ init-declarator-list ] \";\""))))

    Theorem: cst-declaration-specifiers-concs

    (defthm cst-declaration-specifiers-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "storage-class-specifier [ declaration-specifiers ] / type-specifier [ declaration-specifiers ]")
      (or (cst-list-list-conc-matchp
               abnf::cstss
               "storage-class-specifier [ declaration-specifiers ]")
          (cst-list-list-conc-matchp
               abnf::cstss
               "type-specifier [ declaration-specifiers ]"))))

    Theorem: cst-init-declarator-list-concs

    (defthm cst-init-declarator-list-concs
     (implies
        (cst-list-list-alt-matchp abnf::cstss "init-declarator")
        (or (cst-list-list-conc-matchp abnf::cstss "init-declarator"))))

    Theorem: cst-init-declarator-concs

    (defthm cst-init-declarator-concs
     (implies
         (cst-list-list-alt-matchp
              abnf::cstss
              "declarator / declarator \"=\" initializer")
         (or (cst-list-list-conc-matchp abnf::cstss "declarator")
             (cst-list-list-conc-matchp abnf::cstss
                                        "declarator \"=\" initializer"))))

    Theorem: cst-storage-class-specifier-concs

    (defthm cst-storage-class-specifier-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss "%s\"extern\"")
           (or (cst-list-list-conc-matchp abnf::cstss "%s\"extern\""))))

    Theorem: cst-type-specifier-concs

    (defthm cst-type-specifier-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "%s\"void\" / %s\"char\" / %s\"short\" / %s\"int\" / %s\"long\" / %s\"float\" / %s\"double\" / %s\"signed\" / %s\"unsigned\" / %s\"_Bool\" / struct-or-union-specifier / enum-specifier / typedef-name")
      (or (cst-list-list-conc-matchp abnf::cstss "%s\"void\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"char\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"short\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"int\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"long\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"float\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"double\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"signed\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"unsigned\"")
          (cst-list-list-conc-matchp abnf::cstss "%s\"_Bool\"")
          (cst-list-list-conc-matchp
               abnf::cstss "struct-or-union-specifier")
          (cst-list-list-conc-matchp abnf::cstss "enum-specifier")
          (cst-list-list-conc-matchp abnf::cstss "typedef-name"))))

    Theorem: cst-struct-or-union-specifier-concs

    (defthm cst-struct-or-union-specifier-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "struct-or-union [ identifier ] \"{\" struct-declaration-list \"}\" / struct-or-union identifier")
      (or
       (cst-list-list-conc-matchp
        abnf::cstss
        "struct-or-union [ identifier ] \"{\" struct-declaration-list \"}\"")
       (cst-list-list-conc-matchp abnf::cstss
                                  "struct-or-union identifier"))))

    Theorem: cst-struct-or-union-concs

    (defthm cst-struct-or-union-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss "%s\"struct\" / %s\"union\"")
         (or (cst-list-list-conc-matchp abnf::cstss "%s\"struct\"")
             (cst-list-list-conc-matchp abnf::cstss "%s\"union\""))))

    Theorem: cst-struct-declaration-list-concs

    (defthm cst-struct-declaration-list-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "struct-declaration / struct-declaration-list struct-declaration")
      (or (cst-list-list-conc-matchp abnf::cstss "struct-declaration")
          (cst-list-list-conc-matchp
               abnf::cstss
               "struct-declaration-list struct-declaration"))))

    Theorem: cst-struct-declaration-concs

    (defthm cst-struct-declaration-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "specifier-qualifier-list struct-declarator-list \";\"")
      (or (cst-list-list-conc-matchp
               abnf::cstss
               "specifier-qualifier-list struct-declarator-list \";\""))))

    Theorem: cst-specifier-qualifier-list-concs

    (defthm cst-specifier-qualifier-list-concs
     (implies (cst-list-list-alt-matchp
                   abnf::cstss
                   "type-specifier [ specifier-qualifier-list ]")
              (or (cst-list-list-conc-matchp
                       abnf::cstss
                       "type-specifier [ specifier-qualifier-list ]"))))

    Theorem: cst-struct-declarator-list-concs

    (defthm cst-struct-declarator-list-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss "struct-declarator")
      (or (cst-list-list-conc-matchp abnf::cstss "struct-declarator"))))

    Theorem: cst-struct-declarator-concs

    (defthm cst-struct-declarator-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss "declarator")
           (or (cst-list-list-conc-matchp abnf::cstss "declarator"))))

    Theorem: cst-enum-specifier-concs

    (defthm cst-enum-specifier-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss "%s\"enum\" identifier")
      (or
        (cst-list-list-conc-matchp abnf::cstss "%s\"enum\" identifier"))))

    Theorem: cst-declarator-concs

    (defthm cst-declarator-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss
                                "[ pointer ] direct-declarator")
      (or (cst-list-list-conc-matchp abnf::cstss
                                     "[ pointer ] direct-declarator"))))

    Theorem: cst-direct-declarator-concs

    (defthm cst-direct-declarator-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "identifier / \"(\" declarator \")\" / direct-declarator \"[\" [ integer-constant ] \"]\" / direct-declarator \"(\" parameter-type-list \")\" / direct-declarator \"(\" %s\"void\" \")\" / direct-declarator \"(\" \")\"")
      (or
        (cst-list-list-conc-matchp abnf::cstss "identifier")
        (cst-list-list-conc-matchp abnf::cstss "\"(\" declarator \")\"")
        (cst-list-list-conc-matchp
             abnf::cstss
             "direct-declarator \"[\" [ integer-constant ] \"]\"")
        (cst-list-list-conc-matchp
             abnf::cstss
             "direct-declarator \"(\" parameter-type-list \")\"")
        (cst-list-list-conc-matchp abnf::cstss
                                   "direct-declarator \"(\" %s\"void\" \")\"")
        (cst-list-list-conc-matchp abnf::cstss
                                   "direct-declarator \"(\" \")\""))))

    Theorem: cst-pointer-concs

    (defthm cst-pointer-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss "\"*\" / \"*\" pointer")
           (or (cst-list-list-conc-matchp abnf::cstss "\"*\"")
               (cst-list-list-conc-matchp abnf::cstss "\"*\" pointer"))))

    Theorem: cst-parameter-type-list-concs

    (defthm cst-parameter-type-list-concs
     (implies
         (cst-list-list-alt-matchp abnf::cstss "parameter-list")
         (or (cst-list-list-conc-matchp abnf::cstss "parameter-list"))))

    Theorem: cst-parameter-list-concs

    (defthm cst-parameter-list-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "parameter-declaration / parameter-list \",\" parameter-declaration")
      (or
         (cst-list-list-conc-matchp abnf::cstss "parameter-declaration")
         (cst-list-list-conc-matchp
              abnf::cstss
              "parameter-list \",\" parameter-declaration"))))

    Theorem: cst-parameter-declaration-concs

    (defthm cst-parameter-declaration-concs
     (implies
          (cst-list-list-alt-matchp abnf::cstss
                                    "declaration-specifiers declarator")
          (or (cst-list-list-conc-matchp
                   abnf::cstss
                   "declaration-specifiers declarator"))))

    Theorem: cst-type-name-concs

    (defthm cst-type-name-concs
     (implies
         (cst-list-list-alt-matchp
              abnf::cstss
              "specifier-qualifier-list [ abstract-declarator ]")
         (or (cst-list-list-conc-matchp
                  abnf::cstss
                  "specifier-qualifier-list [ abstract-declarator ]"))))

    Theorem: cst-abstract-declarator-concs

    (defthm cst-abstract-declarator-concs
      (implies (cst-list-list-alt-matchp
                    abnf::cstss
                    "pointer / [ pointer ] direct-abstract-declarator")
               (or (cst-list-list-conc-matchp abnf::cstss "pointer")
                   (cst-list-list-conc-matchp
                        abnf::cstss
                        "[ pointer ] direct-abstract-declarator"))))

    Theorem: cst-direct-abstract-declarator-concs

    (defthm cst-direct-abstract-declarator-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "\"(\" abstract-declarator \")\" / [ direct-abstract-declarator ] \"[\" [ integer-constant ] \"]\"")
      (or
       (cst-list-list-conc-matchp abnf::cstss
                                  "\"(\" abstract-declarator \")\"")
       (cst-list-list-conc-matchp
        abnf::cstss
        "[ direct-abstract-declarator ] \"[\" [ integer-constant ] \"]\""))))

    Theorem: cst-typedef-name-concs

    (defthm cst-typedef-name-concs
      (implies
           (cst-list-list-alt-matchp abnf::cstss "identifier")
           (or (cst-list-list-conc-matchp abnf::cstss "identifier"))))

    Theorem: cst-initializer-concs

    (defthm cst-initializer-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "assignment-expression / \"{\" initializer-list \"}\" / \"{\" initializer-list \",\" \"}\"")
      (or
         (cst-list-list-conc-matchp abnf::cstss "assignment-expression")
         (cst-list-list-conc-matchp
              abnf::cstss "\"{\" initializer-list \"}\"")
         (cst-list-list-conc-matchp abnf::cstss
                                    "\"{\" initializer-list \",\" \"}\""))))

    Theorem: cst-initializer-list-concs

    (defthm cst-initializer-list-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "initializer / initializer-list \",\" initializer")
      (or
       (cst-list-list-conc-matchp abnf::cstss "initializer")
       (cst-list-list-conc-matchp abnf::cstss
                                  "initializer-list \",\" initializer"))))

    Theorem: cst-statement-concs

    (defthm cst-statement-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "labeled-statement / compound-statement / expression-statement / selection-statement / iteration-statement / jump-statement")
      (or (cst-list-list-conc-matchp abnf::cstss "labeled-statement")
          (cst-list-list-conc-matchp abnf::cstss "compound-statement")
          (cst-list-list-conc-matchp abnf::cstss "expression-statement")
          (cst-list-list-conc-matchp abnf::cstss "selection-statement")
          (cst-list-list-conc-matchp abnf::cstss "iteration-statement")
          (cst-list-list-conc-matchp abnf::cstss "jump-statement"))))

    Theorem: cst-labeled-statement-concs

    (defthm cst-labeled-statement-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "identifier \":\" statement / %s\"case\" constant-expression \":\" statement / %s\"default\" \":\" statement")
      (or (cst-list-list-conc-matchp
               abnf::cstss "identifier \":\" statement")
          (cst-list-list-conc-matchp
               abnf::cstss
               "%s\"case\" constant-expression \":\" statement")
          (cst-list-list-conc-matchp abnf::cstss
                                     "%s\"default\" \":\" statement"))))

    Theorem: cst-compound-statement-concs

    (defthm cst-compound-statement-concs
     (implies
        (cst-list-list-alt-matchp abnf::cstss
                                  "\"{\" [ block-item-list ] \"}\"")
        (or (cst-list-list-conc-matchp abnf::cstss
                                       "\"{\" [ block-item-list ] \"}\""))))

    Theorem: cst-block-item-list-concs

    (defthm cst-block-item-list-concs
     (implies
         (cst-list-list-alt-matchp
              abnf::cstss
              "block-item / block-item-list block-item")
         (or (cst-list-list-conc-matchp abnf::cstss "block-item")
             (cst-list-list-conc-matchp abnf::cstss
                                        "block-item-list block-item"))))

    Theorem: cst-block-item-concs

    (defthm cst-block-item-concs
     (implies
        (cst-list-list-alt-matchp abnf::cstss "declaration / statement")
        (or (cst-list-list-conc-matchp abnf::cstss "declaration")
            (cst-list-list-conc-matchp abnf::cstss "statement"))))

    Theorem: cst-expression-statement-concs

    (defthm cst-expression-statement-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss "[ expression ] \";\"")
      (or
         (cst-list-list-conc-matchp abnf::cstss "[ expression ] \";\""))))

    Theorem: cst-selection-statement-concs

    (defthm cst-selection-statement-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "%s\"if\" \"(\" expression \")\" statement / %s\"if\" \"(\" expression \")\" statement %s\"else\" statement / %s\"switch\" \"(\" expression \")\" statement")
      (or
       (cst-list-list-conc-matchp abnf::cstss
                                  "%s\"if\" \"(\" expression \")\" statement")
       (cst-list-list-conc-matchp
            abnf::cstss
            "%s\"if\" \"(\" expression \")\" statement %s\"else\" statement")
       (cst-list-list-conc-matchp
            abnf::cstss
            "%s\"switch\" \"(\" expression \")\" statement"))))

    Theorem: cst-iteration-statement-concs

    (defthm cst-iteration-statement-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "%s\"while\" \"(\" expression \")\" statement / %s\"do\" statement %s\"while\" \"(\" expression \")\" \";\" / %s\"for\" \"(\" [ expression ] \";\" [ expression ] \";\" [ expression ] \")\" statement")
      (or
       (cst-list-list-conc-matchp
            abnf::cstss
            "%s\"while\" \"(\" expression \")\" statement")
       (cst-list-list-conc-matchp
            abnf::cstss
            "%s\"do\" statement %s\"while\" \"(\" expression \")\" \";\"")
       (cst-list-list-conc-matchp
        abnf::cstss
        "%s\"for\" \"(\" [ expression ] \";\" [ expression ] \";\" [ expression ] \")\" statement"))))

    Theorem: cst-jump-statement-concs

    (defthm cst-jump-statement-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "%s\"goto\" identifier \";\" / %s\"continue\" \";\" / %s\"break\" \";\" / %s\"return\" [ expression ] \";\"")
      (or
       (cst-list-list-conc-matchp abnf::cstss "%s\"goto\" identifier \";\"")
       (cst-list-list-conc-matchp abnf::cstss "%s\"continue\" \";\"")
       (cst-list-list-conc-matchp abnf::cstss "%s\"break\" \";\"")
       (cst-list-list-conc-matchp abnf::cstss
                                  "%s\"return\" [ expression ] \";\""))))

    Theorem: cst-translation-unit-concs

    (defthm cst-translation-unit-concs
     (implies
      (cst-list-list-alt-matchp
         abnf::cstss
         "external-declaration / translation-unit external-declaration")
      (or (cst-list-list-conc-matchp abnf::cstss "external-declaration")
          (cst-list-list-conc-matchp
               abnf::cstss
               "translation-unit external-declaration"))))

    Theorem: cst-external-declaration-concs

    (defthm cst-external-declaration-concs
     (implies
       (cst-list-list-alt-matchp abnf::cstss
                                 "function-definition / declaration")
       (or (cst-list-list-conc-matchp abnf::cstss "function-definition")
           (cst-list-list-conc-matchp abnf::cstss "declaration"))))

    Theorem: cst-function-definition-concs

    (defthm cst-function-definition-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "declaration-specifiers declarator compound-statement")
      (or
         (cst-list-list-conc-matchp
              abnf::cstss
              "declaration-specifiers declarator compound-statement"))))

    Theorem: cst-declaration-list-concs

    (defthm cst-declaration-list-concs
     (implies
       (cst-list-list-alt-matchp
            abnf::cstss
            "declaration / declaration-list declaration")
       (or (cst-list-list-conc-matchp abnf::cstss "declaration")
           (cst-list-list-conc-matchp abnf::cstss
                                      "declaration-list declaration"))))

    Theorem: cst-horizontal-tab-conc-matching

    (defthm cst-horizontal-tab-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x9")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x9"))))

    Theorem: cst-line-feed-conc-matching

    (defthm cst-line-feed-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xA")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xA"))))

    Theorem: cst-vertical-tab-conc-matching

    (defthm cst-vertical-tab-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xB")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xB"))))

    Theorem: cst-form-feed-conc-matching

    (defthm cst-form-feed-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xC")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xC"))))

    Theorem: cst-carriage-return-conc-matching

    (defthm cst-carriage-return-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xD")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xD"))))

    Theorem: cst-space-conc-matching

    (defthm cst-space-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x20")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x20"))))

    Theorem: cst-double-quote-conc-matching

    (defthm cst-double-quote-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x22")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x22"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc1-matching

    (defthm cst-not-line-feed-or-carriage-return-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x0-9")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x0-9"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc2-matching

    (defthm cst-not-line-feed-or-carriage-return-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xB-C")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xB-C"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc3-matching

    (defthm cst-not-line-feed-or-carriage-return-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xE-7F")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xE-7F"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc1-matching

    (defthm cst-not-star-or-line-feed-or-carriage-return-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x0-9")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x0-9"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc2-matching

    (defthm cst-not-star-or-line-feed-or-carriage-return-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xB-C")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xB-C"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc3-matching

    (defthm cst-not-star-or-line-feed-or-carriage-return-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%xE-29")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%xE-29"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc4-matching

    (defthm cst-not-star-or-line-feed-or-carriage-return-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x2B-7F")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x2B-7F"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc1-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc1-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "%x0-9")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "%x0-9"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc2-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc2-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "%xB-C")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "%xB-C"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc3-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc3-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "%xE-29")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "%xE-29"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc4-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc4-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "%x2B-2E")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "%x2B-2E"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc5-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc5-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "%x30-7F")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "%x30-7F"))))

    Theorem: cst-character-conc-matching

    (defthm cst-character-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x0-7F")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x0-7F"))))

    Theorem: cst-token-conc1-matching

    (defthm cst-token-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "keyword")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "keyword"))))

    Theorem: cst-token-conc2-matching

    (defthm cst-token-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "identifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "identifier"))))

    Theorem: cst-token-conc3-matching

    (defthm cst-token-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "constant")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "constant"))))

    Theorem: cst-token-conc4-matching

    (defthm cst-token-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "punctuator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "punctuator"))))

    Theorem: cst-keyword-conc1-matching

    (defthm cst-keyword-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"auto\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"auto\""))))

    Theorem: cst-keyword-conc2-matching

    (defthm cst-keyword-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"break\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"break\""))))

    Theorem: cst-keyword-conc3-matching

    (defthm cst-keyword-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"case\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"case\""))))

    Theorem: cst-keyword-conc4-matching

    (defthm cst-keyword-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"char\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"char\""))))

    Theorem: cst-keyword-conc5-matching

    (defthm cst-keyword-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"const\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"const\""))))

    Theorem: cst-keyword-conc6-matching

    (defthm cst-keyword-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"continue\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"continue\""))))

    Theorem: cst-keyword-conc7-matching

    (defthm cst-keyword-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"default\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"default\""))))

    Theorem: cst-keyword-conc8-matching

    (defthm cst-keyword-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"do\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"do\""))))

    Theorem: cst-keyword-conc9-matching

    (defthm cst-keyword-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"double\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"double\""))))

    Theorem: cst-keyword-conc10-matching

    (defthm cst-keyword-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"else\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"else\""))))

    Theorem: cst-keyword-conc11-matching

    (defthm cst-keyword-conc11-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"enum\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"enum\""))))

    Theorem: cst-keyword-conc12-matching

    (defthm cst-keyword-conc12-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"extern\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"extern\""))))

    Theorem: cst-keyword-conc13-matching

    (defthm cst-keyword-conc13-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"float\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"float\""))))

    Theorem: cst-keyword-conc14-matching

    (defthm cst-keyword-conc14-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"for\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"for\""))))

    Theorem: cst-keyword-conc15-matching

    (defthm cst-keyword-conc15-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"goto\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"goto\""))))

    Theorem: cst-keyword-conc16-matching

    (defthm cst-keyword-conc16-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"if\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"if\""))))

    Theorem: cst-keyword-conc17-matching

    (defthm cst-keyword-conc17-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"inline\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"inline\""))))

    Theorem: cst-keyword-conc18-matching

    (defthm cst-keyword-conc18-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"int\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"int\""))))

    Theorem: cst-keyword-conc19-matching

    (defthm cst-keyword-conc19-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"long\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"long\""))))

    Theorem: cst-keyword-conc20-matching

    (defthm cst-keyword-conc20-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"register\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"register\""))))

    Theorem: cst-keyword-conc21-matching

    (defthm cst-keyword-conc21-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"restrict\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"restrict\""))))

    Theorem: cst-keyword-conc22-matching

    (defthm cst-keyword-conc22-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"return\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"return\""))))

    Theorem: cst-keyword-conc23-matching

    (defthm cst-keyword-conc23-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"short\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"short\""))))

    Theorem: cst-keyword-conc24-matching

    (defthm cst-keyword-conc24-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"signed\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"signed\""))))

    Theorem: cst-keyword-conc25-matching

    (defthm cst-keyword-conc25-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"sizeof\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"sizeof\""))))

    Theorem: cst-keyword-conc26-matching

    (defthm cst-keyword-conc26-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"static\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"static\""))))

    Theorem: cst-keyword-conc27-matching

    (defthm cst-keyword-conc27-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"struct\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"struct\""))))

    Theorem: cst-keyword-conc28-matching

    (defthm cst-keyword-conc28-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"switch\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"switch\""))))

    Theorem: cst-keyword-conc29-matching

    (defthm cst-keyword-conc29-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"typedef\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"typedef\""))))

    Theorem: cst-keyword-conc30-matching

    (defthm cst-keyword-conc30-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"union\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"union\""))))

    Theorem: cst-keyword-conc31-matching

    (defthm cst-keyword-conc31-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"unsigned\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"unsigned\""))))

    Theorem: cst-keyword-conc32-matching

    (defthm cst-keyword-conc32-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"void\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"void\""))))

    Theorem: cst-keyword-conc33-matching

    (defthm cst-keyword-conc33-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"volatile\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"volatile\""))))

    Theorem: cst-keyword-conc34-matching

    (defthm cst-keyword-conc34-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"while\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"while\""))))

    Theorem: cst-keyword-conc35-matching

    (defthm cst-keyword-conc35-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Alignas\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Alignas\""))))

    Theorem: cst-keyword-conc36-matching

    (defthm cst-keyword-conc36-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Alignof\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Alignof\""))))

    Theorem: cst-keyword-conc37-matching

    (defthm cst-keyword-conc37-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Atomic\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Atomic\""))))

    Theorem: cst-keyword-conc38-matching

    (defthm cst-keyword-conc38-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Bool\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Bool\""))))

    Theorem: cst-keyword-conc39-matching

    (defthm cst-keyword-conc39-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Complex\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Complex\""))))

    Theorem: cst-keyword-conc40-matching

    (defthm cst-keyword-conc40-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Generic\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Generic\""))))

    Theorem: cst-keyword-conc41-matching

    (defthm cst-keyword-conc41-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Imaginary\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Imaginary\""))))

    Theorem: cst-keyword-conc42-matching

    (defthm cst-keyword-conc42-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Noreturn\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Noreturn\""))))

    Theorem: cst-keyword-conc43-matching

    (defthm cst-keyword-conc43-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "%s\"_Static_assert\"")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "%s\"_Static_assert\""))))

    Theorem: cst-keyword-conc44-matching

    (defthm cst-keyword-conc44-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "%s\"_Thread_local\"")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "%s\"_Thread_local\""))))

    Theorem: cst-identifier-conc1-matching

    (defthm cst-identifier-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "identifier-nondigit")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "identifier-nondigit"))))

    Theorem: cst-identifier-nondigit-conc-matching

    (defthm cst-identifier-nondigit-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "nondigit")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "nondigit"))))

    Theorem: cst-nondigit-conc1-matching

    (defthm cst-nondigit-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"_\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"_\""))))

    Theorem: cst-nondigit-conc2-matching

    (defthm cst-nondigit-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"a\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"a\""))))

    Theorem: cst-nondigit-conc3-matching

    (defthm cst-nondigit-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"b\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"b\""))))

    Theorem: cst-nondigit-conc4-matching

    (defthm cst-nondigit-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"c\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"c\""))))

    Theorem: cst-nondigit-conc5-matching

    (defthm cst-nondigit-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"d\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"d\""))))

    Theorem: cst-nondigit-conc6-matching

    (defthm cst-nondigit-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"e\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"e\""))))

    Theorem: cst-nondigit-conc7-matching

    (defthm cst-nondigit-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"f\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"f\""))))

    Theorem: cst-nondigit-conc8-matching

    (defthm cst-nondigit-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"g\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"g\""))))

    Theorem: cst-nondigit-conc9-matching

    (defthm cst-nondigit-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"h\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"h\""))))

    Theorem: cst-nondigit-conc10-matching

    (defthm cst-nondigit-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"i\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"i\""))))

    Theorem: cst-nondigit-conc11-matching

    (defthm cst-nondigit-conc11-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"j\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"j\""))))

    Theorem: cst-nondigit-conc12-matching

    (defthm cst-nondigit-conc12-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"k\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"k\""))))

    Theorem: cst-nondigit-conc13-matching

    (defthm cst-nondigit-conc13-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"l\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"l\""))))

    Theorem: cst-nondigit-conc14-matching

    (defthm cst-nondigit-conc14-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"m\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"m\""))))

    Theorem: cst-nondigit-conc15-matching

    (defthm cst-nondigit-conc15-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"n\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"n\""))))

    Theorem: cst-nondigit-conc16-matching

    (defthm cst-nondigit-conc16-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"o\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"o\""))))

    Theorem: cst-nondigit-conc17-matching

    (defthm cst-nondigit-conc17-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"p\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"p\""))))

    Theorem: cst-nondigit-conc18-matching

    (defthm cst-nondigit-conc18-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"q\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"q\""))))

    Theorem: cst-nondigit-conc19-matching

    (defthm cst-nondigit-conc19-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"r\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"r\""))))

    Theorem: cst-nondigit-conc20-matching

    (defthm cst-nondigit-conc20-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"s\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"s\""))))

    Theorem: cst-nondigit-conc21-matching

    (defthm cst-nondigit-conc21-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"t\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"t\""))))

    Theorem: cst-nondigit-conc22-matching

    (defthm cst-nondigit-conc22-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"u\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"u\""))))

    Theorem: cst-nondigit-conc23-matching

    (defthm cst-nondigit-conc23-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"v\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"v\""))))

    Theorem: cst-nondigit-conc24-matching

    (defthm cst-nondigit-conc24-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"w\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"w\""))))

    Theorem: cst-nondigit-conc25-matching

    (defthm cst-nondigit-conc25-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"x\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"x\""))))

    Theorem: cst-nondigit-conc26-matching

    (defthm cst-nondigit-conc26-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"y\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"y\""))))

    Theorem: cst-nondigit-conc27-matching

    (defthm cst-nondigit-conc27-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"z\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"z\""))))

    Theorem: cst-digit-conc1-matching

    (defthm cst-digit-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"0\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"0\""))))

    Theorem: cst-digit-conc2-matching

    (defthm cst-digit-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"1\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"1\""))))

    Theorem: cst-digit-conc3-matching

    (defthm cst-digit-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"2\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"2\""))))

    Theorem: cst-digit-conc4-matching

    (defthm cst-digit-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"3\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"3\""))))

    Theorem: cst-digit-conc5-matching

    (defthm cst-digit-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"4\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"4\""))))

    Theorem: cst-digit-conc6-matching

    (defthm cst-digit-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"5\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"5\""))))

    Theorem: cst-digit-conc7-matching

    (defthm cst-digit-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"6\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"6\""))))

    Theorem: cst-digit-conc8-matching

    (defthm cst-digit-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"7\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"7\""))))

    Theorem: cst-digit-conc9-matching

    (defthm cst-digit-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"8\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"8\""))))

    Theorem: cst-digit-conc10-matching

    (defthm cst-digit-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"9\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"9\""))))

    Theorem: cst-constant-conc1-matching

    (defthm cst-constant-conc1-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "integer-constant")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "integer-constant"))))

    Theorem: cst-constant-conc2-matching

    (defthm cst-constant-conc2-matching
     (implies
          (cst-list-list-conc-matchp abnf::cstss "enumeration-constant")
          (and (equal (len abnf::cstss) 1)
               (cst-list-rep-matchp (nth 0 abnf::cstss)
                                    "enumeration-constant"))))

    Theorem: cst-decimal-constant-conc1-matching

    (defthm cst-decimal-constant-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "nonzero-digit")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "nonzero-digit"))))

    Theorem: cst-octal-constant-conc1-matching

    (defthm cst-octal-constant-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"0\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"0\""))))

    Theorem: cst-hexadecimal-prefix-conc-matching

    (defthm cst-hexadecimal-prefix-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"0x\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"0x\""))))

    Theorem: cst-nonzero-digit-conc1-matching

    (defthm cst-nonzero-digit-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"1\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"1\""))))

    Theorem: cst-nonzero-digit-conc2-matching

    (defthm cst-nonzero-digit-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"2\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"2\""))))

    Theorem: cst-nonzero-digit-conc3-matching

    (defthm cst-nonzero-digit-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"3\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"3\""))))

    Theorem: cst-nonzero-digit-conc4-matching

    (defthm cst-nonzero-digit-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"4\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"4\""))))

    Theorem: cst-nonzero-digit-conc5-matching

    (defthm cst-nonzero-digit-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"5\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"5\""))))

    Theorem: cst-nonzero-digit-conc6-matching

    (defthm cst-nonzero-digit-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"6\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"6\""))))

    Theorem: cst-nonzero-digit-conc7-matching

    (defthm cst-nonzero-digit-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"7\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"7\""))))

    Theorem: cst-nonzero-digit-conc8-matching

    (defthm cst-nonzero-digit-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"8\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"8\""))))

    Theorem: cst-nonzero-digit-conc9-matching

    (defthm cst-nonzero-digit-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"9\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"9\""))))

    Theorem: cst-octal-digit-conc1-matching

    (defthm cst-octal-digit-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"0\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"0\""))))

    Theorem: cst-octal-digit-conc2-matching

    (defthm cst-octal-digit-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"1\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"1\""))))

    Theorem: cst-octal-digit-conc3-matching

    (defthm cst-octal-digit-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"2\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"2\""))))

    Theorem: cst-octal-digit-conc4-matching

    (defthm cst-octal-digit-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"3\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"3\""))))

    Theorem: cst-octal-digit-conc5-matching

    (defthm cst-octal-digit-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"4\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"4\""))))

    Theorem: cst-octal-digit-conc6-matching

    (defthm cst-octal-digit-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"5\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"5\""))))

    Theorem: cst-octal-digit-conc7-matching

    (defthm cst-octal-digit-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"6\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"6\""))))

    Theorem: cst-octal-digit-conc8-matching

    (defthm cst-octal-digit-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"7\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"7\""))))

    Theorem: cst-hexadecimal-digit-conc1-matching

    (defthm cst-hexadecimal-digit-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"0\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"0\""))))

    Theorem: cst-hexadecimal-digit-conc2-matching

    (defthm cst-hexadecimal-digit-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"1\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"1\""))))

    Theorem: cst-hexadecimal-digit-conc3-matching

    (defthm cst-hexadecimal-digit-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"2\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"2\""))))

    Theorem: cst-hexadecimal-digit-conc4-matching

    (defthm cst-hexadecimal-digit-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"3\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"3\""))))

    Theorem: cst-hexadecimal-digit-conc5-matching

    (defthm cst-hexadecimal-digit-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"4\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"4\""))))

    Theorem: cst-hexadecimal-digit-conc6-matching

    (defthm cst-hexadecimal-digit-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"5\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"5\""))))

    Theorem: cst-hexadecimal-digit-conc7-matching

    (defthm cst-hexadecimal-digit-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"6\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"6\""))))

    Theorem: cst-hexadecimal-digit-conc8-matching

    (defthm cst-hexadecimal-digit-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"7\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"7\""))))

    Theorem: cst-hexadecimal-digit-conc9-matching

    (defthm cst-hexadecimal-digit-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"a\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"a\""))))

    Theorem: cst-hexadecimal-digit-conc10-matching

    (defthm cst-hexadecimal-digit-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"b\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"b\""))))

    Theorem: cst-hexadecimal-digit-conc11-matching

    (defthm cst-hexadecimal-digit-conc11-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"c\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"c\""))))

    Theorem: cst-hexadecimal-digit-conc12-matching

    (defthm cst-hexadecimal-digit-conc12-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"d\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"d\""))))

    Theorem: cst-hexadecimal-digit-conc13-matching

    (defthm cst-hexadecimal-digit-conc13-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"e\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"e\""))))

    Theorem: cst-hexadecimal-digit-conc14-matching

    (defthm cst-hexadecimal-digit-conc14-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"f\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"f\""))))

    Theorem: cst-unsigned-suffix-conc-matching

    (defthm cst-unsigned-suffix-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"u\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"u\""))))

    Theorem: cst-long-suffix-conc-matching

    (defthm cst-long-suffix-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%i\"l\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%i\"l\""))))

    Theorem: cst-long-long-suffix-conc1-matching

    (defthm cst-long-long-suffix-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"ll\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"ll\""))))

    Theorem: cst-long-long-suffix-conc2-matching

    (defthm cst-long-long-suffix-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"LL\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"LL\""))))

    Theorem: cst-enumeration-constant-conc-matching

    (defthm cst-enumeration-constant-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "identifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "identifier"))))

    Theorem: cst-punctuator-conc1-matching

    (defthm cst-punctuator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"[\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"[\""))))

    Theorem: cst-punctuator-conc2-matching

    (defthm cst-punctuator-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"]\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"]\""))))

    Theorem: cst-punctuator-conc3-matching

    (defthm cst-punctuator-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"(\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"(\""))))

    Theorem: cst-punctuator-conc4-matching

    (defthm cst-punctuator-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\")\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\")\""))))

    Theorem: cst-punctuator-conc5-matching

    (defthm cst-punctuator-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"{\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"{\""))))

    Theorem: cst-punctuator-conc6-matching

    (defthm cst-punctuator-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"}\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"}\""))))

    Theorem: cst-punctuator-conc7-matching

    (defthm cst-punctuator-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\".\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\".\""))))

    Theorem: cst-punctuator-conc8-matching

    (defthm cst-punctuator-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"->\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"->\""))))

    Theorem: cst-punctuator-conc9-matching

    (defthm cst-punctuator-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"++\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"++\""))))

    Theorem: cst-punctuator-conc10-matching

    (defthm cst-punctuator-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"--\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"--\""))))

    Theorem: cst-punctuator-conc11-matching

    (defthm cst-punctuator-conc11-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"&\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"&\""))))

    Theorem: cst-punctuator-conc12-matching

    (defthm cst-punctuator-conc12-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"*\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"*\""))))

    Theorem: cst-punctuator-conc13-matching

    (defthm cst-punctuator-conc13-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"+\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"+\""))))

    Theorem: cst-punctuator-conc14-matching

    (defthm cst-punctuator-conc14-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"-\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"-\""))))

    Theorem: cst-punctuator-conc15-matching

    (defthm cst-punctuator-conc15-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"~\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"~\""))))

    Theorem: cst-punctuator-conc16-matching

    (defthm cst-punctuator-conc16-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"!\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"!\""))))

    Theorem: cst-punctuator-conc17-matching

    (defthm cst-punctuator-conc17-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"/\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"/\""))))

    Theorem: cst-punctuator-conc18-matching

    (defthm cst-punctuator-conc18-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%\""))))

    Theorem: cst-punctuator-conc19-matching

    (defthm cst-punctuator-conc19-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<<\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<<\""))))

    Theorem: cst-punctuator-conc20-matching

    (defthm cst-punctuator-conc20-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\">>\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\">>\""))))

    Theorem: cst-punctuator-conc21-matching

    (defthm cst-punctuator-conc21-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<\""))))

    Theorem: cst-punctuator-conc22-matching

    (defthm cst-punctuator-conc22-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\">\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\">\""))))

    Theorem: cst-punctuator-conc23-matching

    (defthm cst-punctuator-conc23-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<=\""))))

    Theorem: cst-punctuator-conc24-matching

    (defthm cst-punctuator-conc24-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\">=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\">=\""))))

    Theorem: cst-punctuator-conc25-matching

    (defthm cst-punctuator-conc25-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"==\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"==\""))))

    Theorem: cst-punctuator-conc26-matching

    (defthm cst-punctuator-conc26-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"!=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"!=\""))))

    Theorem: cst-punctuator-conc27-matching

    (defthm cst-punctuator-conc27-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"^\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"^\""))))

    Theorem: cst-punctuator-conc28-matching

    (defthm cst-punctuator-conc28-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"|\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"|\""))))

    Theorem: cst-punctuator-conc29-matching

    (defthm cst-punctuator-conc29-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"&&\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"&&\""))))

    Theorem: cst-punctuator-conc30-matching

    (defthm cst-punctuator-conc30-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"||\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"||\""))))

    Theorem: cst-punctuator-conc31-matching

    (defthm cst-punctuator-conc31-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"?\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"?\""))))

    Theorem: cst-punctuator-conc32-matching

    (defthm cst-punctuator-conc32-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\":\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\":\""))))

    Theorem: cst-punctuator-conc33-matching

    (defthm cst-punctuator-conc33-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\";\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\";\""))))

    Theorem: cst-punctuator-conc34-matching

    (defthm cst-punctuator-conc34-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"...\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"...\""))))

    Theorem: cst-punctuator-conc35-matching

    (defthm cst-punctuator-conc35-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"=\""))))

    Theorem: cst-punctuator-conc36-matching

    (defthm cst-punctuator-conc36-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"*=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"*=\""))))

    Theorem: cst-punctuator-conc37-matching

    (defthm cst-punctuator-conc37-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"/=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"/=\""))))

    Theorem: cst-punctuator-conc38-matching

    (defthm cst-punctuator-conc38-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%=\""))))

    Theorem: cst-punctuator-conc39-matching

    (defthm cst-punctuator-conc39-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"+=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"+=\""))))

    Theorem: cst-punctuator-conc40-matching

    (defthm cst-punctuator-conc40-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"-=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"-=\""))))

    Theorem: cst-punctuator-conc41-matching

    (defthm cst-punctuator-conc41-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<<=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<<=\""))))

    Theorem: cst-punctuator-conc42-matching

    (defthm cst-punctuator-conc42-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\">>=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\">>=\""))))

    Theorem: cst-punctuator-conc43-matching

    (defthm cst-punctuator-conc43-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"&=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"&=\""))))

    Theorem: cst-punctuator-conc44-matching

    (defthm cst-punctuator-conc44-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"^=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"^=\""))))

    Theorem: cst-punctuator-conc45-matching

    (defthm cst-punctuator-conc45-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"|=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"|=\""))))

    Theorem: cst-punctuator-conc46-matching

    (defthm cst-punctuator-conc46-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\",\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\",\""))))

    Theorem: cst-punctuator-conc47-matching

    (defthm cst-punctuator-conc47-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"#\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"#\""))))

    Theorem: cst-punctuator-conc48-matching

    (defthm cst-punctuator-conc48-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"##\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"##\""))))

    Theorem: cst-punctuator-conc49-matching

    (defthm cst-punctuator-conc49-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<:\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<:\""))))

    Theorem: cst-punctuator-conc50-matching

    (defthm cst-punctuator-conc50-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\":>\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\":>\""))))

    Theorem: cst-punctuator-conc51-matching

    (defthm cst-punctuator-conc51-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<%\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<%\""))))

    Theorem: cst-punctuator-conc52-matching

    (defthm cst-punctuator-conc52-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%>\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%>\""))))

    Theorem: cst-punctuator-conc53-matching

    (defthm cst-punctuator-conc53-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%:\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%:\""))))

    Theorem: cst-punctuator-conc54-matching

    (defthm cst-punctuator-conc54-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%:%:\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%:%:\""))))

    Theorem: cst-comment-conc1-matching

    (defthm cst-comment-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "block-comment")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "block-comment"))))

    Theorem: cst-comment-conc2-matching

    (defthm cst-comment-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "line-comment")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "line-comment"))))

    Theorem: cst-rest-of-block-comment-after-star-conc1-matching

    (defthm cst-rest-of-block-comment-after-star-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"/\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"/\""))))

    Theorem: cst-white-space-conc1-matching

    (defthm cst-white-space-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "space")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "space"))))

    Theorem: cst-white-space-conc2-matching

    (defthm cst-white-space-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "horizontal-tab")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "horizontal-tab"))))

    Theorem: cst-white-space-conc3-matching

    (defthm cst-white-space-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "vertical-tab")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "vertical-tab"))))

    Theorem: cst-white-space-conc4-matching

    (defthm cst-white-space-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "form-feed")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "form-feed"))))

    Theorem: cst-white-space-conc5-matching

    (defthm cst-white-space-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "new-line")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "new-line"))))

    Theorem: cst-lexeme-conc1-matching

    (defthm cst-lexeme-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "token")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "token"))))

    Theorem: cst-lexeme-conc2-matching

    (defthm cst-lexeme-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "comment")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "comment"))))

    Theorem: cst-lexeme-conc3-matching

    (defthm cst-lexeme-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "white-space")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "white-space"))))

    Theorem: cst-primary-expression-conc1-matching

    (defthm cst-primary-expression-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "identifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "identifier"))))

    Theorem: cst-postfix-expression-conc1-matching

    (defthm cst-postfix-expression-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "primary-expression")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "primary-expression"))))

    Theorem: cst-argument-expression-list-conc1-matching

    (defthm cst-argument-expression-list-conc1-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "assignment-expression")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "assignment-expression"))))

    Theorem: cst-unary-expression-conc1-matching

    (defthm cst-unary-expression-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "postfix-expression")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "postfix-expression"))))

    Theorem: cst-unary-operator-conc1-matching

    (defthm cst-unary-operator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"&\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"&\""))))

    Theorem: cst-unary-operator-conc2-matching

    (defthm cst-unary-operator-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"*\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"*\""))))

    Theorem: cst-unary-operator-conc3-matching

    (defthm cst-unary-operator-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"+\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"+\""))))

    Theorem: cst-unary-operator-conc4-matching

    (defthm cst-unary-operator-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"-\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"-\""))))

    Theorem: cst-unary-operator-conc5-matching

    (defthm cst-unary-operator-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"~\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"~\""))))

    Theorem: cst-unary-operator-conc6-matching

    (defthm cst-unary-operator-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"!\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"!\""))))

    Theorem: cst-cast-expression-conc1-matching

    (defthm cst-cast-expression-conc1-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "unary-expression")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "unary-expression"))))

    Theorem: cst-multiplicative-expression-conc1-matching

    (defthm cst-multiplicative-expression-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "cast-expression")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "cast-expression"))))

    Theorem: cst-additive-expression-conc1-matching

    (defthm cst-additive-expression-conc1-matching
      (implies (cst-list-list-conc-matchp
                    abnf::cstss "multiplicative-expression")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "multiplicative-expression"))))

    Theorem: cst-shift-expression-conc1-matching

    (defthm cst-shift-expression-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "additive-expression")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "additive-expression"))))

    Theorem: cst-relational-expression-conc1-matching

    (defthm cst-relational-expression-conc1-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "shift-expression")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "shift-expression"))))

    Theorem: cst-equality-expression-conc1-matching

    (defthm cst-equality-expression-conc1-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "relational-expression")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "relational-expression"))))

    Theorem: cst-and-expression-conc1-matching

    (defthm cst-and-expression-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "equality-expression")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "equality-expression"))))

    Theorem: cst-exclusive-or-expression-conc1-matching

    (defthm cst-exclusive-or-expression-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "and-expression")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "and-expression"))))

    Theorem: cst-inclusive-or-expression-conc1-matching

    (defthm cst-inclusive-or-expression-conc1-matching
     (implies
       (cst-list-list-conc-matchp abnf::cstss "exclusive-or-expression")
       (and (equal (len abnf::cstss) 1)
            (cst-list-rep-matchp (nth 0 abnf::cstss)
                                 "exclusive-or-expression"))))

    Theorem: cst-logical-and-expression-conc1-matching

    (defthm cst-logical-and-expression-conc1-matching
     (implies
       (cst-list-list-conc-matchp abnf::cstss "inclusive-or-expression")
       (and (equal (len abnf::cstss) 1)
            (cst-list-rep-matchp (nth 0 abnf::cstss)
                                 "inclusive-or-expression"))))

    Theorem: cst-logical-or-expression-conc1-matching

    (defthm cst-logical-or-expression-conc1-matching
     (implies
        (cst-list-list-conc-matchp abnf::cstss "logical-and-expression")
        (and (equal (len abnf::cstss) 1)
             (cst-list-rep-matchp (nth 0 abnf::cstss)
                                  "logical-and-expression"))))

    Theorem: cst-conditional-expression-conc1-matching

    (defthm cst-conditional-expression-conc1-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "logical-or-expression")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "logical-or-expression"))))

    Theorem: cst-assignment-expression-conc1-matching

    (defthm cst-assignment-expression-conc1-matching
     (implies
        (cst-list-list-conc-matchp abnf::cstss "conditional-expression")
        (and (equal (len abnf::cstss) 1)
             (cst-list-rep-matchp (nth 0 abnf::cstss)
                                  "conditional-expression"))))

    Theorem: cst-assignment-operator-conc1-matching

    (defthm cst-assignment-operator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"=\""))))

    Theorem: cst-assignment-operator-conc2-matching

    (defthm cst-assignment-operator-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"*=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"*=\""))))

    Theorem: cst-assignment-operator-conc3-matching

    (defthm cst-assignment-operator-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"/=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"/=\""))))

    Theorem: cst-assignment-operator-conc4-matching

    (defthm cst-assignment-operator-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"%=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"%=\""))))

    Theorem: cst-assignment-operator-conc5-matching

    (defthm cst-assignment-operator-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"+=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"+=\""))))

    Theorem: cst-assignment-operator-conc6-matching

    (defthm cst-assignment-operator-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"-=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"-=\""))))

    Theorem: cst-assignment-operator-conc7-matching

    (defthm cst-assignment-operator-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"<<=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"<<=\""))))

    Theorem: cst-assignment-operator-conc8-matching

    (defthm cst-assignment-operator-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\">>=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\">>=\""))))

    Theorem: cst-assignment-operator-conc9-matching

    (defthm cst-assignment-operator-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"&=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"&=\""))))

    Theorem: cst-assignment-operator-conc10-matching

    (defthm cst-assignment-operator-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"^=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"^=\""))))

    Theorem: cst-assignment-operator-conc11-matching

    (defthm cst-assignment-operator-conc11-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"|=\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"|=\""))))

    Theorem: cst-expression-conc-matching

    (defthm cst-expression-conc-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "assignment-expression")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "assignment-expression"))))

    Theorem: cst-constant-expression-conc-matching

    (defthm cst-constant-expression-conc-matching
     (implies
        (cst-list-list-conc-matchp abnf::cstss "conditional-expression")
        (and (equal (len abnf::cstss) 1)
             (cst-list-rep-matchp (nth 0 abnf::cstss)
                                  "conditional-expression"))))

    Theorem: cst-init-declarator-list-conc-matching

    (defthm cst-init-declarator-list-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "init-declarator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "init-declarator"))))

    Theorem: cst-init-declarator-conc1-matching

    (defthm cst-init-declarator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "declarator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "declarator"))))

    Theorem: cst-storage-class-specifier-conc-matching

    (defthm cst-storage-class-specifier-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"extern\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"extern\""))))

    Theorem: cst-type-specifier-conc1-matching

    (defthm cst-type-specifier-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"void\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"void\""))))

    Theorem: cst-type-specifier-conc2-matching

    (defthm cst-type-specifier-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"char\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"char\""))))

    Theorem: cst-type-specifier-conc3-matching

    (defthm cst-type-specifier-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"short\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"short\""))))

    Theorem: cst-type-specifier-conc4-matching

    (defthm cst-type-specifier-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"int\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"int\""))))

    Theorem: cst-type-specifier-conc5-matching

    (defthm cst-type-specifier-conc5-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"long\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"long\""))))

    Theorem: cst-type-specifier-conc6-matching

    (defthm cst-type-specifier-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"float\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"float\""))))

    Theorem: cst-type-specifier-conc7-matching

    (defthm cst-type-specifier-conc7-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"double\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"double\""))))

    Theorem: cst-type-specifier-conc8-matching

    (defthm cst-type-specifier-conc8-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"signed\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"signed\""))))

    Theorem: cst-type-specifier-conc9-matching

    (defthm cst-type-specifier-conc9-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"unsigned\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"unsigned\""))))

    Theorem: cst-type-specifier-conc10-matching

    (defthm cst-type-specifier-conc10-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"_Bool\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"_Bool\""))))

    Theorem: cst-type-specifier-conc11-matching

    (defthm cst-type-specifier-conc11-matching
      (implies (cst-list-list-conc-matchp
                    abnf::cstss "struct-or-union-specifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "struct-or-union-specifier"))))

    Theorem: cst-type-specifier-conc12-matching

    (defthm cst-type-specifier-conc12-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "enum-specifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "enum-specifier"))))

    Theorem: cst-type-specifier-conc13-matching

    (defthm cst-type-specifier-conc13-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "typedef-name")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "typedef-name"))))

    Theorem: cst-struct-or-union-conc1-matching

    (defthm cst-struct-or-union-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"struct\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"struct\""))))

    Theorem: cst-struct-or-union-conc2-matching

    (defthm cst-struct-or-union-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%s\"union\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%s\"union\""))))

    Theorem: cst-struct-declaration-list-conc1-matching

    (defthm cst-struct-declaration-list-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "struct-declaration")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "struct-declaration"))))

    Theorem: cst-struct-declarator-list-conc-matching

    (defthm cst-struct-declarator-list-conc-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "struct-declarator")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "struct-declarator"))))

    Theorem: cst-struct-declarator-conc-matching

    (defthm cst-struct-declarator-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "declarator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "declarator"))))

    Theorem: cst-direct-declarator-conc1-matching

    (defthm cst-direct-declarator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "identifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "identifier"))))

    Theorem: cst-pointer-conc1-matching

    (defthm cst-pointer-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "\"*\"")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "\"*\""))))

    Theorem: cst-parameter-type-list-conc-matching

    (defthm cst-parameter-type-list-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "parameter-list")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "parameter-list"))))

    Theorem: cst-parameter-list-conc1-matching

    (defthm cst-parameter-list-conc1-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "parameter-declaration")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "parameter-declaration"))))

    Theorem: cst-abstract-declarator-conc1-matching

    (defthm cst-abstract-declarator-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "pointer")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "pointer"))))

    Theorem: cst-typedef-name-conc-matching

    (defthm cst-typedef-name-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "identifier")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "identifier"))))

    Theorem: cst-initializer-conc1-matching

    (defthm cst-initializer-conc1-matching
     (implies
         (cst-list-list-conc-matchp abnf::cstss "assignment-expression")
         (and (equal (len abnf::cstss) 1)
              (cst-list-rep-matchp (nth 0 abnf::cstss)
                                   "assignment-expression"))))

    Theorem: cst-initializer-list-conc1-matching

    (defthm cst-initializer-list-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "initializer")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "initializer"))))

    Theorem: cst-statement-conc1-matching

    (defthm cst-statement-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "labeled-statement")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "labeled-statement"))))

    Theorem: cst-statement-conc2-matching

    (defthm cst-statement-conc2-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "compound-statement")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "compound-statement"))))

    Theorem: cst-statement-conc3-matching

    (defthm cst-statement-conc3-matching
     (implies
          (cst-list-list-conc-matchp abnf::cstss "expression-statement")
          (and (equal (len abnf::cstss) 1)
               (cst-list-rep-matchp (nth 0 abnf::cstss)
                                    "expression-statement"))))

    Theorem: cst-statement-conc4-matching

    (defthm cst-statement-conc4-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "selection-statement")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "selection-statement"))))

    Theorem: cst-statement-conc5-matching

    (defthm cst-statement-conc5-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "iteration-statement")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "iteration-statement"))))

    Theorem: cst-statement-conc6-matching

    (defthm cst-statement-conc6-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "jump-statement")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "jump-statement"))))

    Theorem: cst-block-item-list-conc1-matching

    (defthm cst-block-item-list-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "block-item")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "block-item"))))

    Theorem: cst-block-item-conc1-matching

    (defthm cst-block-item-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "declaration")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "declaration"))))

    Theorem: cst-block-item-conc2-matching

    (defthm cst-block-item-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "statement")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "statement"))))

    Theorem: cst-translation-unit-conc1-matching

    (defthm cst-translation-unit-conc1-matching
     (implies
          (cst-list-list-conc-matchp abnf::cstss "external-declaration")
          (and (equal (len abnf::cstss) 1)
               (cst-list-rep-matchp (nth 0 abnf::cstss)
                                    "external-declaration"))))

    Theorem: cst-external-declaration-conc1-matching

    (defthm cst-external-declaration-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "function-definition")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "function-definition"))))

    Theorem: cst-external-declaration-conc2-matching

    (defthm cst-external-declaration-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "declaration")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "declaration"))))

    Theorem: cst-declaration-list-conc1-matching

    (defthm cst-declaration-list-conc1-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "declaration")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "declaration"))))

    Theorem: cst-horizontal-tab-conc-rep-matching

    (defthm cst-horizontal-tab-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x9")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "%x9"))))

    Theorem: cst-line-feed-conc-rep-matching

    (defthm cst-line-feed-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xA")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "%xA"))))

    Theorem: cst-vertical-tab-conc-rep-matching

    (defthm cst-vertical-tab-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xB")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "%xB"))))

    Theorem: cst-form-feed-conc-rep-matching

    (defthm cst-form-feed-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xC")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "%xC"))))

    Theorem: cst-carriage-return-conc-rep-matching

    (defthm cst-carriage-return-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xD")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "%xD"))))

    Theorem: cst-space-conc-rep-matching

    (defthm cst-space-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x20")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x20"))))

    Theorem: cst-double-quote-conc-rep-matching

    (defthm cst-double-quote-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x22")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x22"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc1-rep-matching

    (defthm cst-not-line-feed-or-carriage-return-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x0-9")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x0-9"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc2-rep-matching

    (defthm cst-not-line-feed-or-carriage-return-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xB-C")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%xB-C"))))

    Theorem: cst-not-line-feed-or-carriage-return-conc3-rep-matching

    (defthm cst-not-line-feed-or-carriage-return-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xE-7F")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%xE-7F"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc1-rep-matching

    (defthm
        cst-not-star-or-line-feed-or-carriage-return-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x0-9")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x0-9"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc2-rep-matching

    (defthm
        cst-not-star-or-line-feed-or-carriage-return-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xB-C")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%xB-C"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc3-rep-matching

    (defthm
        cst-not-star-or-line-feed-or-carriage-return-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%xE-29")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%xE-29"))))

    Theorem: cst-not-star-or-line-feed-or-carriage-return-conc4-rep-matching

    (defthm
        cst-not-star-or-line-feed-or-carriage-return-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x2B-7F")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x2B-7F"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc1-rep-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc1-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "%x0-9")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "%x0-9"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc2-rep-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc2-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "%xB-C")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "%xB-C"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc3-rep-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc3-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "%xE-29")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "%xE-29"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc4-rep-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc4-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "%x2B-2E")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "%x2B-2E"))))

    Theorem: cst-not-star-or-slash-or-line-feed-or-carriage-return-conc5-rep-matching

    (defthm
     cst-not-star-or-slash-or-line-feed-or-carriage-return-conc5-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "%x30-7F")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "%x30-7F"))))

    Theorem: cst-character-conc-rep-matching

    (defthm cst-character-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x0-7F")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x0-7F"))))

    Theorem: cst-token-conc1-rep-matching

    (defthm cst-token-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "keyword")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "keyword"))))

    Theorem: cst-token-conc2-rep-matching

    (defthm cst-token-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier"))))

    Theorem: cst-token-conc3-rep-matching

    (defthm cst-token-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "constant")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "constant"))))

    Theorem: cst-token-conc4-rep-matching

    (defthm cst-token-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "punctuator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "punctuator"))))

    Theorem: cst-keyword-conc1-rep-matching

    (defthm cst-keyword-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"auto\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"auto\""))))

    Theorem: cst-keyword-conc2-rep-matching

    (defthm cst-keyword-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"break\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"break\""))))

    Theorem: cst-keyword-conc3-rep-matching

    (defthm cst-keyword-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"case\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"case\""))))

    Theorem: cst-keyword-conc4-rep-matching

    (defthm cst-keyword-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"char\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"char\""))))

    Theorem: cst-keyword-conc5-rep-matching

    (defthm cst-keyword-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"const\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"const\""))))

    Theorem: cst-keyword-conc6-rep-matching

    (defthm cst-keyword-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"continue\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"continue\""))))

    Theorem: cst-keyword-conc7-rep-matching

    (defthm cst-keyword-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"default\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"default\""))))

    Theorem: cst-keyword-conc8-rep-matching

    (defthm cst-keyword-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"do\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"do\""))))

    Theorem: cst-keyword-conc9-rep-matching

    (defthm cst-keyword-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"double\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"double\""))))

    Theorem: cst-keyword-conc10-rep-matching

    (defthm cst-keyword-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"else\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"else\""))))

    Theorem: cst-keyword-conc11-rep-matching

    (defthm cst-keyword-conc11-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"enum\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"enum\""))))

    Theorem: cst-keyword-conc12-rep-matching

    (defthm cst-keyword-conc12-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"extern\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"extern\""))))

    Theorem: cst-keyword-conc13-rep-matching

    (defthm cst-keyword-conc13-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"float\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"float\""))))

    Theorem: cst-keyword-conc14-rep-matching

    (defthm cst-keyword-conc14-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"for\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"for\""))))

    Theorem: cst-keyword-conc15-rep-matching

    (defthm cst-keyword-conc15-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"goto\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"goto\""))))

    Theorem: cst-keyword-conc16-rep-matching

    (defthm cst-keyword-conc16-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"if\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"if\""))))

    Theorem: cst-keyword-conc17-rep-matching

    (defthm cst-keyword-conc17-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"inline\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"inline\""))))

    Theorem: cst-keyword-conc18-rep-matching

    (defthm cst-keyword-conc18-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"int\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"int\""))))

    Theorem: cst-keyword-conc19-rep-matching

    (defthm cst-keyword-conc19-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"long\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"long\""))))

    Theorem: cst-keyword-conc20-rep-matching

    (defthm cst-keyword-conc20-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"register\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"register\""))))

    Theorem: cst-keyword-conc21-rep-matching

    (defthm cst-keyword-conc21-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"restrict\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"restrict\""))))

    Theorem: cst-keyword-conc22-rep-matching

    (defthm cst-keyword-conc22-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"return\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"return\""))))

    Theorem: cst-keyword-conc23-rep-matching

    (defthm cst-keyword-conc23-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"short\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"short\""))))

    Theorem: cst-keyword-conc24-rep-matching

    (defthm cst-keyword-conc24-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"signed\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"signed\""))))

    Theorem: cst-keyword-conc25-rep-matching

    (defthm cst-keyword-conc25-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"sizeof\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"sizeof\""))))

    Theorem: cst-keyword-conc26-rep-matching

    (defthm cst-keyword-conc26-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"static\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"static\""))))

    Theorem: cst-keyword-conc27-rep-matching

    (defthm cst-keyword-conc27-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"struct\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"struct\""))))

    Theorem: cst-keyword-conc28-rep-matching

    (defthm cst-keyword-conc28-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"switch\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"switch\""))))

    Theorem: cst-keyword-conc29-rep-matching

    (defthm cst-keyword-conc29-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"typedef\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"typedef\""))))

    Theorem: cst-keyword-conc30-rep-matching

    (defthm cst-keyword-conc30-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"union\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"union\""))))

    Theorem: cst-keyword-conc31-rep-matching

    (defthm cst-keyword-conc31-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"unsigned\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"unsigned\""))))

    Theorem: cst-keyword-conc32-rep-matching

    (defthm cst-keyword-conc32-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"void\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"void\""))))

    Theorem: cst-keyword-conc33-rep-matching

    (defthm cst-keyword-conc33-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"volatile\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"volatile\""))))

    Theorem: cst-keyword-conc34-rep-matching

    (defthm cst-keyword-conc34-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"while\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"while\""))))

    Theorem: cst-keyword-conc35-rep-matching

    (defthm cst-keyword-conc35-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Alignas\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Alignas\""))))

    Theorem: cst-keyword-conc36-rep-matching

    (defthm cst-keyword-conc36-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Alignof\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Alignof\""))))

    Theorem: cst-keyword-conc37-rep-matching

    (defthm cst-keyword-conc37-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Atomic\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Atomic\""))))

    Theorem: cst-keyword-conc38-rep-matching

    (defthm cst-keyword-conc38-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Bool\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Bool\""))))

    Theorem: cst-keyword-conc39-rep-matching

    (defthm cst-keyword-conc39-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Complex\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Complex\""))))

    Theorem: cst-keyword-conc40-rep-matching

    (defthm cst-keyword-conc40-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Generic\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Generic\""))))

    Theorem: cst-keyword-conc41-rep-matching

    (defthm cst-keyword-conc41-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Imaginary\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Imaginary\""))))

    Theorem: cst-keyword-conc42-rep-matching

    (defthm cst-keyword-conc42-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Noreturn\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Noreturn\""))))

    Theorem: cst-keyword-conc43-rep-matching

    (defthm cst-keyword-conc43-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Static_assert\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Static_assert\""))))

    Theorem: cst-keyword-conc44-rep-matching

    (defthm cst-keyword-conc44-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Thread_local\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Thread_local\""))))

    Theorem: cst-identifier-conc1-rep-matching

    (defthm cst-identifier-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier-nondigit")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier-nondigit"))))

    Theorem: cst-identifier-nondigit-conc-rep-matching

    (defthm cst-identifier-nondigit-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "nondigit")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "nondigit"))))

    Theorem: cst-nondigit-conc1-rep-matching

    (defthm cst-nondigit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"_\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"_\""))))

    Theorem: cst-nondigit-conc2-rep-matching

    (defthm cst-nondigit-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"a\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"a\""))))

    Theorem: cst-nondigit-conc3-rep-matching

    (defthm cst-nondigit-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"b\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"b\""))))

    Theorem: cst-nondigit-conc4-rep-matching

    (defthm cst-nondigit-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"c\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"c\""))))

    Theorem: cst-nondigit-conc5-rep-matching

    (defthm cst-nondigit-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"d\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"d\""))))

    Theorem: cst-nondigit-conc6-rep-matching

    (defthm cst-nondigit-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"e\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"e\""))))

    Theorem: cst-nondigit-conc7-rep-matching

    (defthm cst-nondigit-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"f\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"f\""))))

    Theorem: cst-nondigit-conc8-rep-matching

    (defthm cst-nondigit-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"g\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"g\""))))

    Theorem: cst-nondigit-conc9-rep-matching

    (defthm cst-nondigit-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"h\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"h\""))))

    Theorem: cst-nondigit-conc10-rep-matching

    (defthm cst-nondigit-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"i\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"i\""))))

    Theorem: cst-nondigit-conc11-rep-matching

    (defthm cst-nondigit-conc11-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"j\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"j\""))))

    Theorem: cst-nondigit-conc12-rep-matching

    (defthm cst-nondigit-conc12-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"k\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"k\""))))

    Theorem: cst-nondigit-conc13-rep-matching

    (defthm cst-nondigit-conc13-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"l\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"l\""))))

    Theorem: cst-nondigit-conc14-rep-matching

    (defthm cst-nondigit-conc14-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"m\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"m\""))))

    Theorem: cst-nondigit-conc15-rep-matching

    (defthm cst-nondigit-conc15-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"n\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"n\""))))

    Theorem: cst-nondigit-conc16-rep-matching

    (defthm cst-nondigit-conc16-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"o\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"o\""))))

    Theorem: cst-nondigit-conc17-rep-matching

    (defthm cst-nondigit-conc17-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"p\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"p\""))))

    Theorem: cst-nondigit-conc18-rep-matching

    (defthm cst-nondigit-conc18-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"q\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"q\""))))

    Theorem: cst-nondigit-conc19-rep-matching

    (defthm cst-nondigit-conc19-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"r\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"r\""))))

    Theorem: cst-nondigit-conc20-rep-matching

    (defthm cst-nondigit-conc20-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"s\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"s\""))))

    Theorem: cst-nondigit-conc21-rep-matching

    (defthm cst-nondigit-conc21-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"t\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"t\""))))

    Theorem: cst-nondigit-conc22-rep-matching

    (defthm cst-nondigit-conc22-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"u\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"u\""))))

    Theorem: cst-nondigit-conc23-rep-matching

    (defthm cst-nondigit-conc23-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"v\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"v\""))))

    Theorem: cst-nondigit-conc24-rep-matching

    (defthm cst-nondigit-conc24-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"w\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"w\""))))

    Theorem: cst-nondigit-conc25-rep-matching

    (defthm cst-nondigit-conc25-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"x\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"x\""))))

    Theorem: cst-nondigit-conc26-rep-matching

    (defthm cst-nondigit-conc26-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"y\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"y\""))))

    Theorem: cst-nondigit-conc27-rep-matching

    (defthm cst-nondigit-conc27-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"z\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"z\""))))

    Theorem: cst-digit-conc1-rep-matching

    (defthm cst-digit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"0\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"0\""))))

    Theorem: cst-digit-conc2-rep-matching

    (defthm cst-digit-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"1\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"1\""))))

    Theorem: cst-digit-conc3-rep-matching

    (defthm cst-digit-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"2\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"2\""))))

    Theorem: cst-digit-conc4-rep-matching

    (defthm cst-digit-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"3\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"3\""))))

    Theorem: cst-digit-conc5-rep-matching

    (defthm cst-digit-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"4\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"4\""))))

    Theorem: cst-digit-conc6-rep-matching

    (defthm cst-digit-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"5\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"5\""))))

    Theorem: cst-digit-conc7-rep-matching

    (defthm cst-digit-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"6\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"6\""))))

    Theorem: cst-digit-conc8-rep-matching

    (defthm cst-digit-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"7\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"7\""))))

    Theorem: cst-digit-conc9-rep-matching

    (defthm cst-digit-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"8\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"8\""))))

    Theorem: cst-digit-conc10-rep-matching

    (defthm cst-digit-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"9\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"9\""))))

    Theorem: cst-constant-conc1-rep-matching

    (defthm cst-constant-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "integer-constant")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "integer-constant"))))

    Theorem: cst-constant-conc2-rep-matching

    (defthm cst-constant-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "enumeration-constant")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "enumeration-constant"))))

    Theorem: cst-decimal-constant-conc1-rep-matching

    (defthm cst-decimal-constant-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "nonzero-digit")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "nonzero-digit"))))

    Theorem: cst-octal-constant-conc1-rep-matching

    (defthm cst-octal-constant-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"0\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"0\""))))

    Theorem: cst-hexadecimal-prefix-conc-rep-matching

    (defthm cst-hexadecimal-prefix-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"0x\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"0x\""))))

    Theorem: cst-nonzero-digit-conc1-rep-matching

    (defthm cst-nonzero-digit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"1\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"1\""))))

    Theorem: cst-nonzero-digit-conc2-rep-matching

    (defthm cst-nonzero-digit-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"2\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"2\""))))

    Theorem: cst-nonzero-digit-conc3-rep-matching

    (defthm cst-nonzero-digit-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"3\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"3\""))))

    Theorem: cst-nonzero-digit-conc4-rep-matching

    (defthm cst-nonzero-digit-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"4\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"4\""))))

    Theorem: cst-nonzero-digit-conc5-rep-matching

    (defthm cst-nonzero-digit-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"5\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"5\""))))

    Theorem: cst-nonzero-digit-conc6-rep-matching

    (defthm cst-nonzero-digit-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"6\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"6\""))))

    Theorem: cst-nonzero-digit-conc7-rep-matching

    (defthm cst-nonzero-digit-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"7\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"7\""))))

    Theorem: cst-nonzero-digit-conc8-rep-matching

    (defthm cst-nonzero-digit-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"8\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"8\""))))

    Theorem: cst-nonzero-digit-conc9-rep-matching

    (defthm cst-nonzero-digit-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"9\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"9\""))))

    Theorem: cst-octal-digit-conc1-rep-matching

    (defthm cst-octal-digit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"0\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"0\""))))

    Theorem: cst-octal-digit-conc2-rep-matching

    (defthm cst-octal-digit-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"1\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"1\""))))

    Theorem: cst-octal-digit-conc3-rep-matching

    (defthm cst-octal-digit-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"2\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"2\""))))

    Theorem: cst-octal-digit-conc4-rep-matching

    (defthm cst-octal-digit-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"3\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"3\""))))

    Theorem: cst-octal-digit-conc5-rep-matching

    (defthm cst-octal-digit-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"4\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"4\""))))

    Theorem: cst-octal-digit-conc6-rep-matching

    (defthm cst-octal-digit-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"5\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"5\""))))

    Theorem: cst-octal-digit-conc7-rep-matching

    (defthm cst-octal-digit-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"6\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"6\""))))

    Theorem: cst-octal-digit-conc8-rep-matching

    (defthm cst-octal-digit-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"7\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"7\""))))

    Theorem: cst-hexadecimal-digit-conc1-rep-matching

    (defthm cst-hexadecimal-digit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"0\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"0\""))))

    Theorem: cst-hexadecimal-digit-conc2-rep-matching

    (defthm cst-hexadecimal-digit-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"1\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"1\""))))

    Theorem: cst-hexadecimal-digit-conc3-rep-matching

    (defthm cst-hexadecimal-digit-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"2\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"2\""))))

    Theorem: cst-hexadecimal-digit-conc4-rep-matching

    (defthm cst-hexadecimal-digit-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"3\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"3\""))))

    Theorem: cst-hexadecimal-digit-conc5-rep-matching

    (defthm cst-hexadecimal-digit-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"4\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"4\""))))

    Theorem: cst-hexadecimal-digit-conc6-rep-matching

    (defthm cst-hexadecimal-digit-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"5\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"5\""))))

    Theorem: cst-hexadecimal-digit-conc7-rep-matching

    (defthm cst-hexadecimal-digit-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"6\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"6\""))))

    Theorem: cst-hexadecimal-digit-conc8-rep-matching

    (defthm cst-hexadecimal-digit-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"7\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"7\""))))

    Theorem: cst-hexadecimal-digit-conc9-rep-matching

    (defthm cst-hexadecimal-digit-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"a\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"a\""))))

    Theorem: cst-hexadecimal-digit-conc10-rep-matching

    (defthm cst-hexadecimal-digit-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"b\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"b\""))))

    Theorem: cst-hexadecimal-digit-conc11-rep-matching

    (defthm cst-hexadecimal-digit-conc11-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"c\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"c\""))))

    Theorem: cst-hexadecimal-digit-conc12-rep-matching

    (defthm cst-hexadecimal-digit-conc12-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"d\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"d\""))))

    Theorem: cst-hexadecimal-digit-conc13-rep-matching

    (defthm cst-hexadecimal-digit-conc13-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"e\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"e\""))))

    Theorem: cst-hexadecimal-digit-conc14-rep-matching

    (defthm cst-hexadecimal-digit-conc14-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"f\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"f\""))))

    Theorem: cst-unsigned-suffix-conc-rep-matching

    (defthm cst-unsigned-suffix-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"u\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"u\""))))

    Theorem: cst-long-suffix-conc-rep-matching

    (defthm cst-long-suffix-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%i\"l\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%i\"l\""))))

    Theorem: cst-long-long-suffix-conc1-rep-matching

    (defthm cst-long-long-suffix-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"ll\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"ll\""))))

    Theorem: cst-long-long-suffix-conc2-rep-matching

    (defthm cst-long-long-suffix-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"LL\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"LL\""))))

    Theorem: cst-enumeration-constant-conc-rep-matching

    (defthm cst-enumeration-constant-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier"))))

    Theorem: cst-punctuator-conc1-rep-matching

    (defthm cst-punctuator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"[\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"[\""))))

    Theorem: cst-punctuator-conc2-rep-matching

    (defthm cst-punctuator-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"]\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"]\""))))

    Theorem: cst-punctuator-conc3-rep-matching

    (defthm cst-punctuator-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"(\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"(\""))))

    Theorem: cst-punctuator-conc4-rep-matching

    (defthm cst-punctuator-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\")\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\")\""))))

    Theorem: cst-punctuator-conc5-rep-matching

    (defthm cst-punctuator-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"{\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"{\""))))

    Theorem: cst-punctuator-conc6-rep-matching

    (defthm cst-punctuator-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"}\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"}\""))))

    Theorem: cst-punctuator-conc7-rep-matching

    (defthm cst-punctuator-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\".\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\".\""))))

    Theorem: cst-punctuator-conc8-rep-matching

    (defthm cst-punctuator-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"->\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"->\""))))

    Theorem: cst-punctuator-conc9-rep-matching

    (defthm cst-punctuator-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"++\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"++\""))))

    Theorem: cst-punctuator-conc10-rep-matching

    (defthm cst-punctuator-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"--\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"--\""))))

    Theorem: cst-punctuator-conc11-rep-matching

    (defthm cst-punctuator-conc11-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"&\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"&\""))))

    Theorem: cst-punctuator-conc12-rep-matching

    (defthm cst-punctuator-conc12-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"*\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"*\""))))

    Theorem: cst-punctuator-conc13-rep-matching

    (defthm cst-punctuator-conc13-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"+\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"+\""))))

    Theorem: cst-punctuator-conc14-rep-matching

    (defthm cst-punctuator-conc14-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"-\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"-\""))))

    Theorem: cst-punctuator-conc15-rep-matching

    (defthm cst-punctuator-conc15-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"~\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"~\""))))

    Theorem: cst-punctuator-conc16-rep-matching

    (defthm cst-punctuator-conc16-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"!\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"!\""))))

    Theorem: cst-punctuator-conc17-rep-matching

    (defthm cst-punctuator-conc17-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"/\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"/\""))))

    Theorem: cst-punctuator-conc18-rep-matching

    (defthm cst-punctuator-conc18-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"%\""))))

    Theorem: cst-punctuator-conc19-rep-matching

    (defthm cst-punctuator-conc19-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<<\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<<\""))))

    Theorem: cst-punctuator-conc20-rep-matching

    (defthm cst-punctuator-conc20-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\">>\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\">>\""))))

    Theorem: cst-punctuator-conc21-rep-matching

    (defthm cst-punctuator-conc21-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"<\""))))

    Theorem: cst-punctuator-conc22-rep-matching

    (defthm cst-punctuator-conc22-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\">\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\">\""))))

    Theorem: cst-punctuator-conc23-rep-matching

    (defthm cst-punctuator-conc23-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<=\""))))

    Theorem: cst-punctuator-conc24-rep-matching

    (defthm cst-punctuator-conc24-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\">=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\">=\""))))

    Theorem: cst-punctuator-conc25-rep-matching

    (defthm cst-punctuator-conc25-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"==\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"==\""))))

    Theorem: cst-punctuator-conc26-rep-matching

    (defthm cst-punctuator-conc26-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"!=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"!=\""))))

    Theorem: cst-punctuator-conc27-rep-matching

    (defthm cst-punctuator-conc27-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"^\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"^\""))))

    Theorem: cst-punctuator-conc28-rep-matching

    (defthm cst-punctuator-conc28-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"|\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"|\""))))

    Theorem: cst-punctuator-conc29-rep-matching

    (defthm cst-punctuator-conc29-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"&&\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"&&\""))))

    Theorem: cst-punctuator-conc30-rep-matching

    (defthm cst-punctuator-conc30-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"||\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"||\""))))

    Theorem: cst-punctuator-conc31-rep-matching

    (defthm cst-punctuator-conc31-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"?\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"?\""))))

    Theorem: cst-punctuator-conc32-rep-matching

    (defthm cst-punctuator-conc32-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\":\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\":\""))))

    Theorem: cst-punctuator-conc33-rep-matching

    (defthm cst-punctuator-conc33-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\";\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\";\""))))

    Theorem: cst-punctuator-conc34-rep-matching

    (defthm cst-punctuator-conc34-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"...\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"...\""))))

    Theorem: cst-punctuator-conc35-rep-matching

    (defthm cst-punctuator-conc35-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"=\""))))

    Theorem: cst-punctuator-conc36-rep-matching

    (defthm cst-punctuator-conc36-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"*=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"*=\""))))

    Theorem: cst-punctuator-conc37-rep-matching

    (defthm cst-punctuator-conc37-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"/=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"/=\""))))

    Theorem: cst-punctuator-conc38-rep-matching

    (defthm cst-punctuator-conc38-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"%=\""))))

    Theorem: cst-punctuator-conc39-rep-matching

    (defthm cst-punctuator-conc39-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"+=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"+=\""))))

    Theorem: cst-punctuator-conc40-rep-matching

    (defthm cst-punctuator-conc40-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"-=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"-=\""))))

    Theorem: cst-punctuator-conc41-rep-matching

    (defthm cst-punctuator-conc41-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<<=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<<=\""))))

    Theorem: cst-punctuator-conc42-rep-matching

    (defthm cst-punctuator-conc42-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\">>=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\">>=\""))))

    Theorem: cst-punctuator-conc43-rep-matching

    (defthm cst-punctuator-conc43-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"&=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"&=\""))))

    Theorem: cst-punctuator-conc44-rep-matching

    (defthm cst-punctuator-conc44-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"^=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"^=\""))))

    Theorem: cst-punctuator-conc45-rep-matching

    (defthm cst-punctuator-conc45-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"|=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"|=\""))))

    Theorem: cst-punctuator-conc46-rep-matching

    (defthm cst-punctuator-conc46-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\",\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\",\""))))

    Theorem: cst-punctuator-conc47-rep-matching

    (defthm cst-punctuator-conc47-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"#\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"#\""))))

    Theorem: cst-punctuator-conc48-rep-matching

    (defthm cst-punctuator-conc48-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"##\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"##\""))))

    Theorem: cst-punctuator-conc49-rep-matching

    (defthm cst-punctuator-conc49-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<:\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<:\""))))

    Theorem: cst-punctuator-conc50-rep-matching

    (defthm cst-punctuator-conc50-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\":>\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\":>\""))))

    Theorem: cst-punctuator-conc51-rep-matching

    (defthm cst-punctuator-conc51-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<%\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<%\""))))

    Theorem: cst-punctuator-conc52-rep-matching

    (defthm cst-punctuator-conc52-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%>\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"%>\""))))

    Theorem: cst-punctuator-conc53-rep-matching

    (defthm cst-punctuator-conc53-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%:\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"%:\""))))

    Theorem: cst-punctuator-conc54-rep-matching

    (defthm cst-punctuator-conc54-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%:%:\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"%:%:\""))))

    Theorem: cst-comment-conc1-rep-matching

    (defthm cst-comment-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "block-comment")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "block-comment"))))

    Theorem: cst-comment-conc2-rep-matching

    (defthm cst-comment-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "line-comment")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "line-comment"))))

    Theorem: cst-rest-of-block-comment-after-star-conc1-rep-matching

    (defthm cst-rest-of-block-comment-after-star-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"/\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"/\""))))

    Theorem: cst-white-space-conc1-rep-matching

    (defthm cst-white-space-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "space")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "space"))))

    Theorem: cst-white-space-conc2-rep-matching

    (defthm cst-white-space-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "horizontal-tab")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "horizontal-tab"))))

    Theorem: cst-white-space-conc3-rep-matching

    (defthm cst-white-space-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "vertical-tab")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "vertical-tab"))))

    Theorem: cst-white-space-conc4-rep-matching

    (defthm cst-white-space-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "form-feed")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "form-feed"))))

    Theorem: cst-white-space-conc5-rep-matching

    (defthm cst-white-space-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "new-line")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "new-line"))))

    Theorem: cst-lexeme-conc1-rep-matching

    (defthm cst-lexeme-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "token")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "token"))))

    Theorem: cst-lexeme-conc2-rep-matching

    (defthm cst-lexeme-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "comment")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "comment"))))

    Theorem: cst-lexeme-conc3-rep-matching

    (defthm cst-lexeme-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "white-space")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "white-space"))))

    Theorem: cst-primary-expression-conc1-rep-matching

    (defthm cst-primary-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier"))))

    Theorem: cst-postfix-expression-conc1-rep-matching

    (defthm cst-postfix-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "primary-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "primary-expression"))))

    Theorem: cst-argument-expression-list-conc1-rep-matching

    (defthm cst-argument-expression-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "assignment-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "assignment-expression"))))

    Theorem: cst-unary-expression-conc1-rep-matching

    (defthm cst-unary-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "postfix-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "postfix-expression"))))

    Theorem: cst-unary-operator-conc1-rep-matching

    (defthm cst-unary-operator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"&\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"&\""))))

    Theorem: cst-unary-operator-conc2-rep-matching

    (defthm cst-unary-operator-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"*\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"*\""))))

    Theorem: cst-unary-operator-conc3-rep-matching

    (defthm cst-unary-operator-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"+\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"+\""))))

    Theorem: cst-unary-operator-conc4-rep-matching

    (defthm cst-unary-operator-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"-\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"-\""))))

    Theorem: cst-unary-operator-conc5-rep-matching

    (defthm cst-unary-operator-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"~\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"~\""))))

    Theorem: cst-unary-operator-conc6-rep-matching

    (defthm cst-unary-operator-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"!\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"!\""))))

    Theorem: cst-cast-expression-conc1-rep-matching

    (defthm cst-cast-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "unary-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "unary-expression"))))

    Theorem: cst-multiplicative-expression-conc1-rep-matching

    (defthm cst-multiplicative-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "cast-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "cast-expression"))))

    Theorem: cst-additive-expression-conc1-rep-matching

    (defthm cst-additive-expression-conc1-rep-matching
      (implies
           (cst-list-rep-matchp abnf::csts "multiplicative-expression")
           (and (equal (len abnf::csts) 1)
                (cst-matchp (nth 0 abnf::csts)
                            "multiplicative-expression"))))

    Theorem: cst-shift-expression-conc1-rep-matching

    (defthm cst-shift-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "additive-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "additive-expression"))))

    Theorem: cst-relational-expression-conc1-rep-matching

    (defthm cst-relational-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "shift-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "shift-expression"))))

    Theorem: cst-equality-expression-conc1-rep-matching

    (defthm cst-equality-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "relational-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "relational-expression"))))

    Theorem: cst-and-expression-conc1-rep-matching

    (defthm cst-and-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "equality-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "equality-expression"))))

    Theorem: cst-exclusive-or-expression-conc1-rep-matching

    (defthm cst-exclusive-or-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "and-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "and-expression"))))

    Theorem: cst-inclusive-or-expression-conc1-rep-matching

    (defthm cst-inclusive-or-expression-conc1-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "exclusive-or-expression")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "exclusive-or-expression"))))

    Theorem: cst-logical-and-expression-conc1-rep-matching

    (defthm cst-logical-and-expression-conc1-rep-matching
     (implies (cst-list-rep-matchp abnf::csts "inclusive-or-expression")
              (and (equal (len abnf::csts) 1)
                   (cst-matchp (nth 0 abnf::csts)
                               "inclusive-or-expression"))))

    Theorem: cst-logical-or-expression-conc1-rep-matching

    (defthm cst-logical-or-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "logical-and-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "logical-and-expression"))))

    Theorem: cst-conditional-expression-conc1-rep-matching

    (defthm cst-conditional-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "logical-or-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "logical-or-expression"))))

    Theorem: cst-assignment-expression-conc1-rep-matching

    (defthm cst-assignment-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "conditional-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "conditional-expression"))))

    Theorem: cst-assignment-operator-conc1-rep-matching

    (defthm cst-assignment-operator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"=\""))))

    Theorem: cst-assignment-operator-conc2-rep-matching

    (defthm cst-assignment-operator-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"*=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"*=\""))))

    Theorem: cst-assignment-operator-conc3-rep-matching

    (defthm cst-assignment-operator-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"/=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"/=\""))))

    Theorem: cst-assignment-operator-conc4-rep-matching

    (defthm cst-assignment-operator-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"%=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"%=\""))))

    Theorem: cst-assignment-operator-conc5-rep-matching

    (defthm cst-assignment-operator-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"+=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"+=\""))))

    Theorem: cst-assignment-operator-conc6-rep-matching

    (defthm cst-assignment-operator-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"-=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"-=\""))))

    Theorem: cst-assignment-operator-conc7-rep-matching

    (defthm cst-assignment-operator-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"<<=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"<<=\""))))

    Theorem: cst-assignment-operator-conc8-rep-matching

    (defthm cst-assignment-operator-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\">>=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\">>=\""))))

    Theorem: cst-assignment-operator-conc9-rep-matching

    (defthm cst-assignment-operator-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"&=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"&=\""))))

    Theorem: cst-assignment-operator-conc10-rep-matching

    (defthm cst-assignment-operator-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"^=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"^=\""))))

    Theorem: cst-assignment-operator-conc11-rep-matching

    (defthm cst-assignment-operator-conc11-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"|=\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "\"|=\""))))

    Theorem: cst-expression-conc-rep-matching

    (defthm cst-expression-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "assignment-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "assignment-expression"))))

    Theorem: cst-constant-expression-conc-rep-matching

    (defthm cst-constant-expression-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "conditional-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "conditional-expression"))))

    Theorem: cst-init-declarator-list-conc-rep-matching

    (defthm cst-init-declarator-list-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "init-declarator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "init-declarator"))))

    Theorem: cst-init-declarator-conc1-rep-matching

    (defthm cst-init-declarator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "declarator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "declarator"))))

    Theorem: cst-storage-class-specifier-conc-rep-matching

    (defthm cst-storage-class-specifier-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"extern\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"extern\""))))

    Theorem: cst-type-specifier-conc1-rep-matching

    (defthm cst-type-specifier-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"void\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"void\""))))

    Theorem: cst-type-specifier-conc2-rep-matching

    (defthm cst-type-specifier-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"char\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"char\""))))

    Theorem: cst-type-specifier-conc3-rep-matching

    (defthm cst-type-specifier-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"short\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"short\""))))

    Theorem: cst-type-specifier-conc4-rep-matching

    (defthm cst-type-specifier-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"int\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"int\""))))

    Theorem: cst-type-specifier-conc5-rep-matching

    (defthm cst-type-specifier-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"long\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"long\""))))

    Theorem: cst-type-specifier-conc6-rep-matching

    (defthm cst-type-specifier-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"float\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"float\""))))

    Theorem: cst-type-specifier-conc7-rep-matching

    (defthm cst-type-specifier-conc7-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"double\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"double\""))))

    Theorem: cst-type-specifier-conc8-rep-matching

    (defthm cst-type-specifier-conc8-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"signed\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"signed\""))))

    Theorem: cst-type-specifier-conc9-rep-matching

    (defthm cst-type-specifier-conc9-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"unsigned\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"unsigned\""))))

    Theorem: cst-type-specifier-conc10-rep-matching

    (defthm cst-type-specifier-conc10-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"_Bool\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"_Bool\""))))

    Theorem: cst-type-specifier-conc11-rep-matching

    (defthm cst-type-specifier-conc11-rep-matching
      (implies
           (cst-list-rep-matchp abnf::csts "struct-or-union-specifier")
           (and (equal (len abnf::csts) 1)
                (cst-matchp (nth 0 abnf::csts)
                            "struct-or-union-specifier"))))

    Theorem: cst-type-specifier-conc12-rep-matching

    (defthm cst-type-specifier-conc12-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "enum-specifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "enum-specifier"))))

    Theorem: cst-type-specifier-conc13-rep-matching

    (defthm cst-type-specifier-conc13-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "typedef-name")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "typedef-name"))))

    Theorem: cst-struct-or-union-conc1-rep-matching

    (defthm cst-struct-or-union-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"struct\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"struct\""))))

    Theorem: cst-struct-or-union-conc2-rep-matching

    (defthm cst-struct-or-union-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%s\"union\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%s\"union\""))))

    Theorem: cst-struct-declaration-list-conc1-rep-matching

    (defthm cst-struct-declaration-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "struct-declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "struct-declaration"))))

    Theorem: cst-struct-declarator-list-conc-rep-matching

    (defthm cst-struct-declarator-list-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "struct-declarator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "struct-declarator"))))

    Theorem: cst-struct-declarator-conc-rep-matching

    (defthm cst-struct-declarator-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "declarator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "declarator"))))

    Theorem: cst-direct-declarator-conc1-rep-matching

    (defthm cst-direct-declarator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier"))))

    Theorem: cst-pointer-conc1-rep-matching

    (defthm cst-pointer-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"*\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"*\""))))

    Theorem: cst-parameter-type-list-conc-rep-matching

    (defthm cst-parameter-type-list-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "parameter-list")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "parameter-list"))))

    Theorem: cst-parameter-list-conc1-rep-matching

    (defthm cst-parameter-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "parameter-declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "parameter-declaration"))))

    Theorem: cst-abstract-declarator-conc1-rep-matching

    (defthm cst-abstract-declarator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "pointer")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "pointer"))))

    Theorem: cst-typedef-name-conc-rep-matching

    (defthm cst-typedef-name-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "identifier")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "identifier"))))

    Theorem: cst-initializer-conc1-rep-matching

    (defthm cst-initializer-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "assignment-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "assignment-expression"))))

    Theorem: cst-initializer-list-conc1-rep-matching

    (defthm cst-initializer-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "initializer")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "initializer"))))

    Theorem: cst-statement-conc1-rep-matching

    (defthm cst-statement-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "labeled-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "labeled-statement"))))

    Theorem: cst-statement-conc2-rep-matching

    (defthm cst-statement-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "compound-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "compound-statement"))))

    Theorem: cst-statement-conc3-rep-matching

    (defthm cst-statement-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "expression-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "expression-statement"))))

    Theorem: cst-statement-conc4-rep-matching

    (defthm cst-statement-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "selection-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "selection-statement"))))

    Theorem: cst-statement-conc5-rep-matching

    (defthm cst-statement-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "iteration-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "iteration-statement"))))

    Theorem: cst-statement-conc6-rep-matching

    (defthm cst-statement-conc6-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "jump-statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "jump-statement"))))

    Theorem: cst-block-item-list-conc1-rep-matching

    (defthm cst-block-item-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "block-item")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "block-item"))))

    Theorem: cst-block-item-conc1-rep-matching

    (defthm cst-block-item-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "declaration"))))

    Theorem: cst-block-item-conc2-rep-matching

    (defthm cst-block-item-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "statement")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "statement"))))

    Theorem: cst-translation-unit-conc1-rep-matching

    (defthm cst-translation-unit-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "external-declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "external-declaration"))))

    Theorem: cst-external-declaration-conc1-rep-matching

    (defthm cst-external-declaration-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "function-definition")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "function-definition"))))

    Theorem: cst-external-declaration-conc2-rep-matching

    (defthm cst-external-declaration-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "declaration"))))

    Theorem: cst-declaration-list-conc1-rep-matching

    (defthm cst-declaration-list-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "declaration")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "declaration"))))

    Theorem: cst-token-conc-equivs

    (defthm cst-token-conc-equivs
     (implies
      (cst-matchp abnf::cst "token")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "keyword")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "keyword")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "identifier")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "identifier")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "constant")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "constant")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "punctuator")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "punctuator"))))))

    Theorem: cst-constant-conc-equivs

    (defthm cst-constant-conc-equivs
     (implies
      (cst-matchp abnf::cst "constant")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "integer-constant")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "integer-constant")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "enumeration-constant")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "enumeration-constant"))))))

    Theorem: cst-comment-conc-equivs

    (defthm cst-comment-conc-equivs
     (implies
      (cst-matchp abnf::cst "comment")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "block-comment")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "block-comment")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "line-comment")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "line-comment"))))))

    Theorem: cst-white-space-conc-equivs

    (defthm cst-white-space-conc-equivs
     (implies
      (cst-matchp abnf::cst "white-space")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "space")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "space")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "horizontal-tab")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "horizontal-tab")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "vertical-tab")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "vertical-tab")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "form-feed")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "form-feed")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "new-line")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "new-line"))))))

    Theorem: cst-lexeme-conc-equivs

    (defthm cst-lexeme-conc-equivs
     (implies
      (cst-matchp abnf::cst "lexeme")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "token")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "token")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "comment")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "comment")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "white-space")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "white-space"))))))

    Theorem: cst-statement-conc-equivs

    (defthm cst-statement-conc-equivs
     (implies
      (cst-matchp abnf::cst "statement")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "labeled-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "labeled-statement")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "compound-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "compound-statement")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "expression-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "expression-statement")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "selection-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "selection-statement")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "iteration-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "iteration-statement")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "jump-statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "jump-statement"))))))

    Theorem: cst-block-item-conc-equivs

    (defthm cst-block-item-conc-equivs
     (implies
      (cst-matchp abnf::cst "block-item")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "declaration")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "declaration")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "statement")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "statement"))))))

    Theorem: cst-external-declaration-conc-equivs

    (defthm cst-external-declaration-conc-equivs
     (implies
      (cst-matchp abnf::cst "external-declaration")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "function-definition")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "function-definition")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "declaration")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "declaration"))))))

    Function: cst-token-conc?

    (defun cst-token-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "token")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "keyword"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "identifier"))
       2)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "constant"))
       3)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "punctuator"))
       4)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-token-conc?

    (defthm posp-of-cst-token-conc?
      (b* ((number (cst-token-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-token-conc?-possibilities

    (defthm cst-token-conc?-possibilities
     (b* ((number (cst-token-conc? abnf::cst)))
       (or (equal number 1)
           (equal number 2)
           (equal number 3)
           (equal number 4)))
     :rule-classes
     ((:forward-chaining :trigger-terms ((cst-token-conc? abnf::cst)))))

    Theorem: cst-token-conc?-of-tree-fix-cst

    (defthm cst-token-conc?-of-tree-fix-cst
      (equal (cst-token-conc? (abnf::tree-fix abnf::cst))
             (cst-token-conc? abnf::cst)))

    Theorem: cst-token-conc?-tree-equiv-congruence-on-cst

    (defthm cst-token-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc? abnf::cst)
                      (cst-token-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-token-conc?-1-iff-match-conc

    (defthm cst-token-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "token")
               (iff (equal (cst-token-conc? abnf::cst) 1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "keyword"))))

    Theorem: cst-token-conc?-2-iff-match-conc

    (defthm cst-token-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "token")
               (iff (equal (cst-token-conc? abnf::cst) 2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "identifier"))))

    Theorem: cst-token-conc?-3-iff-match-conc

    (defthm cst-token-conc?-3-iff-match-conc
      (implies (cst-matchp abnf::cst "token")
               (iff (equal (cst-token-conc? abnf::cst) 3)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "constant"))))

    Theorem: cst-token-conc?-4-iff-match-conc

    (defthm cst-token-conc?-4-iff-match-conc
      (implies (cst-matchp abnf::cst "token")
               (iff (equal (cst-token-conc? abnf::cst) 4)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "punctuator"))))

    Function: cst-constant-conc?

    (defun cst-constant-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "constant")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "integer-constant"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "enumeration-constant"))
       2)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-constant-conc?

    (defthm posp-of-cst-constant-conc?
      (b* ((number (cst-constant-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc?-possibilities

    (defthm cst-constant-conc?-possibilities
      (b* ((number (cst-constant-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-constant-conc? abnf::cst)))))

    Theorem: cst-constant-conc?-of-tree-fix-cst

    (defthm cst-constant-conc?-of-tree-fix-cst
      (equal (cst-constant-conc? (abnf::tree-fix abnf::cst))
             (cst-constant-conc? abnf::cst)))

    Theorem: cst-constant-conc?-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc? abnf::cst)
                      (cst-constant-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-constant-conc?-1-iff-match-conc

    (defthm cst-constant-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "constant")
               (iff (equal (cst-constant-conc? abnf::cst) 1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "integer-constant"))))

    Theorem: cst-constant-conc?-2-iff-match-conc

    (defthm cst-constant-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "constant")
               (iff (equal (cst-constant-conc? abnf::cst) 2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "enumeration-constant"))))

    Function: cst-comment-conc?

    (defun cst-comment-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "comment")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "block-comment"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "line-comment"))
       2)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-comment-conc?

    (defthm posp-of-cst-comment-conc?
      (b* ((number (cst-comment-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc?-possibilities

    (defthm cst-comment-conc?-possibilities
      (b* ((number (cst-comment-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-comment-conc? abnf::cst)))))

    Theorem: cst-comment-conc?-of-tree-fix-cst

    (defthm cst-comment-conc?-of-tree-fix-cst
      (equal (cst-comment-conc? (abnf::tree-fix abnf::cst))
             (cst-comment-conc? abnf::cst)))

    Theorem: cst-comment-conc?-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc? abnf::cst)
                      (cst-comment-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-comment-conc?-1-iff-match-conc

    (defthm cst-comment-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "comment")
               (iff (equal (cst-comment-conc? abnf::cst) 1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "block-comment"))))

    Theorem: cst-comment-conc?-2-iff-match-conc

    (defthm cst-comment-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "comment")
               (iff (equal (cst-comment-conc? abnf::cst) 2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "line-comment"))))

    Function: cst-white-space-conc?

    (defun cst-white-space-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "white-space")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "space"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "horizontal-tab"))
       2)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "vertical-tab"))
       3)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "form-feed"))
       4)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "new-line"))
       5)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-white-space-conc?

    (defthm posp-of-cst-white-space-conc?
      (b* ((number (cst-white-space-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc?-possibilities

    (defthm cst-white-space-conc?-possibilities
      (b* ((number (cst-white-space-conc? abnf::cst)))
        (or (equal number 1)
            (equal number 2)
            (equal number 3)
            (equal number 4)
            (equal number 5)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-white-space-conc? abnf::cst)))))

    Theorem: cst-white-space-conc?-of-tree-fix-cst

    (defthm cst-white-space-conc?-of-tree-fix-cst
      (equal (cst-white-space-conc? (abnf::tree-fix abnf::cst))
             (cst-white-space-conc? abnf::cst)))

    Theorem: cst-white-space-conc?-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc? abnf::cst)
                      (cst-white-space-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-white-space-conc?-1-iff-match-conc

    (defthm cst-white-space-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "white-space")
               (iff (equal (cst-white-space-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "space"))))

    Theorem: cst-white-space-conc?-2-iff-match-conc

    (defthm cst-white-space-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "white-space")
               (iff (equal (cst-white-space-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "horizontal-tab"))))

    Theorem: cst-white-space-conc?-3-iff-match-conc

    (defthm cst-white-space-conc?-3-iff-match-conc
      (implies (cst-matchp abnf::cst "white-space")
               (iff (equal (cst-white-space-conc? abnf::cst)
                           3)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "vertical-tab"))))

    Theorem: cst-white-space-conc?-4-iff-match-conc

    (defthm cst-white-space-conc?-4-iff-match-conc
      (implies (cst-matchp abnf::cst "white-space")
               (iff (equal (cst-white-space-conc? abnf::cst)
                           4)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "form-feed"))))

    Theorem: cst-white-space-conc?-5-iff-match-conc

    (defthm cst-white-space-conc?-5-iff-match-conc
      (implies (cst-matchp abnf::cst "white-space")
               (iff (equal (cst-white-space-conc? abnf::cst)
                           5)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "new-line"))))

    Function: cst-lexeme-conc?

    (defun cst-lexeme-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "lexeme")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "token"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "comment"))
       2)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "white-space"))
       3)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-lexeme-conc?

    (defthm posp-of-cst-lexeme-conc?
      (b* ((number (cst-lexeme-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc?-possibilities

    (defthm cst-lexeme-conc?-possibilities
      (b* ((number (cst-lexeme-conc? abnf::cst)))
        (or (equal number 1)
            (equal number 2)
            (equal number 3)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-lexeme-conc? abnf::cst)))))

    Theorem: cst-lexeme-conc?-of-tree-fix-cst

    (defthm cst-lexeme-conc?-of-tree-fix-cst
      (equal (cst-lexeme-conc? (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc? abnf::cst)))

    Theorem: cst-lexeme-conc?-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc? abnf::cst)
                      (cst-lexeme-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-lexeme-conc?-1-iff-match-conc

    (defthm cst-lexeme-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "lexeme")
               (iff (equal (cst-lexeme-conc? abnf::cst) 1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "token"))))

    Theorem: cst-lexeme-conc?-2-iff-match-conc

    (defthm cst-lexeme-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "lexeme")
               (iff (equal (cst-lexeme-conc? abnf::cst) 2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "comment"))))

    Theorem: cst-lexeme-conc?-3-iff-match-conc

    (defthm cst-lexeme-conc?-3-iff-match-conc
      (implies (cst-matchp abnf::cst "lexeme")
               (iff (equal (cst-lexeme-conc? abnf::cst) 3)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "white-space"))))

    Function: cst-statement-conc?

    (defun cst-statement-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "statement")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "labeled-statement"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "compound-statement"))
       2)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "expression-statement"))
       3)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "selection-statement"))
       4)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "iteration-statement"))
       5)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "jump-statement"))
       6)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-statement-conc?

    (defthm posp-of-cst-statement-conc?
      (b* ((number (cst-statement-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc?-possibilities

    (defthm cst-statement-conc?-possibilities
      (b* ((number (cst-statement-conc? abnf::cst)))
        (or (equal number 1)
            (equal number 2)
            (equal number 3)
            (equal number 4)
            (equal number 5)
            (equal number 6)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-statement-conc? abnf::cst)))))

    Theorem: cst-statement-conc?-of-tree-fix-cst

    (defthm cst-statement-conc?-of-tree-fix-cst
      (equal (cst-statement-conc? (abnf::tree-fix abnf::cst))
             (cst-statement-conc? abnf::cst)))

    Theorem: cst-statement-conc?-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc? abnf::cst)
                      (cst-statement-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-statement-conc?-1-iff-match-conc

    (defthm cst-statement-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "labeled-statement"))))

    Theorem: cst-statement-conc?-2-iff-match-conc

    (defthm cst-statement-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "compound-statement"))))

    Theorem: cst-statement-conc?-3-iff-match-conc

    (defthm cst-statement-conc?-3-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           3)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "expression-statement"))))

    Theorem: cst-statement-conc?-4-iff-match-conc

    (defthm cst-statement-conc?-4-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           4)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "selection-statement"))))

    Theorem: cst-statement-conc?-5-iff-match-conc

    (defthm cst-statement-conc?-5-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           5)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "iteration-statement"))))

    Theorem: cst-statement-conc?-6-iff-match-conc

    (defthm cst-statement-conc?-6-iff-match-conc
      (implies (cst-matchp abnf::cst "statement")
               (iff (equal (cst-statement-conc? abnf::cst)
                           6)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "jump-statement"))))

    Function: cst-block-item-conc?

    (defun cst-block-item-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "block-item")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "declaration"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "statement"))
       2)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-block-item-conc?

    (defthm posp-of-cst-block-item-conc?
      (b* ((number (cst-block-item-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc?-possibilities

    (defthm cst-block-item-conc?-possibilities
      (b* ((number (cst-block-item-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-block-item-conc? abnf::cst)))))

    Theorem: cst-block-item-conc?-of-tree-fix-cst

    (defthm cst-block-item-conc?-of-tree-fix-cst
      (equal (cst-block-item-conc? (abnf::tree-fix abnf::cst))
             (cst-block-item-conc? abnf::cst)))

    Theorem: cst-block-item-conc?-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc? abnf::cst)
                      (cst-block-item-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-block-item-conc?-1-iff-match-conc

    (defthm cst-block-item-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "block-item")
               (iff (equal (cst-block-item-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "declaration"))))

    Theorem: cst-block-item-conc?-2-iff-match-conc

    (defthm cst-block-item-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "block-item")
               (iff (equal (cst-block-item-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "statement"))))

    Function: cst-external-declaration-conc?

    (defun cst-external-declaration-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
          (xargs :guard (cst-matchp abnf::cst "external-declaration")))
     (cond
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "function-definition"))
       1)
      ((equal (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "declaration"))
       2)
      (t (prog2$ (impossible) 1))))

    Theorem: posp-of-cst-external-declaration-conc?

    (defthm posp-of-cst-external-declaration-conc?
      (b* ((number (cst-external-declaration-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc?-possibilities

    (defthm cst-external-declaration-conc?-possibilities
     (b* ((number (cst-external-declaration-conc? abnf::cst)))
       (or (equal number 1) (equal number 2)))
     :rule-classes
     ((:forward-chaining
          :trigger-terms ((cst-external-declaration-conc? abnf::cst)))))

    Theorem: cst-external-declaration-conc?-of-tree-fix-cst

    (defthm cst-external-declaration-conc?-of-tree-fix-cst
      (equal (cst-external-declaration-conc? (abnf::tree-fix abnf::cst))
             (cst-external-declaration-conc? abnf::cst)))

    Theorem: cst-external-declaration-conc?-tree-equiv-congruence-on-cst

    (defthm cst-external-declaration-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-external-declaration-conc? abnf::cst)
                      (cst-external-declaration-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-external-declaration-conc?-1-iff-match-conc

    (defthm cst-external-declaration-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "external-declaration")
               (iff (equal (cst-external-declaration-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "function-definition"))))

    Theorem: cst-external-declaration-conc?-2-iff-match-conc

    (defthm cst-external-declaration-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "external-declaration")
               (iff (equal (cst-external-declaration-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "declaration"))))

    Function: cst-horizontal-tab-conc

    (defun cst-horizontal-tab-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "horizontal-tab")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-horizontal-tab-conc

    (defthm tree-list-listp-of-cst-horizontal-tab-conc
      (b* ((abnf::cstss (cst-horizontal-tab-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-match

    (defthm cst-horizontal-tab-conc-match
      (implies (cst-matchp abnf::cst "horizontal-tab")
               (b* ((abnf::cstss (cst-horizontal-tab-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x9")))
      :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-of-tree-fix-cst

    (defthm cst-horizontal-tab-conc-of-tree-fix-cst
      (equal (cst-horizontal-tab-conc (abnf::tree-fix abnf::cst))
             (cst-horizontal-tab-conc abnf::cst)))

    Theorem: cst-horizontal-tab-conc-tree-equiv-congruence-on-cst

    (defthm cst-horizontal-tab-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-horizontal-tab-conc abnf::cst)
                      (cst-horizontal-tab-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-line-feed-conc

    (defun cst-line-feed-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "line-feed")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-line-feed-conc

    (defthm tree-list-listp-of-cst-line-feed-conc
      (b* ((abnf::cstss (cst-line-feed-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-match

    (defthm cst-line-feed-conc-match
      (implies (cst-matchp abnf::cst "line-feed")
               (b* ((abnf::cstss (cst-line-feed-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%xA")))
      :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-of-tree-fix-cst

    (defthm cst-line-feed-conc-of-tree-fix-cst
      (equal (cst-line-feed-conc (abnf::tree-fix abnf::cst))
             (cst-line-feed-conc abnf::cst)))

    Theorem: cst-line-feed-conc-tree-equiv-congruence-on-cst

    (defthm cst-line-feed-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-line-feed-conc abnf::cst)
                      (cst-line-feed-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-vertical-tab-conc

    (defun cst-vertical-tab-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "vertical-tab")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-vertical-tab-conc

    (defthm tree-list-listp-of-cst-vertical-tab-conc
      (b* ((abnf::cstss (cst-vertical-tab-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-match

    (defthm cst-vertical-tab-conc-match
      (implies (cst-matchp abnf::cst "vertical-tab")
               (b* ((abnf::cstss (cst-vertical-tab-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%xB")))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-of-tree-fix-cst

    (defthm cst-vertical-tab-conc-of-tree-fix-cst
      (equal (cst-vertical-tab-conc (abnf::tree-fix abnf::cst))
             (cst-vertical-tab-conc abnf::cst)))

    Theorem: cst-vertical-tab-conc-tree-equiv-congruence-on-cst

    (defthm cst-vertical-tab-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-vertical-tab-conc abnf::cst)
                      (cst-vertical-tab-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-form-feed-conc

    (defun cst-form-feed-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "form-feed")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-form-feed-conc

    (defthm tree-list-listp-of-cst-form-feed-conc
      (b* ((abnf::cstss (cst-form-feed-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-match

    (defthm cst-form-feed-conc-match
      (implies (cst-matchp abnf::cst "form-feed")
               (b* ((abnf::cstss (cst-form-feed-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%xC")))
      :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-of-tree-fix-cst

    (defthm cst-form-feed-conc-of-tree-fix-cst
      (equal (cst-form-feed-conc (abnf::tree-fix abnf::cst))
             (cst-form-feed-conc abnf::cst)))

    Theorem: cst-form-feed-conc-tree-equiv-congruence-on-cst

    (defthm cst-form-feed-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-form-feed-conc abnf::cst)
                      (cst-form-feed-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-carriage-return-conc

    (defun cst-carriage-return-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "carriage-return")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-carriage-return-conc

    (defthm tree-list-listp-of-cst-carriage-return-conc
      (b* ((abnf::cstss (cst-carriage-return-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-match

    (defthm cst-carriage-return-conc-match
      (implies (cst-matchp abnf::cst "carriage-return")
               (b* ((abnf::cstss (cst-carriage-return-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%xD")))
      :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-of-tree-fix-cst

    (defthm cst-carriage-return-conc-of-tree-fix-cst
      (equal (cst-carriage-return-conc (abnf::tree-fix abnf::cst))
             (cst-carriage-return-conc abnf::cst)))

    Theorem: cst-carriage-return-conc-tree-equiv-congruence-on-cst

    (defthm cst-carriage-return-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-carriage-return-conc abnf::cst)
                      (cst-carriage-return-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-space-conc

    (defun cst-space-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "space")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-space-conc

    (defthm tree-list-listp-of-cst-space-conc
      (b* ((abnf::cstss (cst-space-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-match

    (defthm cst-space-conc-match
      (implies (cst-matchp abnf::cst "space")
               (b* ((abnf::cstss (cst-space-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x20")))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-of-tree-fix-cst

    (defthm cst-space-conc-of-tree-fix-cst
      (equal (cst-space-conc (abnf::tree-fix abnf::cst))
             (cst-space-conc abnf::cst)))

    Theorem: cst-space-conc-tree-equiv-congruence-on-cst

    (defthm cst-space-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-space-conc abnf::cst)
                      (cst-space-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-double-quote-conc

    (defun cst-double-quote-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "double-quote")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-double-quote-conc

    (defthm tree-list-listp-of-cst-double-quote-conc
      (b* ((abnf::cstss (cst-double-quote-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-match

    (defthm cst-double-quote-conc-match
      (implies (cst-matchp abnf::cst "double-quote")
               (b* ((abnf::cstss (cst-double-quote-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x22")))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-of-tree-fix-cst

    (defthm cst-double-quote-conc-of-tree-fix-cst
      (equal (cst-double-quote-conc (abnf::tree-fix abnf::cst))
             (cst-double-quote-conc abnf::cst)))

    Theorem: cst-double-quote-conc-tree-equiv-congruence-on-cst

    (defthm cst-double-quote-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-double-quote-conc abnf::cst)
                      (cst-double-quote-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-character-conc

    (defun cst-character-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "character")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-character-conc

    (defthm tree-list-listp-of-cst-character-conc
      (b* ((abnf::cstss (cst-character-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-character-conc-match

    (defthm cst-character-conc-match
      (implies (cst-matchp abnf::cst "character")
               (b* ((abnf::cstss (cst-character-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x0-7F")))
      :rule-classes :rewrite)

    Theorem: cst-character-conc-of-tree-fix-cst

    (defthm cst-character-conc-of-tree-fix-cst
      (equal (cst-character-conc (abnf::tree-fix abnf::cst))
             (cst-character-conc abnf::cst)))

    Theorem: cst-character-conc-tree-equiv-congruence-on-cst

    (defthm cst-character-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-character-conc abnf::cst)
                      (cst-character-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc1

    (defun cst-token-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-token-conc1

    (defthm tree-list-listp-of-cst-token-conc1
      (b* ((abnf::cstss (cst-token-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-match

    (defthm cst-token-conc1-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 1))
               (b* ((abnf::cstss (cst-token-conc1 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "keyword")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-of-tree-fix-cst

    (defthm cst-token-conc1-of-tree-fix-cst
      (equal (cst-token-conc1 (abnf::tree-fix abnf::cst))
             (cst-token-conc1 abnf::cst)))

    Theorem: cst-token-conc1-tree-equiv-congruence-on-cst

    (defthm cst-token-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc1 abnf::cst)
                      (cst-token-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc2

    (defun cst-token-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-token-conc2

    (defthm tree-list-listp-of-cst-token-conc2
      (b* ((abnf::cstss (cst-token-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-match

    (defthm cst-token-conc2-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 2))
               (b* ((abnf::cstss (cst-token-conc2 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-of-tree-fix-cst

    (defthm cst-token-conc2-of-tree-fix-cst
      (equal (cst-token-conc2 (abnf::tree-fix abnf::cst))
             (cst-token-conc2 abnf::cst)))

    Theorem: cst-token-conc2-tree-equiv-congruence-on-cst

    (defthm cst-token-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc2 abnf::cst)
                      (cst-token-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc3

    (defun cst-token-conc3 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 3))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-token-conc3

    (defthm tree-list-listp-of-cst-token-conc3
      (b* ((abnf::cstss (cst-token-conc3 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-match

    (defthm cst-token-conc3-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 3))
               (b* ((abnf::cstss (cst-token-conc3 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "constant")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-of-tree-fix-cst

    (defthm cst-token-conc3-of-tree-fix-cst
      (equal (cst-token-conc3 (abnf::tree-fix abnf::cst))
             (cst-token-conc3 abnf::cst)))

    Theorem: cst-token-conc3-tree-equiv-congruence-on-cst

    (defthm cst-token-conc3-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc3 abnf::cst)
                      (cst-token-conc3 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc4

    (defun cst-token-conc4 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 4))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-token-conc4

    (defthm tree-list-listp-of-cst-token-conc4
      (b* ((abnf::cstss (cst-token-conc4 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-match

    (defthm cst-token-conc4-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 4))
               (b* ((abnf::cstss (cst-token-conc4 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "punctuator")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-of-tree-fix-cst

    (defthm cst-token-conc4-of-tree-fix-cst
      (equal (cst-token-conc4 (abnf::tree-fix abnf::cst))
             (cst-token-conc4 abnf::cst)))

    Theorem: cst-token-conc4-tree-equiv-congruence-on-cst

    (defthm cst-token-conc4-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc4 abnf::cst)
                      (cst-token-conc4 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-identifier-nondigit-conc

    (defun cst-identifier-nondigit-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "identifier-nondigit")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-identifier-nondigit-conc

    (defthm tree-list-listp-of-cst-identifier-nondigit-conc
      (b* ((abnf::cstss (cst-identifier-nondigit-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-match

    (defthm cst-identifier-nondigit-conc-match
      (implies
           (cst-matchp abnf::cst "identifier-nondigit")
           (b* ((abnf::cstss (cst-identifier-nondigit-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "nondigit")))
      :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-of-tree-fix-cst

    (defthm cst-identifier-nondigit-conc-of-tree-fix-cst
      (equal (cst-identifier-nondigit-conc (abnf::tree-fix abnf::cst))
             (cst-identifier-nondigit-conc abnf::cst)))

    Theorem: cst-identifier-nondigit-conc-tree-equiv-congruence-on-cst

    (defthm cst-identifier-nondigit-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-identifier-nondigit-conc abnf::cst)
                      (cst-identifier-nondigit-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-conc1

    (defun cst-constant-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-constant-conc1

    (defthm tree-list-listp-of-cst-constant-conc1
      (b* ((abnf::cstss (cst-constant-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc1-match

    (defthm cst-constant-conc1-match
     (implies
          (and (cst-matchp abnf::cst "constant")
               (equal (cst-constant-conc? abnf::cst)
                      1))
          (b* ((abnf::cstss (cst-constant-conc1 abnf::cst)))
            (cst-list-list-conc-matchp abnf::cstss "integer-constant")))
     :rule-classes :rewrite)

    Theorem: cst-constant-conc1-of-tree-fix-cst

    (defthm cst-constant-conc1-of-tree-fix-cst
      (equal (cst-constant-conc1 (abnf::tree-fix abnf::cst))
             (cst-constant-conc1 abnf::cst)))

    Theorem: cst-constant-conc1-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc1 abnf::cst)
                      (cst-constant-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-conc2

    (defun cst-constant-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-constant-conc2

    (defthm tree-list-listp-of-cst-constant-conc2
      (b* ((abnf::cstss (cst-constant-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc2-match

    (defthm cst-constant-conc2-match
     (implies
      (and (cst-matchp abnf::cst "constant")
           (equal (cst-constant-conc? abnf::cst)
                  2))
      (b* ((abnf::cstss (cst-constant-conc2 abnf::cst)))
        (cst-list-list-conc-matchp abnf::cstss "enumeration-constant")))
     :rule-classes :rewrite)

    Theorem: cst-constant-conc2-of-tree-fix-cst

    (defthm cst-constant-conc2-of-tree-fix-cst
      (equal (cst-constant-conc2 (abnf::tree-fix abnf::cst))
             (cst-constant-conc2 abnf::cst)))

    Theorem: cst-constant-conc2-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc2 abnf::cst)
                      (cst-constant-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-hexadecimal-prefix-conc

    (defun cst-hexadecimal-prefix-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "hexadecimal-prefix")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-hexadecimal-prefix-conc

    (defthm tree-list-listp-of-cst-hexadecimal-prefix-conc
      (b* ((abnf::cstss (cst-hexadecimal-prefix-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-match

    (defthm cst-hexadecimal-prefix-conc-match
      (implies
           (cst-matchp abnf::cst "hexadecimal-prefix")
           (b* ((abnf::cstss (cst-hexadecimal-prefix-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "%i\"0x\"")))
      :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-of-tree-fix-cst

    (defthm cst-hexadecimal-prefix-conc-of-tree-fix-cst
      (equal (cst-hexadecimal-prefix-conc (abnf::tree-fix abnf::cst))
             (cst-hexadecimal-prefix-conc abnf::cst)))

    Theorem: cst-hexadecimal-prefix-conc-tree-equiv-congruence-on-cst

    (defthm cst-hexadecimal-prefix-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-hexadecimal-prefix-conc abnf::cst)
                      (cst-hexadecimal-prefix-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-unsigned-suffix-conc

    (defun cst-unsigned-suffix-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "unsigned-suffix")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-unsigned-suffix-conc

    (defthm tree-list-listp-of-cst-unsigned-suffix-conc
      (b* ((abnf::cstss (cst-unsigned-suffix-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-match

    (defthm cst-unsigned-suffix-conc-match
      (implies (cst-matchp abnf::cst "unsigned-suffix")
               (b* ((abnf::cstss (cst-unsigned-suffix-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%i\"u\"")))
      :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-of-tree-fix-cst

    (defthm cst-unsigned-suffix-conc-of-tree-fix-cst
      (equal (cst-unsigned-suffix-conc (abnf::tree-fix abnf::cst))
             (cst-unsigned-suffix-conc abnf::cst)))

    Theorem: cst-unsigned-suffix-conc-tree-equiv-congruence-on-cst

    (defthm cst-unsigned-suffix-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-unsigned-suffix-conc abnf::cst)
                      (cst-unsigned-suffix-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-long-suffix-conc

    (defun cst-long-suffix-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "long-suffix")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-long-suffix-conc

    (defthm tree-list-listp-of-cst-long-suffix-conc
      (b* ((abnf::cstss (cst-long-suffix-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-match

    (defthm cst-long-suffix-conc-match
      (implies (cst-matchp abnf::cst "long-suffix")
               (b* ((abnf::cstss (cst-long-suffix-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%i\"l\"")))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-of-tree-fix-cst

    (defthm cst-long-suffix-conc-of-tree-fix-cst
      (equal (cst-long-suffix-conc (abnf::tree-fix abnf::cst))
             (cst-long-suffix-conc abnf::cst)))

    Theorem: cst-long-suffix-conc-tree-equiv-congruence-on-cst

    (defthm cst-long-suffix-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-long-suffix-conc abnf::cst)
                      (cst-long-suffix-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-enumeration-constant-conc

    (defun cst-enumeration-constant-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "enumeration-constant")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-enumeration-constant-conc

    (defthm tree-list-listp-of-cst-enumeration-constant-conc
      (b* ((abnf::cstss (cst-enumeration-constant-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-match

    (defthm cst-enumeration-constant-conc-match
      (implies
           (cst-matchp abnf::cst "enumeration-constant")
           (b* ((abnf::cstss (cst-enumeration-constant-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-of-tree-fix-cst

    (defthm cst-enumeration-constant-conc-of-tree-fix-cst
      (equal (cst-enumeration-constant-conc (abnf::tree-fix abnf::cst))
             (cst-enumeration-constant-conc abnf::cst)))

    Theorem: cst-enumeration-constant-conc-tree-equiv-congruence-on-cst

    (defthm cst-enumeration-constant-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-enumeration-constant-conc abnf::cst)
                      (cst-enumeration-constant-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-new-line-conc

    (defun cst-new-line-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "new-line")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-new-line-conc

    (defthm tree-list-listp-of-cst-new-line-conc
      (b* ((abnf::cstss (cst-new-line-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-new-line-conc-match

    (defthm cst-new-line-conc-match
     (implies
         (cst-matchp abnf::cst "new-line")
         (b* ((abnf::cstss (cst-new-line-conc abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss
                                      "[ carriage-return ] line-feed")))
     :rule-classes :rewrite)

    Theorem: cst-new-line-conc-of-tree-fix-cst

    (defthm cst-new-line-conc-of-tree-fix-cst
      (equal (cst-new-line-conc (abnf::tree-fix abnf::cst))
             (cst-new-line-conc abnf::cst)))

    Theorem: cst-new-line-conc-tree-equiv-congruence-on-cst

    (defthm cst-new-line-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-new-line-conc abnf::cst)
                      (cst-new-line-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-comment-conc1

    (defun cst-comment-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-comment-conc1

    (defthm tree-list-listp-of-cst-comment-conc1
      (b* ((abnf::cstss (cst-comment-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-match

    (defthm cst-comment-conc1-match
      (implies
           (and (cst-matchp abnf::cst "comment")
                (equal (cst-comment-conc? abnf::cst) 1))
           (b* ((abnf::cstss (cst-comment-conc1 abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "block-comment")))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-of-tree-fix-cst

    (defthm cst-comment-conc1-of-tree-fix-cst
      (equal (cst-comment-conc1 (abnf::tree-fix abnf::cst))
             (cst-comment-conc1 abnf::cst)))

    Theorem: cst-comment-conc1-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc1 abnf::cst)
                      (cst-comment-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-comment-conc2

    (defun cst-comment-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-comment-conc2

    (defthm tree-list-listp-of-cst-comment-conc2
      (b* ((abnf::cstss (cst-comment-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc2-match

    (defthm cst-comment-conc2-match
     (implies (and (cst-matchp abnf::cst "comment")
                   (equal (cst-comment-conc? abnf::cst) 2))
              (b* ((abnf::cstss (cst-comment-conc2 abnf::cst)))
                (cst-list-list-conc-matchp abnf::cstss "line-comment")))
     :rule-classes :rewrite)

    Theorem: cst-comment-conc2-of-tree-fix-cst

    (defthm cst-comment-conc2-of-tree-fix-cst
      (equal (cst-comment-conc2 (abnf::tree-fix abnf::cst))
             (cst-comment-conc2 abnf::cst)))

    Theorem: cst-comment-conc2-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc2 abnf::cst)
                      (cst-comment-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-comment-conc

    (defun cst-block-comment-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "block-comment")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-block-comment-conc

    (defthm tree-list-listp-of-cst-block-comment-conc
      (b* ((abnf::cstss (cst-block-comment-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-block-comment-conc-match

    (defthm cst-block-comment-conc-match
      (implies
           (cst-matchp abnf::cst "block-comment")
           (b* ((abnf::cstss (cst-block-comment-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss
                                        "\"/*\" rest-of-block-comment")))
      :rule-classes :rewrite)

    Theorem: cst-block-comment-conc-of-tree-fix-cst

    (defthm cst-block-comment-conc-of-tree-fix-cst
      (equal (cst-block-comment-conc (abnf::tree-fix abnf::cst))
             (cst-block-comment-conc abnf::cst)))

    Theorem: cst-block-comment-conc-tree-equiv-congruence-on-cst

    (defthm cst-block-comment-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-comment-conc abnf::cst)
                      (cst-block-comment-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-line-comment-conc

    (defun cst-line-comment-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "line-comment")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-line-comment-conc

    (defthm tree-list-listp-of-cst-line-comment-conc
      (b* ((abnf::cstss (cst-line-comment-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-line-comment-conc-match

    (defthm cst-line-comment-conc-match
      (implies (cst-matchp abnf::cst "line-comment")
               (b* ((abnf::cstss (cst-line-comment-conc abnf::cst)))
                 (cst-list-list-conc-matchp
                      abnf::cstss
                      "\"//\" *not-line-feed-or-carriage-return")))
      :rule-classes :rewrite)

    Theorem: cst-line-comment-conc-of-tree-fix-cst

    (defthm cst-line-comment-conc-of-tree-fix-cst
      (equal (cst-line-comment-conc (abnf::tree-fix abnf::cst))
             (cst-line-comment-conc abnf::cst)))

    Theorem: cst-line-comment-conc-tree-equiv-congruence-on-cst

    (defthm cst-line-comment-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-line-comment-conc abnf::cst)
                      (cst-line-comment-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc1

    (defun cst-white-space-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-white-space-conc1

    (defthm tree-list-listp-of-cst-white-space-conc1
      (b* ((abnf::cstss (cst-white-space-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-match

    (defthm cst-white-space-conc1-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           1))
               (b* ((abnf::cstss (cst-white-space-conc1 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "space")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-of-tree-fix-cst

    (defthm cst-white-space-conc1-of-tree-fix-cst
      (equal (cst-white-space-conc1 (abnf::tree-fix abnf::cst))
             (cst-white-space-conc1 abnf::cst)))

    Theorem: cst-white-space-conc1-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc1 abnf::cst)
                      (cst-white-space-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc2

    (defun cst-white-space-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-white-space-conc2

    (defthm tree-list-listp-of-cst-white-space-conc2
      (b* ((abnf::cstss (cst-white-space-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-match

    (defthm cst-white-space-conc2-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       2))
           (b* ((abnf::cstss (cst-white-space-conc2 abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "horizontal-tab")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-of-tree-fix-cst

    (defthm cst-white-space-conc2-of-tree-fix-cst
      (equal (cst-white-space-conc2 (abnf::tree-fix abnf::cst))
             (cst-white-space-conc2 abnf::cst)))

    Theorem: cst-white-space-conc2-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc2 abnf::cst)
                      (cst-white-space-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc3

    (defun cst-white-space-conc3 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     3))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-white-space-conc3

    (defthm tree-list-listp-of-cst-white-space-conc3
      (b* ((abnf::cstss (cst-white-space-conc3 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-match

    (defthm cst-white-space-conc3-match
     (implies (and (cst-matchp abnf::cst "white-space")
                   (equal (cst-white-space-conc? abnf::cst)
                          3))
              (b* ((abnf::cstss (cst-white-space-conc3 abnf::cst)))
                (cst-list-list-conc-matchp abnf::cstss "vertical-tab")))
     :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-of-tree-fix-cst

    (defthm cst-white-space-conc3-of-tree-fix-cst
      (equal (cst-white-space-conc3 (abnf::tree-fix abnf::cst))
             (cst-white-space-conc3 abnf::cst)))

    Theorem: cst-white-space-conc3-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc3-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc3 abnf::cst)
                      (cst-white-space-conc3 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc4

    (defun cst-white-space-conc4 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     4))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-white-space-conc4

    (defthm tree-list-listp-of-cst-white-space-conc4
      (b* ((abnf::cstss (cst-white-space-conc4 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-match

    (defthm cst-white-space-conc4-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           4))
               (b* ((abnf::cstss (cst-white-space-conc4 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "form-feed")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-of-tree-fix-cst

    (defthm cst-white-space-conc4-of-tree-fix-cst
      (equal (cst-white-space-conc4 (abnf::tree-fix abnf::cst))
             (cst-white-space-conc4 abnf::cst)))

    Theorem: cst-white-space-conc4-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc4-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc4 abnf::cst)
                      (cst-white-space-conc4 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc5

    (defun cst-white-space-conc5 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     5))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-white-space-conc5

    (defthm tree-list-listp-of-cst-white-space-conc5
      (b* ((abnf::cstss (cst-white-space-conc5 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-match

    (defthm cst-white-space-conc5-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           5))
               (b* ((abnf::cstss (cst-white-space-conc5 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "new-line")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-of-tree-fix-cst

    (defthm cst-white-space-conc5-of-tree-fix-cst
      (equal (cst-white-space-conc5 (abnf::tree-fix abnf::cst))
             (cst-white-space-conc5 abnf::cst)))

    Theorem: cst-white-space-conc5-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc5-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc5 abnf::cst)
                      (cst-white-space-conc5 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc1

    (defun cst-lexeme-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-lexeme-conc1

    (defthm tree-list-listp-of-cst-lexeme-conc1
      (b* ((abnf::cstss (cst-lexeme-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-match

    (defthm cst-lexeme-conc1-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 1))
               (b* ((abnf::cstss (cst-lexeme-conc1 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "token")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-of-tree-fix-cst

    (defthm cst-lexeme-conc1-of-tree-fix-cst
      (equal (cst-lexeme-conc1 (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc1 abnf::cst)))

    Theorem: cst-lexeme-conc1-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc1 abnf::cst)
                      (cst-lexeme-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc2

    (defun cst-lexeme-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-lexeme-conc2

    (defthm tree-list-listp-of-cst-lexeme-conc2
      (b* ((abnf::cstss (cst-lexeme-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-match

    (defthm cst-lexeme-conc2-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 2))
               (b* ((abnf::cstss (cst-lexeme-conc2 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "comment")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-of-tree-fix-cst

    (defthm cst-lexeme-conc2-of-tree-fix-cst
      (equal (cst-lexeme-conc2 (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc2 abnf::cst)))

    Theorem: cst-lexeme-conc2-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc2 abnf::cst)
                      (cst-lexeme-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc3

    (defun cst-lexeme-conc3 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         3))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-lexeme-conc3

    (defthm tree-list-listp-of-cst-lexeme-conc3
      (b* ((abnf::cstss (cst-lexeme-conc3 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-match

    (defthm cst-lexeme-conc3-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 3))
               (b* ((abnf::cstss (cst-lexeme-conc3 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "white-space")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-of-tree-fix-cst

    (defthm cst-lexeme-conc3-of-tree-fix-cst
      (equal (cst-lexeme-conc3 (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc3 abnf::cst)))

    Theorem: cst-lexeme-conc3-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc3-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc3 abnf::cst)
                      (cst-lexeme-conc3 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-expression-conc

    (defun cst-expression-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "expression")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-expression-conc

    (defthm tree-list-listp-of-cst-expression-conc
      (b* ((abnf::cstss (cst-expression-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-expression-conc-match

    (defthm cst-expression-conc-match
     (implies
      (cst-matchp abnf::cst "expression")
      (b* ((abnf::cstss (cst-expression-conc abnf::cst)))
       (cst-list-list-conc-matchp abnf::cstss "assignment-expression")))
     :rule-classes :rewrite)

    Theorem: cst-expression-conc-of-tree-fix-cst

    (defthm cst-expression-conc-of-tree-fix-cst
      (equal (cst-expression-conc (abnf::tree-fix abnf::cst))
             (cst-expression-conc abnf::cst)))

    Theorem: cst-expression-conc-tree-equiv-congruence-on-cst

    (defthm cst-expression-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-expression-conc abnf::cst)
                      (cst-expression-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-expression-conc

    (defun cst-constant-expression-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "constant-expression")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-constant-expression-conc

    (defthm tree-list-listp-of-cst-constant-expression-conc
      (b* ((abnf::cstss (cst-constant-expression-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-match

    (defthm cst-constant-expression-conc-match
      (implies
           (cst-matchp abnf::cst "constant-expression")
           (b* ((abnf::cstss (cst-constant-expression-conc abnf::cst)))
             (cst-list-list-conc-matchp
                  abnf::cstss "conditional-expression")))
      :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-of-tree-fix-cst

    (defthm cst-constant-expression-conc-of-tree-fix-cst
      (equal (cst-constant-expression-conc (abnf::tree-fix abnf::cst))
             (cst-constant-expression-conc abnf::cst)))

    Theorem: cst-constant-expression-conc-tree-equiv-congruence-on-cst

    (defthm cst-constant-expression-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-expression-conc abnf::cst)
                      (cst-constant-expression-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-declaration-conc

    (defun cst-declaration-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "declaration")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-declaration-conc

    (defthm tree-list-listp-of-cst-declaration-conc
      (b* ((abnf::cstss (cst-declaration-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-declaration-conc-match

    (defthm cst-declaration-conc-match
     (implies
         (cst-matchp abnf::cst "declaration")
         (b* ((abnf::cstss (cst-declaration-conc abnf::cst)))
           (cst-list-list-conc-matchp
                abnf::cstss
                "declaration-specifiers [ init-declarator-list ] \";\"")))
     :rule-classes :rewrite)

    Theorem: cst-declaration-conc-of-tree-fix-cst

    (defthm cst-declaration-conc-of-tree-fix-cst
      (equal (cst-declaration-conc (abnf::tree-fix abnf::cst))
             (cst-declaration-conc abnf::cst)))

    Theorem: cst-declaration-conc-tree-equiv-congruence-on-cst

    (defthm cst-declaration-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-declaration-conc abnf::cst)
                      (cst-declaration-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-init-declarator-list-conc

    (defun cst-init-declarator-list-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "init-declarator-list")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-init-declarator-list-conc

    (defthm tree-list-listp-of-cst-init-declarator-list-conc
      (b* ((abnf::cstss (cst-init-declarator-list-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-match

    (defthm cst-init-declarator-list-conc-match
      (implies
           (cst-matchp abnf::cst "init-declarator-list")
           (b* ((abnf::cstss (cst-init-declarator-list-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "init-declarator")))
      :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-of-tree-fix-cst

    (defthm cst-init-declarator-list-conc-of-tree-fix-cst
      (equal (cst-init-declarator-list-conc (abnf::tree-fix abnf::cst))
             (cst-init-declarator-list-conc abnf::cst)))

    Theorem: cst-init-declarator-list-conc-tree-equiv-congruence-on-cst

    (defthm cst-init-declarator-list-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-init-declarator-list-conc abnf::cst)
                      (cst-init-declarator-list-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-storage-class-specifier-conc

    (defun cst-storage-class-specifier-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
        (xargs :guard (cst-matchp abnf::cst "storage-class-specifier")))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-storage-class-specifier-conc

    (defthm tree-list-listp-of-cst-storage-class-specifier-conc
      (b* ((abnf::cstss (cst-storage-class-specifier-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-match

    (defthm cst-storage-class-specifier-conc-match
     (implies
        (cst-matchp abnf::cst "storage-class-specifier")
        (b* ((abnf::cstss (cst-storage-class-specifier-conc abnf::cst)))
          (cst-list-list-conc-matchp abnf::cstss "%s\"extern\"")))
     :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-of-tree-fix-cst

    (defthm cst-storage-class-specifier-conc-of-tree-fix-cst
      (equal
           (cst-storage-class-specifier-conc (abnf::tree-fix abnf::cst))
           (cst-storage-class-specifier-conc abnf::cst)))

    Theorem: cst-storage-class-specifier-conc-tree-equiv-congruence-on-cst

    (defthm
          cst-storage-class-specifier-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-storage-class-specifier-conc abnf::cst)
                      (cst-storage-class-specifier-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-struct-declaration-conc

    (defun cst-struct-declaration-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "struct-declaration")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-struct-declaration-conc

    (defthm tree-list-listp-of-cst-struct-declaration-conc
      (b* ((abnf::cstss (cst-struct-declaration-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-struct-declaration-conc-match

    (defthm cst-struct-declaration-conc-match
     (implies
         (cst-matchp abnf::cst "struct-declaration")
         (b* ((abnf::cstss (cst-struct-declaration-conc abnf::cst)))
           (cst-list-list-conc-matchp
                abnf::cstss
                "specifier-qualifier-list struct-declarator-list \";\"")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declaration-conc-of-tree-fix-cst

    (defthm cst-struct-declaration-conc-of-tree-fix-cst
      (equal (cst-struct-declaration-conc (abnf::tree-fix abnf::cst))
             (cst-struct-declaration-conc abnf::cst)))

    Theorem: cst-struct-declaration-conc-tree-equiv-congruence-on-cst

    (defthm cst-struct-declaration-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declaration-conc abnf::cst)
                      (cst-struct-declaration-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-specifier-qualifier-list-conc

    (defun cst-specifier-qualifier-list-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
       (xargs :guard (cst-matchp abnf::cst "specifier-qualifier-list")))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-specifier-qualifier-list-conc

    (defthm tree-list-listp-of-cst-specifier-qualifier-list-conc
      (b* ((abnf::cstss (cst-specifier-qualifier-list-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-specifier-qualifier-list-conc-match

    (defthm cst-specifier-qualifier-list-conc-match
     (implies
       (cst-matchp abnf::cst "specifier-qualifier-list")
       (b* ((abnf::cstss (cst-specifier-qualifier-list-conc abnf::cst)))
         (cst-list-list-conc-matchp
              abnf::cstss
              "type-specifier [ specifier-qualifier-list ]")))
     :rule-classes :rewrite)

    Theorem: cst-specifier-qualifier-list-conc-of-tree-fix-cst

    (defthm cst-specifier-qualifier-list-conc-of-tree-fix-cst
     (equal
          (cst-specifier-qualifier-list-conc (abnf::tree-fix abnf::cst))
          (cst-specifier-qualifier-list-conc abnf::cst)))

    Theorem: cst-specifier-qualifier-list-conc-tree-equiv-congruence-on-cst

    (defthm
         cst-specifier-qualifier-list-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-specifier-qualifier-list-conc abnf::cst)
                      (cst-specifier-qualifier-list-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-struct-declarator-list-conc

    (defun cst-struct-declarator-list-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
         (xargs :guard (cst-matchp abnf::cst "struct-declarator-list")))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-struct-declarator-list-conc

    (defthm tree-list-listp-of-cst-struct-declarator-list-conc
      (b* ((abnf::cstss (cst-struct-declarator-list-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-match

    (defthm cst-struct-declarator-list-conc-match
     (implies
         (cst-matchp abnf::cst "struct-declarator-list")
         (b* ((abnf::cstss (cst-struct-declarator-list-conc abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss "struct-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-of-tree-fix-cst

    (defthm cst-struct-declarator-list-conc-of-tree-fix-cst
     (equal (cst-struct-declarator-list-conc (abnf::tree-fix abnf::cst))
            (cst-struct-declarator-list-conc abnf::cst)))

    Theorem: cst-struct-declarator-list-conc-tree-equiv-congruence-on-cst

    (defthm cst-struct-declarator-list-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declarator-list-conc abnf::cst)
                      (cst-struct-declarator-list-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-struct-declarator-conc

    (defun cst-struct-declarator-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "struct-declarator")))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-struct-declarator-conc

    (defthm tree-list-listp-of-cst-struct-declarator-conc
      (b* ((abnf::cstss (cst-struct-declarator-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-match

    (defthm cst-struct-declarator-conc-match
     (implies (cst-matchp abnf::cst "struct-declarator")
              (b* ((abnf::cstss (cst-struct-declarator-conc abnf::cst)))
                (cst-list-list-conc-matchp abnf::cstss "declarator")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-of-tree-fix-cst

    (defthm cst-struct-declarator-conc-of-tree-fix-cst
      (equal (cst-struct-declarator-conc (abnf::tree-fix abnf::cst))
             (cst-struct-declarator-conc abnf::cst)))

    Theorem: cst-struct-declarator-conc-tree-equiv-congruence-on-cst

    (defthm cst-struct-declarator-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declarator-conc abnf::cst)
                      (cst-struct-declarator-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-enum-specifier-conc

    (defun cst-enum-specifier-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "enum-specifier")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-enum-specifier-conc

    (defthm tree-list-listp-of-cst-enum-specifier-conc
      (b* ((abnf::cstss (cst-enum-specifier-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-enum-specifier-conc-match

    (defthm cst-enum-specifier-conc-match
     (implies
       (cst-matchp abnf::cst "enum-specifier")
       (b* ((abnf::cstss (cst-enum-specifier-conc abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "%s\"enum\" identifier")))
     :rule-classes :rewrite)

    Theorem: cst-enum-specifier-conc-of-tree-fix-cst

    (defthm cst-enum-specifier-conc-of-tree-fix-cst
      (equal (cst-enum-specifier-conc (abnf::tree-fix abnf::cst))
             (cst-enum-specifier-conc abnf::cst)))

    Theorem: cst-enum-specifier-conc-tree-equiv-congruence-on-cst

    (defthm cst-enum-specifier-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-enum-specifier-conc abnf::cst)
                      (cst-enum-specifier-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-declarator-conc

    (defun cst-declarator-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "declarator")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-declarator-conc

    (defthm tree-list-listp-of-cst-declarator-conc
      (b* ((abnf::cstss (cst-declarator-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-declarator-conc-match

    (defthm cst-declarator-conc-match
     (implies
         (cst-matchp abnf::cst "declarator")
         (b* ((abnf::cstss (cst-declarator-conc abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss
                                      "[ pointer ] direct-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-declarator-conc-of-tree-fix-cst

    (defthm cst-declarator-conc-of-tree-fix-cst
      (equal (cst-declarator-conc (abnf::tree-fix abnf::cst))
             (cst-declarator-conc abnf::cst)))

    Theorem: cst-declarator-conc-tree-equiv-congruence-on-cst

    (defthm cst-declarator-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-declarator-conc abnf::cst)
                      (cst-declarator-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-parameter-type-list-conc

    (defun cst-parameter-type-list-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "parameter-type-list")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-parameter-type-list-conc

    (defthm tree-list-listp-of-cst-parameter-type-list-conc
      (b* ((abnf::cstss (cst-parameter-type-list-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-match

    (defthm cst-parameter-type-list-conc-match
      (implies
           (cst-matchp abnf::cst "parameter-type-list")
           (b* ((abnf::cstss (cst-parameter-type-list-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "parameter-list")))
      :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-of-tree-fix-cst

    (defthm cst-parameter-type-list-conc-of-tree-fix-cst
      (equal (cst-parameter-type-list-conc (abnf::tree-fix abnf::cst))
             (cst-parameter-type-list-conc abnf::cst)))

    Theorem: cst-parameter-type-list-conc-tree-equiv-congruence-on-cst

    (defthm cst-parameter-type-list-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-parameter-type-list-conc abnf::cst)
                      (cst-parameter-type-list-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-parameter-declaration-conc

    (defun cst-parameter-declaration-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
          (xargs :guard (cst-matchp abnf::cst "parameter-declaration")))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-parameter-declaration-conc

    (defthm tree-list-listp-of-cst-parameter-declaration-conc
      (b* ((abnf::cstss (cst-parameter-declaration-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-parameter-declaration-conc-match

    (defthm cst-parameter-declaration-conc-match
     (implies
      (cst-matchp abnf::cst "parameter-declaration")
      (b* ((abnf::cstss (cst-parameter-declaration-conc abnf::cst)))
       (cst-list-list-conc-matchp abnf::cstss
                                  "declaration-specifiers declarator")))
     :rule-classes :rewrite)

    Theorem: cst-parameter-declaration-conc-of-tree-fix-cst

    (defthm cst-parameter-declaration-conc-of-tree-fix-cst
      (equal (cst-parameter-declaration-conc (abnf::tree-fix abnf::cst))
             (cst-parameter-declaration-conc abnf::cst)))

    Theorem: cst-parameter-declaration-conc-tree-equiv-congruence-on-cst

    (defthm cst-parameter-declaration-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-parameter-declaration-conc abnf::cst)
                      (cst-parameter-declaration-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-type-name-conc

    (defun cst-type-name-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "type-name")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-type-name-conc

    (defthm tree-list-listp-of-cst-type-name-conc
      (b* ((abnf::cstss (cst-type-name-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-type-name-conc-match

    (defthm cst-type-name-conc-match
      (implies
           (cst-matchp abnf::cst "type-name")
           (b* ((abnf::cstss (cst-type-name-conc abnf::cst)))
             (cst-list-list-conc-matchp
                  abnf::cstss
                  "specifier-qualifier-list [ abstract-declarator ]")))
      :rule-classes :rewrite)

    Theorem: cst-type-name-conc-of-tree-fix-cst

    (defthm cst-type-name-conc-of-tree-fix-cst
      (equal (cst-type-name-conc (abnf::tree-fix abnf::cst))
             (cst-type-name-conc abnf::cst)))

    Theorem: cst-type-name-conc-tree-equiv-congruence-on-cst

    (defthm cst-type-name-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-type-name-conc abnf::cst)
                      (cst-type-name-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-typedef-name-conc

    (defun cst-typedef-name-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "typedef-name")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-typedef-name-conc

    (defthm tree-list-listp-of-cst-typedef-name-conc
      (b* ((abnf::cstss (cst-typedef-name-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-match

    (defthm cst-typedef-name-conc-match
      (implies (cst-matchp abnf::cst "typedef-name")
               (b* ((abnf::cstss (cst-typedef-name-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-of-tree-fix-cst

    (defthm cst-typedef-name-conc-of-tree-fix-cst
      (equal (cst-typedef-name-conc (abnf::tree-fix abnf::cst))
             (cst-typedef-name-conc abnf::cst)))

    Theorem: cst-typedef-name-conc-tree-equiv-congruence-on-cst

    (defthm cst-typedef-name-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-typedef-name-conc abnf::cst)
                      (cst-typedef-name-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc1

    (defun cst-statement-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         1))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc1

    (defthm tree-list-listp-of-cst-statement-conc1
      (b* ((abnf::cstss (cst-statement-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc1-match

    (defthm cst-statement-conc1-match
     (implies
         (and (cst-matchp abnf::cst "statement")
              (equal (cst-statement-conc? abnf::cst)
                     1))
         (b* ((abnf::cstss (cst-statement-conc1 abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss "labeled-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc1-of-tree-fix-cst

    (defthm cst-statement-conc1-of-tree-fix-cst
      (equal (cst-statement-conc1 (abnf::tree-fix abnf::cst))
             (cst-statement-conc1 abnf::cst)))

    Theorem: cst-statement-conc1-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc1 abnf::cst)
                      (cst-statement-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc2

    (defun cst-statement-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         2))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc2

    (defthm tree-list-listp-of-cst-statement-conc2
      (b* ((abnf::cstss (cst-statement-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc2-match

    (defthm cst-statement-conc2-match
     (implies
        (and (cst-matchp abnf::cst "statement")
             (equal (cst-statement-conc? abnf::cst)
                    2))
        (b* ((abnf::cstss (cst-statement-conc2 abnf::cst)))
          (cst-list-list-conc-matchp abnf::cstss "compound-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc2-of-tree-fix-cst

    (defthm cst-statement-conc2-of-tree-fix-cst
      (equal (cst-statement-conc2 (abnf::tree-fix abnf::cst))
             (cst-statement-conc2 abnf::cst)))

    Theorem: cst-statement-conc2-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc2 abnf::cst)
                      (cst-statement-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc3

    (defun cst-statement-conc3 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         3))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc3

    (defthm tree-list-listp-of-cst-statement-conc3
      (b* ((abnf::cstss (cst-statement-conc3 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc3-match

    (defthm cst-statement-conc3-match
     (implies
      (and (cst-matchp abnf::cst "statement")
           (equal (cst-statement-conc? abnf::cst)
                  3))
      (b* ((abnf::cstss (cst-statement-conc3 abnf::cst)))
        (cst-list-list-conc-matchp abnf::cstss "expression-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc3-of-tree-fix-cst

    (defthm cst-statement-conc3-of-tree-fix-cst
      (equal (cst-statement-conc3 (abnf::tree-fix abnf::cst))
             (cst-statement-conc3 abnf::cst)))

    Theorem: cst-statement-conc3-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc3-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc3 abnf::cst)
                      (cst-statement-conc3 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc4

    (defun cst-statement-conc4 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         4))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc4

    (defthm tree-list-listp-of-cst-statement-conc4
      (b* ((abnf::cstss (cst-statement-conc4 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc4-match

    (defthm cst-statement-conc4-match
     (implies
       (and (cst-matchp abnf::cst "statement")
            (equal (cst-statement-conc? abnf::cst)
                   4))
       (b* ((abnf::cstss (cst-statement-conc4 abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "selection-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc4-of-tree-fix-cst

    (defthm cst-statement-conc4-of-tree-fix-cst
      (equal (cst-statement-conc4 (abnf::tree-fix abnf::cst))
             (cst-statement-conc4 abnf::cst)))

    Theorem: cst-statement-conc4-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc4-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc4 abnf::cst)
                      (cst-statement-conc4 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc5

    (defun cst-statement-conc5 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         5))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc5

    (defthm tree-list-listp-of-cst-statement-conc5
      (b* ((abnf::cstss (cst-statement-conc5 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc5-match

    (defthm cst-statement-conc5-match
     (implies
       (and (cst-matchp abnf::cst "statement")
            (equal (cst-statement-conc? abnf::cst)
                   5))
       (b* ((abnf::cstss (cst-statement-conc5 abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "iteration-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc5-of-tree-fix-cst

    (defthm cst-statement-conc5-of-tree-fix-cst
      (equal (cst-statement-conc5 (abnf::tree-fix abnf::cst))
             (cst-statement-conc5 abnf::cst)))

    Theorem: cst-statement-conc5-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc5-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc5 abnf::cst)
                      (cst-statement-conc5 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc6

    (defun cst-statement-conc6 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         6))))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-statement-conc6

    (defthm tree-list-listp-of-cst-statement-conc6
      (b* ((abnf::cstss (cst-statement-conc6 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-match

    (defthm cst-statement-conc6-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       6))
           (b* ((abnf::cstss (cst-statement-conc6 abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "jump-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-of-tree-fix-cst

    (defthm cst-statement-conc6-of-tree-fix-cst
      (equal (cst-statement-conc6 (abnf::tree-fix abnf::cst))
             (cst-statement-conc6 abnf::cst)))

    Theorem: cst-statement-conc6-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc6-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc6 abnf::cst)
                      (cst-statement-conc6 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-compound-statement-conc

    (defun cst-compound-statement-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "compound-statement")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-compound-statement-conc

    (defthm tree-list-listp-of-cst-compound-statement-conc
      (b* ((abnf::cstss (cst-compound-statement-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-compound-statement-conc-match

    (defthm cst-compound-statement-conc-match
      (implies
           (cst-matchp abnf::cst "compound-statement")
           (b* ((abnf::cstss (cst-compound-statement-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss
                                        "\"{\" [ block-item-list ] \"}\"")))
      :rule-classes :rewrite)

    Theorem: cst-compound-statement-conc-of-tree-fix-cst

    (defthm cst-compound-statement-conc-of-tree-fix-cst
      (equal (cst-compound-statement-conc (abnf::tree-fix abnf::cst))
             (cst-compound-statement-conc abnf::cst)))

    Theorem: cst-compound-statement-conc-tree-equiv-congruence-on-cst

    (defthm cst-compound-statement-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-compound-statement-conc abnf::cst)
                      (cst-compound-statement-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc1

    (defun cst-block-item-conc1 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        1))))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-block-item-conc1

    (defthm tree-list-listp-of-cst-block-item-conc1
      (b* ((abnf::cstss (cst-block-item-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-match

    (defthm cst-block-item-conc1-match
      (implies (and (cst-matchp abnf::cst "block-item")
                    (equal (cst-block-item-conc? abnf::cst)
                           1))
               (b* ((abnf::cstss (cst-block-item-conc1 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "declaration")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-of-tree-fix-cst

    (defthm cst-block-item-conc1-of-tree-fix-cst
      (equal (cst-block-item-conc1 (abnf::tree-fix abnf::cst))
             (cst-block-item-conc1 abnf::cst)))

    Theorem: cst-block-item-conc1-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc1 abnf::cst)
                      (cst-block-item-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc2

    (defun cst-block-item-conc2 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        2))))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-block-item-conc2

    (defthm tree-list-listp-of-cst-block-item-conc2
      (b* ((abnf::cstss (cst-block-item-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-match

    (defthm cst-block-item-conc2-match
      (implies (and (cst-matchp abnf::cst "block-item")
                    (equal (cst-block-item-conc? abnf::cst)
                           2))
               (b* ((abnf::cstss (cst-block-item-conc2 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "statement")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-of-tree-fix-cst

    (defthm cst-block-item-conc2-of-tree-fix-cst
      (equal (cst-block-item-conc2 (abnf::tree-fix abnf::cst))
             (cst-block-item-conc2 abnf::cst)))

    Theorem: cst-block-item-conc2-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc2 abnf::cst)
                      (cst-block-item-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-expression-statement-conc

    (defun cst-expression-statement-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "expression-statement")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-expression-statement-conc

    (defthm tree-list-listp-of-cst-expression-statement-conc
      (b* ((abnf::cstss (cst-expression-statement-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-expression-statement-conc-match

    (defthm cst-expression-statement-conc-match
     (implies
        (cst-matchp abnf::cst "expression-statement")
        (b* ((abnf::cstss (cst-expression-statement-conc abnf::cst)))
          (cst-list-list-conc-matchp abnf::cstss "[ expression ] \";\"")))
     :rule-classes :rewrite)

    Theorem: cst-expression-statement-conc-of-tree-fix-cst

    (defthm cst-expression-statement-conc-of-tree-fix-cst
      (equal (cst-expression-statement-conc (abnf::tree-fix abnf::cst))
             (cst-expression-statement-conc abnf::cst)))

    Theorem: cst-expression-statement-conc-tree-equiv-congruence-on-cst

    (defthm cst-expression-statement-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-expression-statement-conc abnf::cst)
                      (cst-expression-statement-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-external-declaration-conc1

    (defun cst-external-declaration-conc1 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              1))))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-external-declaration-conc1

    (defthm tree-list-listp-of-cst-external-declaration-conc1
      (b* ((abnf::cstss (cst-external-declaration-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-match

    (defthm cst-external-declaration-conc1-match
     (implies
       (and (cst-matchp abnf::cst "external-declaration")
            (equal (cst-external-declaration-conc? abnf::cst)
                   1))
       (b* ((abnf::cstss (cst-external-declaration-conc1 abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "function-definition")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-of-tree-fix-cst

    (defthm cst-external-declaration-conc1-of-tree-fix-cst
      (equal (cst-external-declaration-conc1 (abnf::tree-fix abnf::cst))
             (cst-external-declaration-conc1 abnf::cst)))

    Theorem: cst-external-declaration-conc1-tree-equiv-congruence-on-cst

    (defthm cst-external-declaration-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-external-declaration-conc1 abnf::cst)
                      (cst-external-declaration-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-external-declaration-conc2

    (defun cst-external-declaration-conc2 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              2))))
     (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-external-declaration-conc2

    (defthm tree-list-listp-of-cst-external-declaration-conc2
      (b* ((abnf::cstss (cst-external-declaration-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-match

    (defthm cst-external-declaration-conc2-match
     (implies
          (and (cst-matchp abnf::cst "external-declaration")
               (equal (cst-external-declaration-conc? abnf::cst)
                      2))
          (b* ((abnf::cstss (cst-external-declaration-conc2 abnf::cst)))
            (cst-list-list-conc-matchp abnf::cstss "declaration")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-of-tree-fix-cst

    (defthm cst-external-declaration-conc2-of-tree-fix-cst
      (equal (cst-external-declaration-conc2 (abnf::tree-fix abnf::cst))
             (cst-external-declaration-conc2 abnf::cst)))

    Theorem: cst-external-declaration-conc2-tree-equiv-congruence-on-cst

    (defthm cst-external-declaration-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-external-declaration-conc2 abnf::cst)
                      (cst-external-declaration-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-function-definition-conc

    (defun cst-function-definition-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "function-definition")))
      (abnf::tree-nonleaf->branches abnf::cst))

    Theorem: tree-list-listp-of-cst-function-definition-conc

    (defthm tree-list-listp-of-cst-function-definition-conc
      (b* ((abnf::cstss (cst-function-definition-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-function-definition-conc-match

    (defthm cst-function-definition-conc-match
     (implies
        (cst-matchp abnf::cst "function-definition")
        (b* ((abnf::cstss (cst-function-definition-conc abnf::cst)))
          (cst-list-list-conc-matchp
               abnf::cstss
               "declaration-specifiers declarator compound-statement")))
     :rule-classes :rewrite)

    Theorem: cst-function-definition-conc-of-tree-fix-cst

    (defthm cst-function-definition-conc-of-tree-fix-cst
      (equal (cst-function-definition-conc (abnf::tree-fix abnf::cst))
             (cst-function-definition-conc abnf::cst)))

    Theorem: cst-function-definition-conc-tree-equiv-congruence-on-cst

    (defthm cst-function-definition-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-function-definition-conc abnf::cst)
                      (cst-function-definition-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-horizontal-tab-conc-rep

    (defun cst-horizontal-tab-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "horizontal-tab")))
      (abnf::tree-list-fix (nth 0 (cst-horizontal-tab-conc abnf::cst))))

    Theorem: tree-listp-of-cst-horizontal-tab-conc-rep

    (defthm tree-listp-of-cst-horizontal-tab-conc-rep
      (b* ((abnf::csts (cst-horizontal-tab-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-rep-match

    (defthm cst-horizontal-tab-conc-rep-match
     (implies (cst-matchp abnf::cst "horizontal-tab")
              (b* ((abnf::csts (cst-horizontal-tab-conc-rep abnf::cst)))
                (cst-list-rep-matchp abnf::csts "%x9")))
     :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-rep-of-tree-fix-cst

    (defthm cst-horizontal-tab-conc-rep-of-tree-fix-cst
      (equal (cst-horizontal-tab-conc-rep (abnf::tree-fix abnf::cst))
             (cst-horizontal-tab-conc-rep abnf::cst)))

    Theorem: cst-horizontal-tab-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-horizontal-tab-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-horizontal-tab-conc-rep abnf::cst)
                      (cst-horizontal-tab-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-line-feed-conc-rep

    (defun cst-line-feed-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "line-feed")))
      (abnf::tree-list-fix (nth 0 (cst-line-feed-conc abnf::cst))))

    Theorem: tree-listp-of-cst-line-feed-conc-rep

    (defthm tree-listp-of-cst-line-feed-conc-rep
      (b* ((abnf::csts (cst-line-feed-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-rep-match

    (defthm cst-line-feed-conc-rep-match
      (implies (cst-matchp abnf::cst "line-feed")
               (b* ((abnf::csts (cst-line-feed-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%xA")))
      :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-rep-of-tree-fix-cst

    (defthm cst-line-feed-conc-rep-of-tree-fix-cst
      (equal (cst-line-feed-conc-rep (abnf::tree-fix abnf::cst))
             (cst-line-feed-conc-rep abnf::cst)))

    Theorem: cst-line-feed-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-line-feed-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-line-feed-conc-rep abnf::cst)
                      (cst-line-feed-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-vertical-tab-conc-rep

    (defun cst-vertical-tab-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "vertical-tab")))
      (abnf::tree-list-fix (nth 0 (cst-vertical-tab-conc abnf::cst))))

    Theorem: tree-listp-of-cst-vertical-tab-conc-rep

    (defthm tree-listp-of-cst-vertical-tab-conc-rep
      (b* ((abnf::csts (cst-vertical-tab-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-rep-match

    (defthm cst-vertical-tab-conc-rep-match
      (implies (cst-matchp abnf::cst "vertical-tab")
               (b* ((abnf::csts (cst-vertical-tab-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%xB")))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-rep-of-tree-fix-cst

    (defthm cst-vertical-tab-conc-rep-of-tree-fix-cst
      (equal (cst-vertical-tab-conc-rep (abnf::tree-fix abnf::cst))
             (cst-vertical-tab-conc-rep abnf::cst)))

    Theorem: cst-vertical-tab-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-vertical-tab-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-vertical-tab-conc-rep abnf::cst)
                      (cst-vertical-tab-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-form-feed-conc-rep

    (defun cst-form-feed-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "form-feed")))
      (abnf::tree-list-fix (nth 0 (cst-form-feed-conc abnf::cst))))

    Theorem: tree-listp-of-cst-form-feed-conc-rep

    (defthm tree-listp-of-cst-form-feed-conc-rep
      (b* ((abnf::csts (cst-form-feed-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-rep-match

    (defthm cst-form-feed-conc-rep-match
      (implies (cst-matchp abnf::cst "form-feed")
               (b* ((abnf::csts (cst-form-feed-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%xC")))
      :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-rep-of-tree-fix-cst

    (defthm cst-form-feed-conc-rep-of-tree-fix-cst
      (equal (cst-form-feed-conc-rep (abnf::tree-fix abnf::cst))
             (cst-form-feed-conc-rep abnf::cst)))

    Theorem: cst-form-feed-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-form-feed-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-form-feed-conc-rep abnf::cst)
                      (cst-form-feed-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-carriage-return-conc-rep

    (defun cst-carriage-return-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "carriage-return")))
      (abnf::tree-list-fix (nth 0
                                (cst-carriage-return-conc abnf::cst))))

    Theorem: tree-listp-of-cst-carriage-return-conc-rep

    (defthm tree-listp-of-cst-carriage-return-conc-rep
      (b* ((abnf::csts (cst-carriage-return-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-rep-match

    (defthm cst-carriage-return-conc-rep-match
      (implies
           (cst-matchp abnf::cst "carriage-return")
           (b* ((abnf::csts (cst-carriage-return-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "%xD")))
      :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-rep-of-tree-fix-cst

    (defthm cst-carriage-return-conc-rep-of-tree-fix-cst
      (equal (cst-carriage-return-conc-rep (abnf::tree-fix abnf::cst))
             (cst-carriage-return-conc-rep abnf::cst)))

    Theorem: cst-carriage-return-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-carriage-return-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-carriage-return-conc-rep abnf::cst)
                      (cst-carriage-return-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-space-conc-rep

    (defun cst-space-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "space")))
      (abnf::tree-list-fix (nth 0 (cst-space-conc abnf::cst))))

    Theorem: tree-listp-of-cst-space-conc-rep

    (defthm tree-listp-of-cst-space-conc-rep
      (b* ((abnf::csts (cst-space-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-rep-match

    (defthm cst-space-conc-rep-match
      (implies (cst-matchp abnf::cst "space")
               (b* ((abnf::csts (cst-space-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%x20")))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-rep-of-tree-fix-cst

    (defthm cst-space-conc-rep-of-tree-fix-cst
      (equal (cst-space-conc-rep (abnf::tree-fix abnf::cst))
             (cst-space-conc-rep abnf::cst)))

    Theorem: cst-space-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-space-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-space-conc-rep abnf::cst)
                      (cst-space-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-double-quote-conc-rep

    (defun cst-double-quote-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "double-quote")))
      (abnf::tree-list-fix (nth 0 (cst-double-quote-conc abnf::cst))))

    Theorem: tree-listp-of-cst-double-quote-conc-rep

    (defthm tree-listp-of-cst-double-quote-conc-rep
      (b* ((abnf::csts (cst-double-quote-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-rep-match

    (defthm cst-double-quote-conc-rep-match
      (implies (cst-matchp abnf::cst "double-quote")
               (b* ((abnf::csts (cst-double-quote-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%x22")))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-rep-of-tree-fix-cst

    (defthm cst-double-quote-conc-rep-of-tree-fix-cst
      (equal (cst-double-quote-conc-rep (abnf::tree-fix abnf::cst))
             (cst-double-quote-conc-rep abnf::cst)))

    Theorem: cst-double-quote-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-double-quote-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-double-quote-conc-rep abnf::cst)
                      (cst-double-quote-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-character-conc-rep

    (defun cst-character-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "character")))
      (abnf::tree-list-fix (nth 0 (cst-character-conc abnf::cst))))

    Theorem: tree-listp-of-cst-character-conc-rep

    (defthm tree-listp-of-cst-character-conc-rep
      (b* ((abnf::csts (cst-character-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-character-conc-rep-match

    (defthm cst-character-conc-rep-match
      (implies (cst-matchp abnf::cst "character")
               (b* ((abnf::csts (cst-character-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%x0-7F")))
      :rule-classes :rewrite)

    Theorem: cst-character-conc-rep-of-tree-fix-cst

    (defthm cst-character-conc-rep-of-tree-fix-cst
      (equal (cst-character-conc-rep (abnf::tree-fix abnf::cst))
             (cst-character-conc-rep abnf::cst)))

    Theorem: cst-character-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-character-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-character-conc-rep abnf::cst)
                      (cst-character-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc1-rep

    (defun cst-token-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 1))))
      (abnf::tree-list-fix (nth 0 (cst-token-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-token-conc1-rep

    (defthm tree-listp-of-cst-token-conc1-rep
      (b* ((abnf::csts (cst-token-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-rep-match

    (defthm cst-token-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 1))
               (b* ((abnf::csts (cst-token-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "keyword")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-rep-of-tree-fix-cst

    (defthm cst-token-conc1-rep-of-tree-fix-cst
      (equal (cst-token-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-token-conc1-rep abnf::cst)))

    Theorem: cst-token-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-token-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc1-rep abnf::cst)
                      (cst-token-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc2-rep

    (defun cst-token-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 2))))
      (abnf::tree-list-fix (nth 0 (cst-token-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-token-conc2-rep

    (defthm tree-listp-of-cst-token-conc2-rep
      (b* ((abnf::csts (cst-token-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-rep-match

    (defthm cst-token-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 2))
               (b* ((abnf::csts (cst-token-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-rep-of-tree-fix-cst

    (defthm cst-token-conc2-rep-of-tree-fix-cst
      (equal (cst-token-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-token-conc2-rep abnf::cst)))

    Theorem: cst-token-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-token-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc2-rep abnf::cst)
                      (cst-token-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc3-rep

    (defun cst-token-conc3-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 3))))
      (abnf::tree-list-fix (nth 0 (cst-token-conc3 abnf::cst))))

    Theorem: tree-listp-of-cst-token-conc3-rep

    (defthm tree-listp-of-cst-token-conc3-rep
      (b* ((abnf::csts (cst-token-conc3-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-rep-match

    (defthm cst-token-conc3-rep-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 3))
               (b* ((abnf::csts (cst-token-conc3-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "constant")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-rep-of-tree-fix-cst

    (defthm cst-token-conc3-rep-of-tree-fix-cst
      (equal (cst-token-conc3-rep (abnf::tree-fix abnf::cst))
             (cst-token-conc3-rep abnf::cst)))

    Theorem: cst-token-conc3-rep-tree-equiv-congruence-on-cst

    (defthm cst-token-conc3-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc3-rep abnf::cst)
                      (cst-token-conc3-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc4-rep

    (defun cst-token-conc4-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 4))))
      (abnf::tree-list-fix (nth 0 (cst-token-conc4 abnf::cst))))

    Theorem: tree-listp-of-cst-token-conc4-rep

    (defthm tree-listp-of-cst-token-conc4-rep
      (b* ((abnf::csts (cst-token-conc4-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-rep-match

    (defthm cst-token-conc4-rep-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 4))
               (b* ((abnf::csts (cst-token-conc4-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "punctuator")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-rep-of-tree-fix-cst

    (defthm cst-token-conc4-rep-of-tree-fix-cst
      (equal (cst-token-conc4-rep (abnf::tree-fix abnf::cst))
             (cst-token-conc4-rep abnf::cst)))

    Theorem: cst-token-conc4-rep-tree-equiv-congruence-on-cst

    (defthm cst-token-conc4-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc4-rep abnf::cst)
                      (cst-token-conc4-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-identifier-nondigit-conc-rep

    (defun cst-identifier-nondigit-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "identifier-nondigit")))
      (abnf::tree-list-fix
           (nth 0
                (cst-identifier-nondigit-conc abnf::cst))))

    Theorem: tree-listp-of-cst-identifier-nondigit-conc-rep

    (defthm tree-listp-of-cst-identifier-nondigit-conc-rep
      (b* ((abnf::csts (cst-identifier-nondigit-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-rep-match

    (defthm cst-identifier-nondigit-conc-rep-match
     (implies
         (cst-matchp abnf::cst "identifier-nondigit")
         (b* ((abnf::csts (cst-identifier-nondigit-conc-rep abnf::cst)))
           (cst-list-rep-matchp abnf::csts "nondigit")))
     :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-rep-of-tree-fix-cst

    (defthm cst-identifier-nondigit-conc-rep-of-tree-fix-cst
      (equal
           (cst-identifier-nondigit-conc-rep (abnf::tree-fix abnf::cst))
           (cst-identifier-nondigit-conc-rep abnf::cst)))

    Theorem: cst-identifier-nondigit-conc-rep-tree-equiv-congruence-on-cst

    (defthm
          cst-identifier-nondigit-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-identifier-nondigit-conc-rep abnf::cst)
                      (cst-identifier-nondigit-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-conc1-rep

    (defun cst-constant-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         1))))
      (abnf::tree-list-fix (nth 0 (cst-constant-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-constant-conc1-rep

    (defthm tree-listp-of-cst-constant-conc1-rep
      (b* ((abnf::csts (cst-constant-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc1-rep-match

    (defthm cst-constant-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "constant")
                    (equal (cst-constant-conc? abnf::cst)
                           1))
               (b* ((abnf::csts (cst-constant-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "integer-constant")))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc1-rep-of-tree-fix-cst

    (defthm cst-constant-conc1-rep-of-tree-fix-cst
      (equal (cst-constant-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-constant-conc1-rep abnf::cst)))

    Theorem: cst-constant-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc1-rep abnf::cst)
                      (cst-constant-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-conc2-rep

    (defun cst-constant-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         2))))
      (abnf::tree-list-fix (nth 0 (cst-constant-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-constant-conc2-rep

    (defthm tree-listp-of-cst-constant-conc2-rep
      (b* ((abnf::csts (cst-constant-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc2-rep-match

    (defthm cst-constant-conc2-rep-match
      (implies
           (and (cst-matchp abnf::cst "constant")
                (equal (cst-constant-conc? abnf::cst)
                       2))
           (b* ((abnf::csts (cst-constant-conc2-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "enumeration-constant")))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc2-rep-of-tree-fix-cst

    (defthm cst-constant-conc2-rep-of-tree-fix-cst
      (equal (cst-constant-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-constant-conc2-rep abnf::cst)))

    Theorem: cst-constant-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc2-rep abnf::cst)
                      (cst-constant-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-hexadecimal-prefix-conc-rep

    (defun cst-hexadecimal-prefix-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "hexadecimal-prefix")))
      (abnf::tree-list-fix
           (nth 0
                (cst-hexadecimal-prefix-conc abnf::cst))))

    Theorem: tree-listp-of-cst-hexadecimal-prefix-conc-rep

    (defthm tree-listp-of-cst-hexadecimal-prefix-conc-rep
      (b* ((abnf::csts (cst-hexadecimal-prefix-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-rep-match

    (defthm cst-hexadecimal-prefix-conc-rep-match
     (implies
          (cst-matchp abnf::cst "hexadecimal-prefix")
          (b* ((abnf::csts (cst-hexadecimal-prefix-conc-rep abnf::cst)))
            (cst-list-rep-matchp abnf::csts "%i\"0x\"")))
     :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-rep-of-tree-fix-cst

    (defthm cst-hexadecimal-prefix-conc-rep-of-tree-fix-cst
     (equal (cst-hexadecimal-prefix-conc-rep (abnf::tree-fix abnf::cst))
            (cst-hexadecimal-prefix-conc-rep abnf::cst)))

    Theorem: cst-hexadecimal-prefix-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-hexadecimal-prefix-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-hexadecimal-prefix-conc-rep abnf::cst)
                      (cst-hexadecimal-prefix-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-unsigned-suffix-conc-rep

    (defun cst-unsigned-suffix-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "unsigned-suffix")))
      (abnf::tree-list-fix (nth 0
                                (cst-unsigned-suffix-conc abnf::cst))))

    Theorem: tree-listp-of-cst-unsigned-suffix-conc-rep

    (defthm tree-listp-of-cst-unsigned-suffix-conc-rep
      (b* ((abnf::csts (cst-unsigned-suffix-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-rep-match

    (defthm cst-unsigned-suffix-conc-rep-match
      (implies
           (cst-matchp abnf::cst "unsigned-suffix")
           (b* ((abnf::csts (cst-unsigned-suffix-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "%i\"u\"")))
      :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-rep-of-tree-fix-cst

    (defthm cst-unsigned-suffix-conc-rep-of-tree-fix-cst
      (equal (cst-unsigned-suffix-conc-rep (abnf::tree-fix abnf::cst))
             (cst-unsigned-suffix-conc-rep abnf::cst)))

    Theorem: cst-unsigned-suffix-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-unsigned-suffix-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-unsigned-suffix-conc-rep abnf::cst)
                      (cst-unsigned-suffix-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-long-suffix-conc-rep

    (defun cst-long-suffix-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "long-suffix")))
      (abnf::tree-list-fix (nth 0 (cst-long-suffix-conc abnf::cst))))

    Theorem: tree-listp-of-cst-long-suffix-conc-rep

    (defthm tree-listp-of-cst-long-suffix-conc-rep
      (b* ((abnf::csts (cst-long-suffix-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-rep-match

    (defthm cst-long-suffix-conc-rep-match
      (implies (cst-matchp abnf::cst "long-suffix")
               (b* ((abnf::csts (cst-long-suffix-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%i\"l\"")))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-rep-of-tree-fix-cst

    (defthm cst-long-suffix-conc-rep-of-tree-fix-cst
      (equal (cst-long-suffix-conc-rep (abnf::tree-fix abnf::cst))
             (cst-long-suffix-conc-rep abnf::cst)))

    Theorem: cst-long-suffix-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-long-suffix-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-long-suffix-conc-rep abnf::cst)
                      (cst-long-suffix-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-enumeration-constant-conc-rep

    (defun cst-enumeration-constant-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "enumeration-constant")))
      (abnf::tree-list-fix
           (nth 0
                (cst-enumeration-constant-conc abnf::cst))))

    Theorem: tree-listp-of-cst-enumeration-constant-conc-rep

    (defthm tree-listp-of-cst-enumeration-constant-conc-rep
      (b* ((abnf::csts (cst-enumeration-constant-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-rep-match

    (defthm cst-enumeration-constant-conc-rep-match
     (implies
        (cst-matchp abnf::cst "enumeration-constant")
        (b* ((abnf::csts (cst-enumeration-constant-conc-rep abnf::cst)))
          (cst-list-rep-matchp abnf::csts "identifier")))
     :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-rep-of-tree-fix-cst

    (defthm cst-enumeration-constant-conc-rep-of-tree-fix-cst
     (equal
          (cst-enumeration-constant-conc-rep (abnf::tree-fix abnf::cst))
          (cst-enumeration-constant-conc-rep abnf::cst)))

    Theorem: cst-enumeration-constant-conc-rep-tree-equiv-congruence-on-cst

    (defthm
         cst-enumeration-constant-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-enumeration-constant-conc-rep abnf::cst)
                      (cst-enumeration-constant-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-comment-conc1-rep

    (defun cst-comment-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         1))))
      (abnf::tree-list-fix (nth 0 (cst-comment-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-comment-conc1-rep

    (defthm tree-listp-of-cst-comment-conc1-rep
      (b* ((abnf::csts (cst-comment-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-rep-match

    (defthm cst-comment-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "comment")
                    (equal (cst-comment-conc? abnf::cst) 1))
               (b* ((abnf::csts (cst-comment-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "block-comment")))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-rep-of-tree-fix-cst

    (defthm cst-comment-conc1-rep-of-tree-fix-cst
      (equal (cst-comment-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-comment-conc1-rep abnf::cst)))

    Theorem: cst-comment-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc1-rep abnf::cst)
                      (cst-comment-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-comment-conc2-rep

    (defun cst-comment-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         2))))
      (abnf::tree-list-fix (nth 0 (cst-comment-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-comment-conc2-rep

    (defthm tree-listp-of-cst-comment-conc2-rep
      (b* ((abnf::csts (cst-comment-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc2-rep-match

    (defthm cst-comment-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "comment")
                    (equal (cst-comment-conc? abnf::cst) 2))
               (b* ((abnf::csts (cst-comment-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "line-comment")))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc2-rep-of-tree-fix-cst

    (defthm cst-comment-conc2-rep-of-tree-fix-cst
      (equal (cst-comment-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-comment-conc2-rep abnf::cst)))

    Theorem: cst-comment-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc2-rep abnf::cst)
                      (cst-comment-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc1-rep

    (defun cst-white-space-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     1))))
      (abnf::tree-list-fix (nth 0 (cst-white-space-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-white-space-conc1-rep

    (defthm tree-listp-of-cst-white-space-conc1-rep
      (b* ((abnf::csts (cst-white-space-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-rep-match

    (defthm cst-white-space-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           1))
               (b* ((abnf::csts (cst-white-space-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "space")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-rep-of-tree-fix-cst

    (defthm cst-white-space-conc1-rep-of-tree-fix-cst
      (equal (cst-white-space-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-white-space-conc1-rep abnf::cst)))

    Theorem: cst-white-space-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc1-rep abnf::cst)
                      (cst-white-space-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc2-rep

    (defun cst-white-space-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     2))))
      (abnf::tree-list-fix (nth 0 (cst-white-space-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-white-space-conc2-rep

    (defthm tree-listp-of-cst-white-space-conc2-rep
      (b* ((abnf::csts (cst-white-space-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-rep-match

    (defthm cst-white-space-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           2))
               (b* ((abnf::csts (cst-white-space-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "horizontal-tab")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-rep-of-tree-fix-cst

    (defthm cst-white-space-conc2-rep-of-tree-fix-cst
      (equal (cst-white-space-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-white-space-conc2-rep abnf::cst)))

    Theorem: cst-white-space-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc2-rep abnf::cst)
                      (cst-white-space-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc3-rep

    (defun cst-white-space-conc3-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     3))))
      (abnf::tree-list-fix (nth 0 (cst-white-space-conc3 abnf::cst))))

    Theorem: tree-listp-of-cst-white-space-conc3-rep

    (defthm tree-listp-of-cst-white-space-conc3-rep
      (b* ((abnf::csts (cst-white-space-conc3-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-rep-match

    (defthm cst-white-space-conc3-rep-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           3))
               (b* ((abnf::csts (cst-white-space-conc3-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "vertical-tab")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-rep-of-tree-fix-cst

    (defthm cst-white-space-conc3-rep-of-tree-fix-cst
      (equal (cst-white-space-conc3-rep (abnf::tree-fix abnf::cst))
             (cst-white-space-conc3-rep abnf::cst)))

    Theorem: cst-white-space-conc3-rep-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc3-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc3-rep abnf::cst)
                      (cst-white-space-conc3-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc4-rep

    (defun cst-white-space-conc4-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     4))))
      (abnf::tree-list-fix (nth 0 (cst-white-space-conc4 abnf::cst))))

    Theorem: tree-listp-of-cst-white-space-conc4-rep

    (defthm tree-listp-of-cst-white-space-conc4-rep
      (b* ((abnf::csts (cst-white-space-conc4-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-rep-match

    (defthm cst-white-space-conc4-rep-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           4))
               (b* ((abnf::csts (cst-white-space-conc4-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "form-feed")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-rep-of-tree-fix-cst

    (defthm cst-white-space-conc4-rep-of-tree-fix-cst
      (equal (cst-white-space-conc4-rep (abnf::tree-fix abnf::cst))
             (cst-white-space-conc4-rep abnf::cst)))

    Theorem: cst-white-space-conc4-rep-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc4-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc4-rep abnf::cst)
                      (cst-white-space-conc4-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc5-rep

    (defun cst-white-space-conc5-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     5))))
      (abnf::tree-list-fix (nth 0 (cst-white-space-conc5 abnf::cst))))

    Theorem: tree-listp-of-cst-white-space-conc5-rep

    (defthm tree-listp-of-cst-white-space-conc5-rep
      (b* ((abnf::csts (cst-white-space-conc5-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-rep-match

    (defthm cst-white-space-conc5-rep-match
      (implies (and (cst-matchp abnf::cst "white-space")
                    (equal (cst-white-space-conc? abnf::cst)
                           5))
               (b* ((abnf::csts (cst-white-space-conc5-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "new-line")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-rep-of-tree-fix-cst

    (defthm cst-white-space-conc5-rep-of-tree-fix-cst
      (equal (cst-white-space-conc5-rep (abnf::tree-fix abnf::cst))
             (cst-white-space-conc5-rep abnf::cst)))

    Theorem: cst-white-space-conc5-rep-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc5-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc5-rep abnf::cst)
                      (cst-white-space-conc5-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc1-rep

    (defun cst-lexeme-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         1))))
      (abnf::tree-list-fix (nth 0 (cst-lexeme-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-lexeme-conc1-rep

    (defthm tree-listp-of-cst-lexeme-conc1-rep
      (b* ((abnf::csts (cst-lexeme-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-rep-match

    (defthm cst-lexeme-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 1))
               (b* ((abnf::csts (cst-lexeme-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "token")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-rep-of-tree-fix-cst

    (defthm cst-lexeme-conc1-rep-of-tree-fix-cst
      (equal (cst-lexeme-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc1-rep abnf::cst)))

    Theorem: cst-lexeme-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc1-rep abnf::cst)
                      (cst-lexeme-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc2-rep

    (defun cst-lexeme-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         2))))
      (abnf::tree-list-fix (nth 0 (cst-lexeme-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-lexeme-conc2-rep

    (defthm tree-listp-of-cst-lexeme-conc2-rep
      (b* ((abnf::csts (cst-lexeme-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-rep-match

    (defthm cst-lexeme-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 2))
               (b* ((abnf::csts (cst-lexeme-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "comment")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-rep-of-tree-fix-cst

    (defthm cst-lexeme-conc2-rep-of-tree-fix-cst
      (equal (cst-lexeme-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc2-rep abnf::cst)))

    Theorem: cst-lexeme-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc2-rep abnf::cst)
                      (cst-lexeme-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc3-rep

    (defun cst-lexeme-conc3-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         3))))
      (abnf::tree-list-fix (nth 0 (cst-lexeme-conc3 abnf::cst))))

    Theorem: tree-listp-of-cst-lexeme-conc3-rep

    (defthm tree-listp-of-cst-lexeme-conc3-rep
      (b* ((abnf::csts (cst-lexeme-conc3-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-rep-match

    (defthm cst-lexeme-conc3-rep-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 3))
               (b* ((abnf::csts (cst-lexeme-conc3-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "white-space")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-rep-of-tree-fix-cst

    (defthm cst-lexeme-conc3-rep-of-tree-fix-cst
      (equal (cst-lexeme-conc3-rep (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc3-rep abnf::cst)))

    Theorem: cst-lexeme-conc3-rep-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc3-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc3-rep abnf::cst)
                      (cst-lexeme-conc3-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-expression-conc-rep

    (defun cst-expression-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "expression")))
      (abnf::tree-list-fix (nth 0 (cst-expression-conc abnf::cst))))

    Theorem: tree-listp-of-cst-expression-conc-rep

    (defthm tree-listp-of-cst-expression-conc-rep
      (b* ((abnf::csts (cst-expression-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-expression-conc-rep-match

    (defthm cst-expression-conc-rep-match
      (implies
           (cst-matchp abnf::cst "expression")
           (b* ((abnf::csts (cst-expression-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "assignment-expression")))
      :rule-classes :rewrite)

    Theorem: cst-expression-conc-rep-of-tree-fix-cst

    (defthm cst-expression-conc-rep-of-tree-fix-cst
      (equal (cst-expression-conc-rep (abnf::tree-fix abnf::cst))
             (cst-expression-conc-rep abnf::cst)))

    Theorem: cst-expression-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-expression-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-expression-conc-rep abnf::cst)
                      (cst-expression-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-expression-conc-rep

    (defun cst-constant-expression-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "constant-expression")))
      (abnf::tree-list-fix
           (nth 0
                (cst-constant-expression-conc abnf::cst))))

    Theorem: tree-listp-of-cst-constant-expression-conc-rep

    (defthm tree-listp-of-cst-constant-expression-conc-rep
      (b* ((abnf::csts (cst-constant-expression-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-rep-match

    (defthm cst-constant-expression-conc-rep-match
     (implies
         (cst-matchp abnf::cst "constant-expression")
         (b* ((abnf::csts (cst-constant-expression-conc-rep abnf::cst)))
           (cst-list-rep-matchp abnf::csts "conditional-expression")))
     :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-rep-of-tree-fix-cst

    (defthm cst-constant-expression-conc-rep-of-tree-fix-cst
      (equal
           (cst-constant-expression-conc-rep (abnf::tree-fix abnf::cst))
           (cst-constant-expression-conc-rep abnf::cst)))

    Theorem: cst-constant-expression-conc-rep-tree-equiv-congruence-on-cst

    (defthm
          cst-constant-expression-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-expression-conc-rep abnf::cst)
                      (cst-constant-expression-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-init-declarator-list-conc-rep

    (defun cst-init-declarator-list-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "init-declarator-list")))
      (abnf::tree-list-fix
           (nth 0
                (cst-init-declarator-list-conc abnf::cst))))

    Theorem: tree-listp-of-cst-init-declarator-list-conc-rep

    (defthm tree-listp-of-cst-init-declarator-list-conc-rep
      (b* ((abnf::csts (cst-init-declarator-list-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-rep-match

    (defthm cst-init-declarator-list-conc-rep-match
     (implies
        (cst-matchp abnf::cst "init-declarator-list")
        (b* ((abnf::csts (cst-init-declarator-list-conc-rep abnf::cst)))
          (cst-list-rep-matchp abnf::csts "init-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-rep-of-tree-fix-cst

    (defthm cst-init-declarator-list-conc-rep-of-tree-fix-cst
     (equal
          (cst-init-declarator-list-conc-rep (abnf::tree-fix abnf::cst))
          (cst-init-declarator-list-conc-rep abnf::cst)))

    Theorem: cst-init-declarator-list-conc-rep-tree-equiv-congruence-on-cst

    (defthm
         cst-init-declarator-list-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-init-declarator-list-conc-rep abnf::cst)
                      (cst-init-declarator-list-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-storage-class-specifier-conc-rep

    (defun cst-storage-class-specifier-conc-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
        (xargs :guard (cst-matchp abnf::cst "storage-class-specifier")))
     (abnf::tree-list-fix
          (nth 0
               (cst-storage-class-specifier-conc abnf::cst))))

    Theorem: tree-listp-of-cst-storage-class-specifier-conc-rep

    (defthm tree-listp-of-cst-storage-class-specifier-conc-rep
     (b* ((abnf::csts (cst-storage-class-specifier-conc-rep abnf::cst)))
       (abnf::tree-listp abnf::csts))
     :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-rep-match

    (defthm cst-storage-class-specifier-conc-rep-match
     (implies
       (cst-matchp abnf::cst "storage-class-specifier")
       (b*
         ((abnf::csts (cst-storage-class-specifier-conc-rep abnf::cst)))
         (cst-list-rep-matchp abnf::csts "%s\"extern\"")))
     :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-rep-of-tree-fix-cst

    (defthm cst-storage-class-specifier-conc-rep-of-tree-fix-cst
     (equal
       (cst-storage-class-specifier-conc-rep (abnf::tree-fix abnf::cst))
       (cst-storage-class-specifier-conc-rep abnf::cst)))

    Theorem: cst-storage-class-specifier-conc-rep-tree-equiv-congruence-on-cst

    (defthm
      cst-storage-class-specifier-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-storage-class-specifier-conc-rep abnf::cst)
                      (cst-storage-class-specifier-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-struct-declarator-list-conc-rep

    (defun cst-struct-declarator-list-conc-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
         (xargs :guard (cst-matchp abnf::cst "struct-declarator-list")))
     (abnf::tree-list-fix
          (nth 0
               (cst-struct-declarator-list-conc abnf::cst))))

    Theorem: tree-listp-of-cst-struct-declarator-list-conc-rep

    (defthm tree-listp-of-cst-struct-declarator-list-conc-rep
      (b* ((abnf::csts (cst-struct-declarator-list-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-rep-match

    (defthm cst-struct-declarator-list-conc-rep-match
     (implies
      (cst-matchp abnf::cst "struct-declarator-list")
      (b* ((abnf::csts (cst-struct-declarator-list-conc-rep abnf::cst)))
        (cst-list-rep-matchp abnf::csts "struct-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-rep-of-tree-fix-cst

    (defthm cst-struct-declarator-list-conc-rep-of-tree-fix-cst
     (equal
        (cst-struct-declarator-list-conc-rep (abnf::tree-fix abnf::cst))
        (cst-struct-declarator-list-conc-rep abnf::cst)))

    Theorem: cst-struct-declarator-list-conc-rep-tree-equiv-congruence-on-cst

    (defthm
       cst-struct-declarator-list-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declarator-list-conc-rep abnf::cst)
                      (cst-struct-declarator-list-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-struct-declarator-conc-rep

    (defun cst-struct-declarator-conc-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "struct-declarator")))
     (abnf::tree-list-fix (nth 0
                               (cst-struct-declarator-conc abnf::cst))))

    Theorem: tree-listp-of-cst-struct-declarator-conc-rep

    (defthm tree-listp-of-cst-struct-declarator-conc-rep
      (b* ((abnf::csts (cst-struct-declarator-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-rep-match

    (defthm cst-struct-declarator-conc-rep-match
      (implies
           (cst-matchp abnf::cst "struct-declarator")
           (b* ((abnf::csts (cst-struct-declarator-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "declarator")))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-rep-of-tree-fix-cst

    (defthm cst-struct-declarator-conc-rep-of-tree-fix-cst
      (equal (cst-struct-declarator-conc-rep (abnf::tree-fix abnf::cst))
             (cst-struct-declarator-conc-rep abnf::cst)))

    Theorem: cst-struct-declarator-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-struct-declarator-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declarator-conc-rep abnf::cst)
                      (cst-struct-declarator-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-parameter-type-list-conc-rep

    (defun cst-parameter-type-list-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "parameter-type-list")))
      (abnf::tree-list-fix
           (nth 0
                (cst-parameter-type-list-conc abnf::cst))))

    Theorem: tree-listp-of-cst-parameter-type-list-conc-rep

    (defthm tree-listp-of-cst-parameter-type-list-conc-rep
      (b* ((abnf::csts (cst-parameter-type-list-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-rep-match

    (defthm cst-parameter-type-list-conc-rep-match
     (implies
         (cst-matchp abnf::cst "parameter-type-list")
         (b* ((abnf::csts (cst-parameter-type-list-conc-rep abnf::cst)))
           (cst-list-rep-matchp abnf::csts "parameter-list")))
     :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-rep-of-tree-fix-cst

    (defthm cst-parameter-type-list-conc-rep-of-tree-fix-cst
      (equal
           (cst-parameter-type-list-conc-rep (abnf::tree-fix abnf::cst))
           (cst-parameter-type-list-conc-rep abnf::cst)))

    Theorem: cst-parameter-type-list-conc-rep-tree-equiv-congruence-on-cst

    (defthm
          cst-parameter-type-list-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-parameter-type-list-conc-rep abnf::cst)
                      (cst-parameter-type-list-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-typedef-name-conc-rep

    (defun cst-typedef-name-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "typedef-name")))
      (abnf::tree-list-fix (nth 0 (cst-typedef-name-conc abnf::cst))))

    Theorem: tree-listp-of-cst-typedef-name-conc-rep

    (defthm tree-listp-of-cst-typedef-name-conc-rep
      (b* ((abnf::csts (cst-typedef-name-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-rep-match

    (defthm cst-typedef-name-conc-rep-match
      (implies (cst-matchp abnf::cst "typedef-name")
               (b* ((abnf::csts (cst-typedef-name-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-rep-of-tree-fix-cst

    (defthm cst-typedef-name-conc-rep-of-tree-fix-cst
      (equal (cst-typedef-name-conc-rep (abnf::tree-fix abnf::cst))
             (cst-typedef-name-conc-rep abnf::cst)))

    Theorem: cst-typedef-name-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-typedef-name-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-typedef-name-conc-rep abnf::cst)
                      (cst-typedef-name-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc1-rep

    (defun cst-statement-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         1))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc1-rep

    (defthm tree-listp-of-cst-statement-conc1-rep
      (b* ((abnf::csts (cst-statement-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc1-rep-match

    (defthm cst-statement-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "statement")
                    (equal (cst-statement-conc? abnf::cst)
                           1))
               (b* ((abnf::csts (cst-statement-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "labeled-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc1-rep-of-tree-fix-cst

    (defthm cst-statement-conc1-rep-of-tree-fix-cst
      (equal (cst-statement-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc1-rep abnf::cst)))

    Theorem: cst-statement-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc1-rep abnf::cst)
                      (cst-statement-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc2-rep

    (defun cst-statement-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         2))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc2-rep

    (defthm tree-listp-of-cst-statement-conc2-rep
      (b* ((abnf::csts (cst-statement-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc2-rep-match

    (defthm cst-statement-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "statement")
                    (equal (cst-statement-conc? abnf::cst)
                           2))
               (b* ((abnf::csts (cst-statement-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "compound-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc2-rep-of-tree-fix-cst

    (defthm cst-statement-conc2-rep-of-tree-fix-cst
      (equal (cst-statement-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc2-rep abnf::cst)))

    Theorem: cst-statement-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc2-rep abnf::cst)
                      (cst-statement-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc3-rep

    (defun cst-statement-conc3-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         3))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc3 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc3-rep

    (defthm tree-listp-of-cst-statement-conc3-rep
      (b* ((abnf::csts (cst-statement-conc3-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc3-rep-match

    (defthm cst-statement-conc3-rep-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       3))
           (b* ((abnf::csts (cst-statement-conc3-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "expression-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc3-rep-of-tree-fix-cst

    (defthm cst-statement-conc3-rep-of-tree-fix-cst
      (equal (cst-statement-conc3-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc3-rep abnf::cst)))

    Theorem: cst-statement-conc3-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc3-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc3-rep abnf::cst)
                      (cst-statement-conc3-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc4-rep

    (defun cst-statement-conc4-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         4))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc4 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc4-rep

    (defthm tree-listp-of-cst-statement-conc4-rep
      (b* ((abnf::csts (cst-statement-conc4-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc4-rep-match

    (defthm cst-statement-conc4-rep-match
     (implies (and (cst-matchp abnf::cst "statement")
                   (equal (cst-statement-conc? abnf::cst)
                          4))
              (b* ((abnf::csts (cst-statement-conc4-rep abnf::cst)))
                (cst-list-rep-matchp abnf::csts "selection-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc4-rep-of-tree-fix-cst

    (defthm cst-statement-conc4-rep-of-tree-fix-cst
      (equal (cst-statement-conc4-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc4-rep abnf::cst)))

    Theorem: cst-statement-conc4-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc4-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc4-rep abnf::cst)
                      (cst-statement-conc4-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc5-rep

    (defun cst-statement-conc5-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         5))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc5 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc5-rep

    (defthm tree-listp-of-cst-statement-conc5-rep
      (b* ((abnf::csts (cst-statement-conc5-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc5-rep-match

    (defthm cst-statement-conc5-rep-match
     (implies (and (cst-matchp abnf::cst "statement")
                   (equal (cst-statement-conc? abnf::cst)
                          5))
              (b* ((abnf::csts (cst-statement-conc5-rep abnf::cst)))
                (cst-list-rep-matchp abnf::csts "iteration-statement")))
     :rule-classes :rewrite)

    Theorem: cst-statement-conc5-rep-of-tree-fix-cst

    (defthm cst-statement-conc5-rep-of-tree-fix-cst
      (equal (cst-statement-conc5-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc5-rep abnf::cst)))

    Theorem: cst-statement-conc5-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc5-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc5-rep abnf::cst)
                      (cst-statement-conc5-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc6-rep

    (defun cst-statement-conc6-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         6))))
      (abnf::tree-list-fix (nth 0 (cst-statement-conc6 abnf::cst))))

    Theorem: tree-listp-of-cst-statement-conc6-rep

    (defthm tree-listp-of-cst-statement-conc6-rep
      (b* ((abnf::csts (cst-statement-conc6-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-rep-match

    (defthm cst-statement-conc6-rep-match
      (implies (and (cst-matchp abnf::cst "statement")
                    (equal (cst-statement-conc? abnf::cst)
                           6))
               (b* ((abnf::csts (cst-statement-conc6-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "jump-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-rep-of-tree-fix-cst

    (defthm cst-statement-conc6-rep-of-tree-fix-cst
      (equal (cst-statement-conc6-rep (abnf::tree-fix abnf::cst))
             (cst-statement-conc6-rep abnf::cst)))

    Theorem: cst-statement-conc6-rep-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc6-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc6-rep abnf::cst)
                      (cst-statement-conc6-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc1-rep

    (defun cst-block-item-conc1-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        1))))
     (abnf::tree-list-fix (nth 0 (cst-block-item-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-block-item-conc1-rep

    (defthm tree-listp-of-cst-block-item-conc1-rep
      (b* ((abnf::csts (cst-block-item-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-rep-match

    (defthm cst-block-item-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "block-item")
                    (equal (cst-block-item-conc? abnf::cst)
                           1))
               (b* ((abnf::csts (cst-block-item-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "declaration")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-rep-of-tree-fix-cst

    (defthm cst-block-item-conc1-rep-of-tree-fix-cst
      (equal (cst-block-item-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-block-item-conc1-rep abnf::cst)))

    Theorem: cst-block-item-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc1-rep abnf::cst)
                      (cst-block-item-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc2-rep

    (defun cst-block-item-conc2-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        2))))
     (abnf::tree-list-fix (nth 0 (cst-block-item-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-block-item-conc2-rep

    (defthm tree-listp-of-cst-block-item-conc2-rep
      (b* ((abnf::csts (cst-block-item-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-rep-match

    (defthm cst-block-item-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "block-item")
                    (equal (cst-block-item-conc? abnf::cst)
                           2))
               (b* ((abnf::csts (cst-block-item-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "statement")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-rep-of-tree-fix-cst

    (defthm cst-block-item-conc2-rep-of-tree-fix-cst
      (equal (cst-block-item-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-block-item-conc2-rep abnf::cst)))

    Theorem: cst-block-item-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc2-rep abnf::cst)
                      (cst-block-item-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-external-declaration-conc1-rep

    (defun cst-external-declaration-conc1-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              1))))
     (abnf::tree-list-fix
          (nth 0
               (cst-external-declaration-conc1 abnf::cst))))

    Theorem: tree-listp-of-cst-external-declaration-conc1-rep

    (defthm tree-listp-of-cst-external-declaration-conc1-rep
      (b* ((abnf::csts (cst-external-declaration-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-rep-match

    (defthm cst-external-declaration-conc1-rep-match
     (implies
       (and (cst-matchp abnf::cst "external-declaration")
            (equal (cst-external-declaration-conc? abnf::cst)
                   1))
       (b* ((abnf::csts (cst-external-declaration-conc1-rep abnf::cst)))
         (cst-list-rep-matchp abnf::csts "function-definition")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-rep-of-tree-fix-cst

    (defthm cst-external-declaration-conc1-rep-of-tree-fix-cst
     (equal
         (cst-external-declaration-conc1-rep (abnf::tree-fix abnf::cst))
         (cst-external-declaration-conc1-rep abnf::cst)))

    Theorem: cst-external-declaration-conc1-rep-tree-equiv-congruence-on-cst

    (defthm
        cst-external-declaration-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-external-declaration-conc1-rep abnf::cst)
                      (cst-external-declaration-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-external-declaration-conc2-rep

    (defun cst-external-declaration-conc2-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              2))))
     (abnf::tree-list-fix
          (nth 0
               (cst-external-declaration-conc2 abnf::cst))))

    Theorem: tree-listp-of-cst-external-declaration-conc2-rep

    (defthm tree-listp-of-cst-external-declaration-conc2-rep
      (b* ((abnf::csts (cst-external-declaration-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-rep-match

    (defthm cst-external-declaration-conc2-rep-match
     (implies
       (and (cst-matchp abnf::cst "external-declaration")
            (equal (cst-external-declaration-conc? abnf::cst)
                   2))
       (b* ((abnf::csts (cst-external-declaration-conc2-rep abnf::cst)))
         (cst-list-rep-matchp abnf::csts "declaration")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-rep-of-tree-fix-cst

    (defthm cst-external-declaration-conc2-rep-of-tree-fix-cst
     (equal
         (cst-external-declaration-conc2-rep (abnf::tree-fix abnf::cst))
         (cst-external-declaration-conc2-rep abnf::cst)))

    Theorem: cst-external-declaration-conc2-rep-tree-equiv-congruence-on-cst

    (defthm
        cst-external-declaration-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-external-declaration-conc2-rep abnf::cst)
                      (cst-external-declaration-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-horizontal-tab-conc-rep-elem

    (defun cst-horizontal-tab-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "horizontal-tab")))
      (abnf::tree-fix (nth 0
                           (cst-horizontal-tab-conc-rep abnf::cst))))

    Theorem: treep-of-cst-horizontal-tab-conc-rep-elem

    (defthm treep-of-cst-horizontal-tab-conc-rep-elem
      (b* ((abnf::cst1 (cst-horizontal-tab-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-rep-elem-match

    (defthm cst-horizontal-tab-conc-rep-elem-match
     (implies
         (cst-matchp abnf::cst "horizontal-tab")
         (b* ((abnf::cst1 (cst-horizontal-tab-conc-rep-elem abnf::cst)))
           (cst-matchp abnf::cst1 "%x9")))
     :rule-classes :rewrite)

    Theorem: cst-horizontal-tab-conc-rep-elem-of-tree-fix-cst

    (defthm cst-horizontal-tab-conc-rep-elem-of-tree-fix-cst
      (equal
           (cst-horizontal-tab-conc-rep-elem (abnf::tree-fix abnf::cst))
           (cst-horizontal-tab-conc-rep-elem abnf::cst)))

    Theorem: cst-horizontal-tab-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
          cst-horizontal-tab-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-horizontal-tab-conc-rep-elem abnf::cst)
                      (cst-horizontal-tab-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-line-feed-conc-rep-elem

    (defun cst-line-feed-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "line-feed")))
      (abnf::tree-fix (nth 0 (cst-line-feed-conc-rep abnf::cst))))

    Theorem: treep-of-cst-line-feed-conc-rep-elem

    (defthm treep-of-cst-line-feed-conc-rep-elem
      (b* ((abnf::cst1 (cst-line-feed-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-rep-elem-match

    (defthm cst-line-feed-conc-rep-elem-match
     (implies (cst-matchp abnf::cst "line-feed")
              (b* ((abnf::cst1 (cst-line-feed-conc-rep-elem abnf::cst)))
                (cst-matchp abnf::cst1 "%xA")))
     :rule-classes :rewrite)

    Theorem: cst-line-feed-conc-rep-elem-of-tree-fix-cst

    (defthm cst-line-feed-conc-rep-elem-of-tree-fix-cst
      (equal (cst-line-feed-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-line-feed-conc-rep-elem abnf::cst)))

    Theorem: cst-line-feed-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-line-feed-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-line-feed-conc-rep-elem abnf::cst)
                      (cst-line-feed-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-vertical-tab-conc-rep-elem

    (defun cst-vertical-tab-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "vertical-tab")))
      (abnf::tree-fix (nth 0
                           (cst-vertical-tab-conc-rep abnf::cst))))

    Theorem: treep-of-cst-vertical-tab-conc-rep-elem

    (defthm treep-of-cst-vertical-tab-conc-rep-elem
      (b* ((abnf::cst1 (cst-vertical-tab-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-rep-elem-match

    (defthm cst-vertical-tab-conc-rep-elem-match
      (implies
           (cst-matchp abnf::cst "vertical-tab")
           (b* ((abnf::cst1 (cst-vertical-tab-conc-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "%xB")))
      :rule-classes :rewrite)

    Theorem: cst-vertical-tab-conc-rep-elem-of-tree-fix-cst

    (defthm cst-vertical-tab-conc-rep-elem-of-tree-fix-cst
      (equal (cst-vertical-tab-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-vertical-tab-conc-rep-elem abnf::cst)))

    Theorem: cst-vertical-tab-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-vertical-tab-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-vertical-tab-conc-rep-elem abnf::cst)
                      (cst-vertical-tab-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-form-feed-conc-rep-elem

    (defun cst-form-feed-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "form-feed")))
      (abnf::tree-fix (nth 0 (cst-form-feed-conc-rep abnf::cst))))

    Theorem: treep-of-cst-form-feed-conc-rep-elem

    (defthm treep-of-cst-form-feed-conc-rep-elem
      (b* ((abnf::cst1 (cst-form-feed-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-rep-elem-match

    (defthm cst-form-feed-conc-rep-elem-match
     (implies (cst-matchp abnf::cst "form-feed")
              (b* ((abnf::cst1 (cst-form-feed-conc-rep-elem abnf::cst)))
                (cst-matchp abnf::cst1 "%xC")))
     :rule-classes :rewrite)

    Theorem: cst-form-feed-conc-rep-elem-of-tree-fix-cst

    (defthm cst-form-feed-conc-rep-elem-of-tree-fix-cst
      (equal (cst-form-feed-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-form-feed-conc-rep-elem abnf::cst)))

    Theorem: cst-form-feed-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-form-feed-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-form-feed-conc-rep-elem abnf::cst)
                      (cst-form-feed-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-carriage-return-conc-rep-elem

    (defun cst-carriage-return-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "carriage-return")))
      (abnf::tree-fix (nth 0
                           (cst-carriage-return-conc-rep abnf::cst))))

    Theorem: treep-of-cst-carriage-return-conc-rep-elem

    (defthm treep-of-cst-carriage-return-conc-rep-elem
      (b* ((abnf::cst1 (cst-carriage-return-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-rep-elem-match

    (defthm cst-carriage-return-conc-rep-elem-match
     (implies
        (cst-matchp abnf::cst "carriage-return")
        (b* ((abnf::cst1 (cst-carriage-return-conc-rep-elem abnf::cst)))
          (cst-matchp abnf::cst1 "%xD")))
     :rule-classes :rewrite)

    Theorem: cst-carriage-return-conc-rep-elem-of-tree-fix-cst

    (defthm cst-carriage-return-conc-rep-elem-of-tree-fix-cst
     (equal
          (cst-carriage-return-conc-rep-elem (abnf::tree-fix abnf::cst))
          (cst-carriage-return-conc-rep-elem abnf::cst)))

    Theorem: cst-carriage-return-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
         cst-carriage-return-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-carriage-return-conc-rep-elem abnf::cst)
                      (cst-carriage-return-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-space-conc-rep-elem

    (defun cst-space-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "space")))
      (abnf::tree-fix (nth 0 (cst-space-conc-rep abnf::cst))))

    Theorem: treep-of-cst-space-conc-rep-elem

    (defthm treep-of-cst-space-conc-rep-elem
      (b* ((abnf::cst1 (cst-space-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-rep-elem-match

    (defthm cst-space-conc-rep-elem-match
      (implies (cst-matchp abnf::cst "space")
               (b* ((abnf::cst1 (cst-space-conc-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "%x20")))
      :rule-classes :rewrite)

    Theorem: cst-space-conc-rep-elem-of-tree-fix-cst

    (defthm cst-space-conc-rep-elem-of-tree-fix-cst
      (equal (cst-space-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-space-conc-rep-elem abnf::cst)))

    Theorem: cst-space-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-space-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-space-conc-rep-elem abnf::cst)
                      (cst-space-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-double-quote-conc-rep-elem

    (defun cst-double-quote-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "double-quote")))
      (abnf::tree-fix (nth 0
                           (cst-double-quote-conc-rep abnf::cst))))

    Theorem: treep-of-cst-double-quote-conc-rep-elem

    (defthm treep-of-cst-double-quote-conc-rep-elem
      (b* ((abnf::cst1 (cst-double-quote-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-rep-elem-match

    (defthm cst-double-quote-conc-rep-elem-match
      (implies
           (cst-matchp abnf::cst "double-quote")
           (b* ((abnf::cst1 (cst-double-quote-conc-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "%x22")))
      :rule-classes :rewrite)

    Theorem: cst-double-quote-conc-rep-elem-of-tree-fix-cst

    (defthm cst-double-quote-conc-rep-elem-of-tree-fix-cst
      (equal (cst-double-quote-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-double-quote-conc-rep-elem abnf::cst)))

    Theorem: cst-double-quote-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-double-quote-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-double-quote-conc-rep-elem abnf::cst)
                      (cst-double-quote-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-character-conc-rep-elem

    (defun cst-character-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "character")))
      (abnf::tree-fix (nth 0 (cst-character-conc-rep abnf::cst))))

    Theorem: treep-of-cst-character-conc-rep-elem

    (defthm treep-of-cst-character-conc-rep-elem
      (b* ((abnf::cst1 (cst-character-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-character-conc-rep-elem-match

    (defthm cst-character-conc-rep-elem-match
     (implies (cst-matchp abnf::cst "character")
              (b* ((abnf::cst1 (cst-character-conc-rep-elem abnf::cst)))
                (cst-matchp abnf::cst1 "%x0-7F")))
     :rule-classes :rewrite)

    Theorem: cst-character-conc-rep-elem-of-tree-fix-cst

    (defthm cst-character-conc-rep-elem-of-tree-fix-cst
      (equal (cst-character-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-character-conc-rep-elem abnf::cst)))

    Theorem: cst-character-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-character-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-character-conc-rep-elem abnf::cst)
                      (cst-character-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc1-rep-elem

    (defun cst-token-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 1))))
      (abnf::tree-fix (nth 0 (cst-token-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-token-conc1-rep-elem

    (defthm treep-of-cst-token-conc1-rep-elem
      (b* ((abnf::cst1 (cst-token-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-rep-elem-match

    (defthm cst-token-conc1-rep-elem-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 1))
               (b* ((abnf::cst1 (cst-token-conc1-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "keyword")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-token-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-token-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-token-conc1-rep-elem abnf::cst)))

    Theorem: cst-token-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-token-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc1-rep-elem abnf::cst)
                      (cst-token-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc2-rep-elem

    (defun cst-token-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 2))))
      (abnf::tree-fix (nth 0 (cst-token-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-token-conc2-rep-elem

    (defthm treep-of-cst-token-conc2-rep-elem
      (b* ((abnf::cst1 (cst-token-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-rep-elem-match

    (defthm cst-token-conc2-rep-elem-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 2))
               (b* ((abnf::cst1 (cst-token-conc2-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-token-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-token-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-token-conc2-rep-elem abnf::cst)))

    Theorem: cst-token-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-token-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc2-rep-elem abnf::cst)
                      (cst-token-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc3-rep-elem

    (defun cst-token-conc3-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 3))))
      (abnf::tree-fix (nth 0 (cst-token-conc3-rep abnf::cst))))

    Theorem: treep-of-cst-token-conc3-rep-elem

    (defthm treep-of-cst-token-conc3-rep-elem
      (b* ((abnf::cst1 (cst-token-conc3-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-rep-elem-match

    (defthm cst-token-conc3-rep-elem-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 3))
               (b* ((abnf::cst1 (cst-token-conc3-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "constant")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc3-rep-elem-of-tree-fix-cst

    (defthm cst-token-conc3-rep-elem-of-tree-fix-cst
      (equal (cst-token-conc3-rep-elem (abnf::tree-fix abnf::cst))
             (cst-token-conc3-rep-elem abnf::cst)))

    Theorem: cst-token-conc3-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-token-conc3-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc3-rep-elem abnf::cst)
                      (cst-token-conc3-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-token-conc4-rep-elem

    (defun cst-token-conc4-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "token")
                              (equal (cst-token-conc? abnf::cst) 4))))
      (abnf::tree-fix (nth 0 (cst-token-conc4-rep abnf::cst))))

    Theorem: treep-of-cst-token-conc4-rep-elem

    (defthm treep-of-cst-token-conc4-rep-elem
      (b* ((abnf::cst1 (cst-token-conc4-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-rep-elem-match

    (defthm cst-token-conc4-rep-elem-match
      (implies (and (cst-matchp abnf::cst "token")
                    (equal (cst-token-conc? abnf::cst) 4))
               (b* ((abnf::cst1 (cst-token-conc4-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "punctuator")))
      :rule-classes :rewrite)

    Theorem: cst-token-conc4-rep-elem-of-tree-fix-cst

    (defthm cst-token-conc4-rep-elem-of-tree-fix-cst
      (equal (cst-token-conc4-rep-elem (abnf::tree-fix abnf::cst))
             (cst-token-conc4-rep-elem abnf::cst)))

    Theorem: cst-token-conc4-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-token-conc4-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-token-conc4-rep-elem abnf::cst)
                      (cst-token-conc4-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-identifier-nondigit-conc-rep-elem

    (defun cst-identifier-nondigit-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "identifier-nondigit")))
      (abnf::tree-fix
           (nth 0
                (cst-identifier-nondigit-conc-rep abnf::cst))))

    Theorem: treep-of-cst-identifier-nondigit-conc-rep-elem

    (defthm treep-of-cst-identifier-nondigit-conc-rep-elem
      (b*
        ((abnf::cst1 (cst-identifier-nondigit-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-rep-elem-match

    (defthm cst-identifier-nondigit-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "identifier-nondigit")
       (b*
        ((abnf::cst1 (cst-identifier-nondigit-conc-rep-elem abnf::cst)))
        (cst-matchp abnf::cst1 "nondigit")))
     :rule-classes :rewrite)

    Theorem: cst-identifier-nondigit-conc-rep-elem-of-tree-fix-cst

    (defthm cst-identifier-nondigit-conc-rep-elem-of-tree-fix-cst
     (equal
      (cst-identifier-nondigit-conc-rep-elem (abnf::tree-fix abnf::cst))
      (cst-identifier-nondigit-conc-rep-elem abnf::cst)))

    Theorem: cst-identifier-nondigit-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-identifier-nondigit-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies (abnf::tree-equiv abnf::cst cst-equiv)
              (equal (cst-identifier-nondigit-conc-rep-elem abnf::cst)
                     (cst-identifier-nondigit-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-constant-conc1-rep-elem

    (defun cst-constant-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         1))))
      (abnf::tree-fix (nth 0 (cst-constant-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-constant-conc1-rep-elem

    (defthm treep-of-cst-constant-conc1-rep-elem
      (b* ((abnf::cst1 (cst-constant-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc1-rep-elem-match

    (defthm cst-constant-conc1-rep-elem-match
     (implies (and (cst-matchp abnf::cst "constant")
                   (equal (cst-constant-conc? abnf::cst)
                          1))
              (b* ((abnf::cst1 (cst-constant-conc1-rep-elem abnf::cst)))
                (cst-matchp abnf::cst1 "integer-constant")))
     :rule-classes :rewrite)

    Theorem: cst-constant-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-constant-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-constant-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-constant-conc1-rep-elem abnf::cst)))

    Theorem: cst-constant-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc1-rep-elem abnf::cst)
                      (cst-constant-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-conc2-rep-elem

    (defun cst-constant-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "constant")
                                  (equal (cst-constant-conc? abnf::cst)
                                         2))))
      (abnf::tree-fix (nth 0 (cst-constant-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-constant-conc2-rep-elem

    (defthm treep-of-cst-constant-conc2-rep-elem
      (b* ((abnf::cst1 (cst-constant-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-constant-conc2-rep-elem-match

    (defthm cst-constant-conc2-rep-elem-match
     (implies (and (cst-matchp abnf::cst "constant")
                   (equal (cst-constant-conc? abnf::cst)
                          2))
              (b* ((abnf::cst1 (cst-constant-conc2-rep-elem abnf::cst)))
                (cst-matchp abnf::cst1 "enumeration-constant")))
     :rule-classes :rewrite)

    Theorem: cst-constant-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-constant-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-constant-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-constant-conc2-rep-elem abnf::cst)))

    Theorem: cst-constant-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-constant-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constant-conc2-rep-elem abnf::cst)
                      (cst-constant-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-hexadecimal-prefix-conc-rep-elem

    (defun cst-hexadecimal-prefix-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
          (xargs :guard (cst-matchp abnf::cst "hexadecimal-prefix")))
     (abnf::tree-fix (nth 0
                          (cst-hexadecimal-prefix-conc-rep abnf::cst))))

    Theorem: treep-of-cst-hexadecimal-prefix-conc-rep-elem

    (defthm treep-of-cst-hexadecimal-prefix-conc-rep-elem
     (b* ((abnf::cst1 (cst-hexadecimal-prefix-conc-rep-elem abnf::cst)))
       (abnf::treep abnf::cst1))
     :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-rep-elem-match

    (defthm cst-hexadecimal-prefix-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "hexadecimal-prefix")
       (b*
         ((abnf::cst1 (cst-hexadecimal-prefix-conc-rep-elem abnf::cst)))
         (cst-matchp abnf::cst1 "%i\"0x\"")))
     :rule-classes :rewrite)

    Theorem: cst-hexadecimal-prefix-conc-rep-elem-of-tree-fix-cst

    (defthm cst-hexadecimal-prefix-conc-rep-elem-of-tree-fix-cst
     (equal
       (cst-hexadecimal-prefix-conc-rep-elem (abnf::tree-fix abnf::cst))
       (cst-hexadecimal-prefix-conc-rep-elem abnf::cst)))

    Theorem: cst-hexadecimal-prefix-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
      cst-hexadecimal-prefix-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-hexadecimal-prefix-conc-rep-elem abnf::cst)
                      (cst-hexadecimal-prefix-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-unsigned-suffix-conc-rep-elem

    (defun cst-unsigned-suffix-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "unsigned-suffix")))
      (abnf::tree-fix (nth 0
                           (cst-unsigned-suffix-conc-rep abnf::cst))))

    Theorem: treep-of-cst-unsigned-suffix-conc-rep-elem

    (defthm treep-of-cst-unsigned-suffix-conc-rep-elem
      (b* ((abnf::cst1 (cst-unsigned-suffix-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-rep-elem-match

    (defthm cst-unsigned-suffix-conc-rep-elem-match
     (implies
        (cst-matchp abnf::cst "unsigned-suffix")
        (b* ((abnf::cst1 (cst-unsigned-suffix-conc-rep-elem abnf::cst)))
          (cst-matchp abnf::cst1 "%i\"u\"")))
     :rule-classes :rewrite)

    Theorem: cst-unsigned-suffix-conc-rep-elem-of-tree-fix-cst

    (defthm cst-unsigned-suffix-conc-rep-elem-of-tree-fix-cst
     (equal
          (cst-unsigned-suffix-conc-rep-elem (abnf::tree-fix abnf::cst))
          (cst-unsigned-suffix-conc-rep-elem abnf::cst)))

    Theorem: cst-unsigned-suffix-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
         cst-unsigned-suffix-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-unsigned-suffix-conc-rep-elem abnf::cst)
                      (cst-unsigned-suffix-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-long-suffix-conc-rep-elem

    (defun cst-long-suffix-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "long-suffix")))
      (abnf::tree-fix (nth 0
                           (cst-long-suffix-conc-rep abnf::cst))))

    Theorem: treep-of-cst-long-suffix-conc-rep-elem

    (defthm treep-of-cst-long-suffix-conc-rep-elem
      (b* ((abnf::cst1 (cst-long-suffix-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-rep-elem-match

    (defthm cst-long-suffix-conc-rep-elem-match
      (implies
           (cst-matchp abnf::cst "long-suffix")
           (b* ((abnf::cst1 (cst-long-suffix-conc-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "%i\"l\"")))
      :rule-classes :rewrite)

    Theorem: cst-long-suffix-conc-rep-elem-of-tree-fix-cst

    (defthm cst-long-suffix-conc-rep-elem-of-tree-fix-cst
      (equal (cst-long-suffix-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-long-suffix-conc-rep-elem abnf::cst)))

    Theorem: cst-long-suffix-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-long-suffix-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-long-suffix-conc-rep-elem abnf::cst)
                      (cst-long-suffix-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-enumeration-constant-conc-rep-elem

    (defun cst-enumeration-constant-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "enumeration-constant")))
      (abnf::tree-fix
           (nth 0
                (cst-enumeration-constant-conc-rep abnf::cst))))

    Theorem: treep-of-cst-enumeration-constant-conc-rep-elem

    (defthm treep-of-cst-enumeration-constant-conc-rep-elem
      (b*
       ((abnf::cst1 (cst-enumeration-constant-conc-rep-elem abnf::cst)))
       (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-rep-elem-match

    (defthm cst-enumeration-constant-conc-rep-elem-match
     (implies
      (cst-matchp abnf::cst "enumeration-constant")
      (b*
       ((abnf::cst1 (cst-enumeration-constant-conc-rep-elem abnf::cst)))
       (cst-matchp abnf::cst1 "identifier")))
     :rule-classes :rewrite)

    Theorem: cst-enumeration-constant-conc-rep-elem-of-tree-fix-cst

    (defthm cst-enumeration-constant-conc-rep-elem-of-tree-fix-cst
      (equal (cst-enumeration-constant-conc-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-enumeration-constant-conc-rep-elem abnf::cst)))

    Theorem: cst-enumeration-constant-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-enumeration-constant-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-enumeration-constant-conc-rep-elem abnf::cst)
                 (cst-enumeration-constant-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-comment-conc1-rep-elem

    (defun cst-comment-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         1))))
      (abnf::tree-fix (nth 0 (cst-comment-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-comment-conc1-rep-elem

    (defthm treep-of-cst-comment-conc1-rep-elem
      (b* ((abnf::cst1 (cst-comment-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-rep-elem-match

    (defthm cst-comment-conc1-rep-elem-match
      (implies (and (cst-matchp abnf::cst "comment")
                    (equal (cst-comment-conc? abnf::cst) 1))
               (b* ((abnf::cst1 (cst-comment-conc1-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "block-comment")))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-comment-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-comment-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-comment-conc1-rep-elem abnf::cst)))

    Theorem: cst-comment-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc1-rep-elem abnf::cst)
                      (cst-comment-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-comment-conc2-rep-elem

    (defun cst-comment-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "comment")
                                  (equal (cst-comment-conc? abnf::cst)
                                         2))))
      (abnf::tree-fix (nth 0 (cst-comment-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-comment-conc2-rep-elem

    (defthm treep-of-cst-comment-conc2-rep-elem
      (b* ((abnf::cst1 (cst-comment-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc2-rep-elem-match

    (defthm cst-comment-conc2-rep-elem-match
      (implies (and (cst-matchp abnf::cst "comment")
                    (equal (cst-comment-conc? abnf::cst) 2))
               (b* ((abnf::cst1 (cst-comment-conc2-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "line-comment")))
      :rule-classes :rewrite)

    Theorem: cst-comment-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-comment-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-comment-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-comment-conc2-rep-elem abnf::cst)))

    Theorem: cst-comment-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-comment-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-comment-conc2-rep-elem abnf::cst)
                      (cst-comment-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc1-rep-elem

    (defun cst-white-space-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     1))))
      (abnf::tree-fix (nth 0
                           (cst-white-space-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-white-space-conc1-rep-elem

    (defthm treep-of-cst-white-space-conc1-rep-elem
      (b* ((abnf::cst1 (cst-white-space-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-rep-elem-match

    (defthm cst-white-space-conc1-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       1))
           (b* ((abnf::cst1 (cst-white-space-conc1-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "space")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-white-space-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-white-space-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-white-space-conc1-rep-elem abnf::cst)))

    Theorem: cst-white-space-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc1-rep-elem abnf::cst)
                      (cst-white-space-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc2-rep-elem

    (defun cst-white-space-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     2))))
      (abnf::tree-fix (nth 0
                           (cst-white-space-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-white-space-conc2-rep-elem

    (defthm treep-of-cst-white-space-conc2-rep-elem
      (b* ((abnf::cst1 (cst-white-space-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-rep-elem-match

    (defthm cst-white-space-conc2-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       2))
           (b* ((abnf::cst1 (cst-white-space-conc2-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "horizontal-tab")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-white-space-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-white-space-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-white-space-conc2-rep-elem abnf::cst)))

    Theorem: cst-white-space-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc2-rep-elem abnf::cst)
                      (cst-white-space-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc3-rep-elem

    (defun cst-white-space-conc3-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     3))))
      (abnf::tree-fix (nth 0
                           (cst-white-space-conc3-rep abnf::cst))))

    Theorem: treep-of-cst-white-space-conc3-rep-elem

    (defthm treep-of-cst-white-space-conc3-rep-elem
      (b* ((abnf::cst1 (cst-white-space-conc3-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-rep-elem-match

    (defthm cst-white-space-conc3-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       3))
           (b* ((abnf::cst1 (cst-white-space-conc3-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "vertical-tab")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc3-rep-elem-of-tree-fix-cst

    (defthm cst-white-space-conc3-rep-elem-of-tree-fix-cst
      (equal (cst-white-space-conc3-rep-elem (abnf::tree-fix abnf::cst))
             (cst-white-space-conc3-rep-elem abnf::cst)))

    Theorem: cst-white-space-conc3-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc3-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc3-rep-elem abnf::cst)
                      (cst-white-space-conc3-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc4-rep-elem

    (defun cst-white-space-conc4-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     4))))
      (abnf::tree-fix (nth 0
                           (cst-white-space-conc4-rep abnf::cst))))

    Theorem: treep-of-cst-white-space-conc4-rep-elem

    (defthm treep-of-cst-white-space-conc4-rep-elem
      (b* ((abnf::cst1 (cst-white-space-conc4-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-rep-elem-match

    (defthm cst-white-space-conc4-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       4))
           (b* ((abnf::cst1 (cst-white-space-conc4-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "form-feed")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc4-rep-elem-of-tree-fix-cst

    (defthm cst-white-space-conc4-rep-elem-of-tree-fix-cst
      (equal (cst-white-space-conc4-rep-elem (abnf::tree-fix abnf::cst))
             (cst-white-space-conc4-rep-elem abnf::cst)))

    Theorem: cst-white-space-conc4-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc4-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc4-rep-elem abnf::cst)
                      (cst-white-space-conc4-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-white-space-conc5-rep-elem

    (defun cst-white-space-conc5-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (and (cst-matchp abnf::cst "white-space")
                              (equal (cst-white-space-conc? abnf::cst)
                                     5))))
      (abnf::tree-fix (nth 0
                           (cst-white-space-conc5-rep abnf::cst))))

    Theorem: treep-of-cst-white-space-conc5-rep-elem

    (defthm treep-of-cst-white-space-conc5-rep-elem
      (b* ((abnf::cst1 (cst-white-space-conc5-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-rep-elem-match

    (defthm cst-white-space-conc5-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "white-space")
                (equal (cst-white-space-conc? abnf::cst)
                       5))
           (b* ((abnf::cst1 (cst-white-space-conc5-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "new-line")))
      :rule-classes :rewrite)

    Theorem: cst-white-space-conc5-rep-elem-of-tree-fix-cst

    (defthm cst-white-space-conc5-rep-elem-of-tree-fix-cst
      (equal (cst-white-space-conc5-rep-elem (abnf::tree-fix abnf::cst))
             (cst-white-space-conc5-rep-elem abnf::cst)))

    Theorem: cst-white-space-conc5-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-white-space-conc5-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-white-space-conc5-rep-elem abnf::cst)
                      (cst-white-space-conc5-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc1-rep-elem

    (defun cst-lexeme-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         1))))
      (abnf::tree-fix (nth 0 (cst-lexeme-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-lexeme-conc1-rep-elem

    (defthm treep-of-cst-lexeme-conc1-rep-elem
      (b* ((abnf::cst1 (cst-lexeme-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-rep-elem-match

    (defthm cst-lexeme-conc1-rep-elem-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 1))
               (b* ((abnf::cst1 (cst-lexeme-conc1-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "token")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-lexeme-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-lexeme-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc1-rep-elem abnf::cst)))

    Theorem: cst-lexeme-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc1-rep-elem abnf::cst)
                      (cst-lexeme-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc2-rep-elem

    (defun cst-lexeme-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         2))))
      (abnf::tree-fix (nth 0 (cst-lexeme-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-lexeme-conc2-rep-elem

    (defthm treep-of-cst-lexeme-conc2-rep-elem
      (b* ((abnf::cst1 (cst-lexeme-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-rep-elem-match

    (defthm cst-lexeme-conc2-rep-elem-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 2))
               (b* ((abnf::cst1 (cst-lexeme-conc2-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "comment")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-lexeme-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-lexeme-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc2-rep-elem abnf::cst)))

    Theorem: cst-lexeme-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc2-rep-elem abnf::cst)
                      (cst-lexeme-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lexeme-conc3-rep-elem

    (defun cst-lexeme-conc3-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "lexeme")
                                  (equal (cst-lexeme-conc? abnf::cst)
                                         3))))
      (abnf::tree-fix (nth 0 (cst-lexeme-conc3-rep abnf::cst))))

    Theorem: treep-of-cst-lexeme-conc3-rep-elem

    (defthm treep-of-cst-lexeme-conc3-rep-elem
      (b* ((abnf::cst1 (cst-lexeme-conc3-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-rep-elem-match

    (defthm cst-lexeme-conc3-rep-elem-match
      (implies (and (cst-matchp abnf::cst "lexeme")
                    (equal (cst-lexeme-conc? abnf::cst) 3))
               (b* ((abnf::cst1 (cst-lexeme-conc3-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "white-space")))
      :rule-classes :rewrite)

    Theorem: cst-lexeme-conc3-rep-elem-of-tree-fix-cst

    (defthm cst-lexeme-conc3-rep-elem-of-tree-fix-cst
      (equal (cst-lexeme-conc3-rep-elem (abnf::tree-fix abnf::cst))
             (cst-lexeme-conc3-rep-elem abnf::cst)))

    Theorem: cst-lexeme-conc3-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-lexeme-conc3-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lexeme-conc3-rep-elem abnf::cst)
                      (cst-lexeme-conc3-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-expression-conc-rep-elem

    (defun cst-expression-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "expression")))
      (abnf::tree-fix (nth 0 (cst-expression-conc-rep abnf::cst))))

    Theorem: treep-of-cst-expression-conc-rep-elem

    (defthm treep-of-cst-expression-conc-rep-elem
      (b* ((abnf::cst1 (cst-expression-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-expression-conc-rep-elem-match

    (defthm cst-expression-conc-rep-elem-match
      (implies
           (cst-matchp abnf::cst "expression")
           (b* ((abnf::cst1 (cst-expression-conc-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "assignment-expression")))
      :rule-classes :rewrite)

    Theorem: cst-expression-conc-rep-elem-of-tree-fix-cst

    (defthm cst-expression-conc-rep-elem-of-tree-fix-cst
      (equal (cst-expression-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-expression-conc-rep-elem abnf::cst)))

    Theorem: cst-expression-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-expression-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-expression-conc-rep-elem abnf::cst)
                      (cst-expression-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constant-expression-conc-rep-elem

    (defun cst-constant-expression-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "constant-expression")))
      (abnf::tree-fix
           (nth 0
                (cst-constant-expression-conc-rep abnf::cst))))

    Theorem: treep-of-cst-constant-expression-conc-rep-elem

    (defthm treep-of-cst-constant-expression-conc-rep-elem
      (b*
        ((abnf::cst1 (cst-constant-expression-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-rep-elem-match

    (defthm cst-constant-expression-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "constant-expression")
       (b*
        ((abnf::cst1 (cst-constant-expression-conc-rep-elem abnf::cst)))
        (cst-matchp abnf::cst1 "conditional-expression")))
     :rule-classes :rewrite)

    Theorem: cst-constant-expression-conc-rep-elem-of-tree-fix-cst

    (defthm cst-constant-expression-conc-rep-elem-of-tree-fix-cst
     (equal
      (cst-constant-expression-conc-rep-elem (abnf::tree-fix abnf::cst))
      (cst-constant-expression-conc-rep-elem abnf::cst)))

    Theorem: cst-constant-expression-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-constant-expression-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies (abnf::tree-equiv abnf::cst cst-equiv)
              (equal (cst-constant-expression-conc-rep-elem abnf::cst)
                     (cst-constant-expression-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-init-declarator-list-conc-rep-elem

    (defun cst-init-declarator-list-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "init-declarator-list")))
      (abnf::tree-fix
           (nth 0
                (cst-init-declarator-list-conc-rep abnf::cst))))

    Theorem: treep-of-cst-init-declarator-list-conc-rep-elem

    (defthm treep-of-cst-init-declarator-list-conc-rep-elem
      (b*
       ((abnf::cst1 (cst-init-declarator-list-conc-rep-elem abnf::cst)))
       (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-rep-elem-match

    (defthm cst-init-declarator-list-conc-rep-elem-match
     (implies
      (cst-matchp abnf::cst "init-declarator-list")
      (b*
       ((abnf::cst1 (cst-init-declarator-list-conc-rep-elem abnf::cst)))
       (cst-matchp abnf::cst1 "init-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-init-declarator-list-conc-rep-elem-of-tree-fix-cst

    (defthm cst-init-declarator-list-conc-rep-elem-of-tree-fix-cst
      (equal (cst-init-declarator-list-conc-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-init-declarator-list-conc-rep-elem abnf::cst)))

    Theorem: cst-init-declarator-list-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-init-declarator-list-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-init-declarator-list-conc-rep-elem abnf::cst)
                 (cst-init-declarator-list-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-storage-class-specifier-conc-rep-elem

    (defun cst-storage-class-specifier-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
        (xargs :guard (cst-matchp abnf::cst "storage-class-specifier")))
     (abnf::tree-fix
          (nth 0
               (cst-storage-class-specifier-conc-rep abnf::cst))))

    Theorem: treep-of-cst-storage-class-specifier-conc-rep-elem

    (defthm treep-of-cst-storage-class-specifier-conc-rep-elem
      (b* ((abnf::cst1
                (cst-storage-class-specifier-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-rep-elem-match

    (defthm cst-storage-class-specifier-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "storage-class-specifier")
       (b* ((abnf::cst1
                 (cst-storage-class-specifier-conc-rep-elem abnf::cst)))
         (cst-matchp abnf::cst1 "%s\"extern\"")))
     :rule-classes :rewrite)

    Theorem: cst-storage-class-specifier-conc-rep-elem-of-tree-fix-cst

    (defthm cst-storage-class-specifier-conc-rep-elem-of-tree-fix-cst
      (equal (cst-storage-class-specifier-conc-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-storage-class-specifier-conc-rep-elem abnf::cst)))

    Theorem: cst-storage-class-specifier-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-storage-class-specifier-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-storage-class-specifier-conc-rep-elem abnf::cst)
                 (cst-storage-class-specifier-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-struct-declarator-list-conc-rep-elem

    (defun cst-struct-declarator-list-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
         (xargs :guard (cst-matchp abnf::cst "struct-declarator-list")))
     (abnf::tree-fix
          (nth 0
               (cst-struct-declarator-list-conc-rep abnf::cst))))

    Theorem: treep-of-cst-struct-declarator-list-conc-rep-elem

    (defthm treep-of-cst-struct-declarator-list-conc-rep-elem
      (b* ((abnf::cst1
                (cst-struct-declarator-list-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-rep-elem-match

    (defthm cst-struct-declarator-list-conc-rep-elem-match
     (implies
        (cst-matchp abnf::cst "struct-declarator-list")
        (b* ((abnf::cst1
                  (cst-struct-declarator-list-conc-rep-elem abnf::cst)))
          (cst-matchp abnf::cst1 "struct-declarator")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declarator-list-conc-rep-elem-of-tree-fix-cst

    (defthm cst-struct-declarator-list-conc-rep-elem-of-tree-fix-cst
      (equal (cst-struct-declarator-list-conc-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-struct-declarator-list-conc-rep-elem abnf::cst)))

    Theorem: cst-struct-declarator-list-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-struct-declarator-list-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-struct-declarator-list-conc-rep-elem abnf::cst)
                 (cst-struct-declarator-list-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-struct-declarator-conc-rep-elem

    (defun cst-struct-declarator-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "struct-declarator")))
     (abnf::tree-fix (nth 0
                          (cst-struct-declarator-conc-rep abnf::cst))))

    Theorem: treep-of-cst-struct-declarator-conc-rep-elem

    (defthm treep-of-cst-struct-declarator-conc-rep-elem
      (b* ((abnf::cst1 (cst-struct-declarator-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-rep-elem-match

    (defthm cst-struct-declarator-conc-rep-elem-match
     (implies
      (cst-matchp abnf::cst "struct-declarator")
      (b* ((abnf::cst1 (cst-struct-declarator-conc-rep-elem abnf::cst)))
        (cst-matchp abnf::cst1 "declarator")))
     :rule-classes :rewrite)

    Theorem: cst-struct-declarator-conc-rep-elem-of-tree-fix-cst

    (defthm cst-struct-declarator-conc-rep-elem-of-tree-fix-cst
     (equal
        (cst-struct-declarator-conc-rep-elem (abnf::tree-fix abnf::cst))
        (cst-struct-declarator-conc-rep-elem abnf::cst)))

    Theorem: cst-struct-declarator-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
       cst-struct-declarator-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-struct-declarator-conc-rep-elem abnf::cst)
                      (cst-struct-declarator-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-parameter-type-list-conc-rep-elem

    (defun cst-parameter-type-list-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "parameter-type-list")))
      (abnf::tree-fix
           (nth 0
                (cst-parameter-type-list-conc-rep abnf::cst))))

    Theorem: treep-of-cst-parameter-type-list-conc-rep-elem

    (defthm treep-of-cst-parameter-type-list-conc-rep-elem
      (b*
        ((abnf::cst1 (cst-parameter-type-list-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-rep-elem-match

    (defthm cst-parameter-type-list-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "parameter-type-list")
       (b*
        ((abnf::cst1 (cst-parameter-type-list-conc-rep-elem abnf::cst)))
        (cst-matchp abnf::cst1 "parameter-list")))
     :rule-classes :rewrite)

    Theorem: cst-parameter-type-list-conc-rep-elem-of-tree-fix-cst

    (defthm cst-parameter-type-list-conc-rep-elem-of-tree-fix-cst
     (equal
      (cst-parameter-type-list-conc-rep-elem (abnf::tree-fix abnf::cst))
      (cst-parameter-type-list-conc-rep-elem abnf::cst)))

    Theorem: cst-parameter-type-list-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-parameter-type-list-conc-rep-elem-tree-equiv-congruence-on-cst
     (implies (abnf::tree-equiv abnf::cst cst-equiv)
              (equal (cst-parameter-type-list-conc-rep-elem abnf::cst)
                     (cst-parameter-type-list-conc-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-typedef-name-conc-rep-elem

    (defun cst-typedef-name-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "typedef-name")))
      (abnf::tree-fix (nth 0
                           (cst-typedef-name-conc-rep abnf::cst))))

    Theorem: treep-of-cst-typedef-name-conc-rep-elem

    (defthm treep-of-cst-typedef-name-conc-rep-elem
      (b* ((abnf::cst1 (cst-typedef-name-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-rep-elem-match

    (defthm cst-typedef-name-conc-rep-elem-match
      (implies
           (cst-matchp abnf::cst "typedef-name")
           (b* ((abnf::cst1 (cst-typedef-name-conc-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "identifier")))
      :rule-classes :rewrite)

    Theorem: cst-typedef-name-conc-rep-elem-of-tree-fix-cst

    (defthm cst-typedef-name-conc-rep-elem-of-tree-fix-cst
      (equal (cst-typedef-name-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-typedef-name-conc-rep-elem abnf::cst)))

    Theorem: cst-typedef-name-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-typedef-name-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-typedef-name-conc-rep-elem abnf::cst)
                      (cst-typedef-name-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc1-rep-elem

    (defun cst-statement-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         1))))
      (abnf::tree-fix (nth 0 (cst-statement-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc1-rep-elem

    (defthm treep-of-cst-statement-conc1-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc1-rep-elem-match

    (defthm cst-statement-conc1-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       1))
           (b* ((abnf::cst1 (cst-statement-conc1-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "labeled-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc1-rep-elem abnf::cst)))

    Theorem: cst-statement-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc1-rep-elem abnf::cst)
                      (cst-statement-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc2-rep-elem

    (defun cst-statement-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         2))))
      (abnf::tree-fix (nth 0 (cst-statement-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc2-rep-elem

    (defthm treep-of-cst-statement-conc2-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc2-rep-elem-match

    (defthm cst-statement-conc2-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       2))
           (b* ((abnf::cst1 (cst-statement-conc2-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "compound-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc2-rep-elem abnf::cst)))

    Theorem: cst-statement-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc2-rep-elem abnf::cst)
                      (cst-statement-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc3-rep-elem

    (defun cst-statement-conc3-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         3))))
      (abnf::tree-fix (nth 0 (cst-statement-conc3-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc3-rep-elem

    (defthm treep-of-cst-statement-conc3-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc3-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc3-rep-elem-match

    (defthm cst-statement-conc3-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       3))
           (b* ((abnf::cst1 (cst-statement-conc3-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "expression-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc3-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc3-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc3-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc3-rep-elem abnf::cst)))

    Theorem: cst-statement-conc3-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc3-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc3-rep-elem abnf::cst)
                      (cst-statement-conc3-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc4-rep-elem

    (defun cst-statement-conc4-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         4))))
      (abnf::tree-fix (nth 0 (cst-statement-conc4-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc4-rep-elem

    (defthm treep-of-cst-statement-conc4-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc4-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc4-rep-elem-match

    (defthm cst-statement-conc4-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       4))
           (b* ((abnf::cst1 (cst-statement-conc4-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "selection-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc4-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc4-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc4-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc4-rep-elem abnf::cst)))

    Theorem: cst-statement-conc4-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc4-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc4-rep-elem abnf::cst)
                      (cst-statement-conc4-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc5-rep-elem

    (defun cst-statement-conc5-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         5))))
      (abnf::tree-fix (nth 0 (cst-statement-conc5-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc5-rep-elem

    (defthm treep-of-cst-statement-conc5-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc5-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc5-rep-elem-match

    (defthm cst-statement-conc5-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       5))
           (b* ((abnf::cst1 (cst-statement-conc5-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "iteration-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc5-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc5-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc5-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc5-rep-elem abnf::cst)))

    Theorem: cst-statement-conc5-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc5-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc5-rep-elem abnf::cst)
                      (cst-statement-conc5-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-statement-conc6-rep-elem

    (defun cst-statement-conc6-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "statement")
                                  (equal (cst-statement-conc? abnf::cst)
                                         6))))
      (abnf::tree-fix (nth 0 (cst-statement-conc6-rep abnf::cst))))

    Theorem: treep-of-cst-statement-conc6-rep-elem

    (defthm treep-of-cst-statement-conc6-rep-elem
      (b* ((abnf::cst1 (cst-statement-conc6-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-rep-elem-match

    (defthm cst-statement-conc6-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "statement")
                (equal (cst-statement-conc? abnf::cst)
                       6))
           (b* ((abnf::cst1 (cst-statement-conc6-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "jump-statement")))
      :rule-classes :rewrite)

    Theorem: cst-statement-conc6-rep-elem-of-tree-fix-cst

    (defthm cst-statement-conc6-rep-elem-of-tree-fix-cst
      (equal (cst-statement-conc6-rep-elem (abnf::tree-fix abnf::cst))
             (cst-statement-conc6-rep-elem abnf::cst)))

    Theorem: cst-statement-conc6-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-statement-conc6-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-statement-conc6-rep-elem abnf::cst)
                      (cst-statement-conc6-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc1-rep-elem

    (defun cst-block-item-conc1-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        1))))
     (abnf::tree-fix (nth 0
                          (cst-block-item-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-block-item-conc1-rep-elem

    (defthm treep-of-cst-block-item-conc1-rep-elem
      (b* ((abnf::cst1 (cst-block-item-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-rep-elem-match

    (defthm cst-block-item-conc1-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "block-item")
                (equal (cst-block-item-conc? abnf::cst)
                       1))
           (b* ((abnf::cst1 (cst-block-item-conc1-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "declaration")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-block-item-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-block-item-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-block-item-conc1-rep-elem abnf::cst)))

    Theorem: cst-block-item-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc1-rep-elem abnf::cst)
                      (cst-block-item-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-block-item-conc2-rep-elem

    (defun cst-block-item-conc2-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "block-item")
                                 (equal (cst-block-item-conc? abnf::cst)
                                        2))))
     (abnf::tree-fix (nth 0
                          (cst-block-item-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-block-item-conc2-rep-elem

    (defthm treep-of-cst-block-item-conc2-rep-elem
      (b* ((abnf::cst1 (cst-block-item-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-rep-elem-match

    (defthm cst-block-item-conc2-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "block-item")
                (equal (cst-block-item-conc? abnf::cst)
                       2))
           (b* ((abnf::cst1 (cst-block-item-conc2-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "statement")))
      :rule-classes :rewrite)

    Theorem: cst-block-item-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-block-item-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-block-item-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-block-item-conc2-rep-elem abnf::cst)))

    Theorem: cst-block-item-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-block-item-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-block-item-conc2-rep-elem abnf::cst)
                      (cst-block-item-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-external-declaration-conc1-rep-elem

    (defun cst-external-declaration-conc1-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              1))))
     (abnf::tree-fix
          (nth 0
               (cst-external-declaration-conc1-rep abnf::cst))))

    Theorem: treep-of-cst-external-declaration-conc1-rep-elem

    (defthm treep-of-cst-external-declaration-conc1-rep-elem
     (b*
      ((abnf::cst1 (cst-external-declaration-conc1-rep-elem abnf::cst)))
      (abnf::treep abnf::cst1))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-rep-elem-match

    (defthm cst-external-declaration-conc1-rep-elem-match
     (implies
         (and (cst-matchp abnf::cst "external-declaration")
              (equal (cst-external-declaration-conc? abnf::cst)
                     1))
         (b* ((abnf::cst1
                   (cst-external-declaration-conc1-rep-elem abnf::cst)))
           (cst-matchp abnf::cst1 "function-definition")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-external-declaration-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-external-declaration-conc1-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-external-declaration-conc1-rep-elem abnf::cst)))

    Theorem: cst-external-declaration-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-external-declaration-conc1-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-external-declaration-conc1-rep-elem abnf::cst)
                 (cst-external-declaration-conc1-rep-elem cst-equiv)))
     :rule-classes :congruence)

    Function: cst-external-declaration-conc2-rep-elem

    (defun cst-external-declaration-conc2-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
      (xargs
           :guard (and (cst-matchp abnf::cst "external-declaration")
                       (equal (cst-external-declaration-conc? abnf::cst)
                              2))))
     (abnf::tree-fix
          (nth 0
               (cst-external-declaration-conc2-rep abnf::cst))))

    Theorem: treep-of-cst-external-declaration-conc2-rep-elem

    (defthm treep-of-cst-external-declaration-conc2-rep-elem
     (b*
      ((abnf::cst1 (cst-external-declaration-conc2-rep-elem abnf::cst)))
      (abnf::treep abnf::cst1))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-rep-elem-match

    (defthm cst-external-declaration-conc2-rep-elem-match
     (implies
         (and (cst-matchp abnf::cst "external-declaration")
              (equal (cst-external-declaration-conc? abnf::cst)
                     2))
         (b* ((abnf::cst1
                   (cst-external-declaration-conc2-rep-elem abnf::cst)))
           (cst-matchp abnf::cst1 "declaration")))
     :rule-classes :rewrite)

    Theorem: cst-external-declaration-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-external-declaration-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-external-declaration-conc2-rep-elem
                  (abnf::tree-fix abnf::cst))
             (cst-external-declaration-conc2-rep-elem abnf::cst)))

    Theorem: cst-external-declaration-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm
     cst-external-declaration-conc2-rep-elem-tree-equiv-congruence-on-cst
     (implies
          (abnf::tree-equiv abnf::cst cst-equiv)
          (equal (cst-external-declaration-conc2-rep-elem abnf::cst)
                 (cst-external-declaration-conc2-rep-elem cst-equiv)))
     :rule-classes :congruence)