• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
        • Proof-support
        • Semantics
        • Lifting
        • R1cs-subset
        • Well-formedness
        • Abstract-syntax
        • Concrete-syntax
          • Lexer
          • Grammar
            • Abnf-tree-with-root-p
            • Cst-token-conc?
            • Cst-list-list-conc-matchp$
            • Cst-list-list-alt-matchp$
            • Cst-whitespace-conc?
            • Cst-constraint-conc?
            • Cst-list-rep-matchp$
            • Cst-list-elem-matchp$
            • Cst-letter-conc?
            • Cst-lexeme-conc?
            • Abnf-tree-wrap-fn
            • Abnf-tree-wrap
            • Cst-matchp$
            • *grammar*
              • *grammar*-tree-operations
              • Cst-whitespace-conc2-rep-elem
              • Cst-whitespace-conc1-rep-elem
              • Cst-unary-minus-expression-conc
              • Cst-constraint-conc2-rep-elem
              • Cst-constraint-conc1-rep-elem
              • Cst-whitespace-conc2-rep
              • Cst-whitespace-conc1-rep
              • Cst-uppercase-letter-conc-rep-elem
              • Cst-uppercase-letter-conc-rep
              • Cst-relation-constraint-conc
              • Cst-lowercase-letter-conc-rep-elem
              • Cst-lowercase-letter-conc-rep
              • Cst-lexeme-conc2-rep-elem
              • Cst-lexeme-conc1-rep-elem
              • Cst-letter-conc2-rep-elem
              • Cst-letter-conc1-rep-elem
              • Cst-equality-constraint-conc
              • Cst-constraint-conc2-rep
              • Cst-constraint-conc1-rep
              • Cst-carriage-return-conc-rep-elem
              • Cst-carriage-return-conc-rep
              • Cst-whitespace-conc2
              • Cst-whitespace-conc1
              • Cst-uppercase-letter-conc
              • Cst-token-conc4-rep-elem
              • Cst-token-conc3-rep-elem
              • Cst-token-conc2-rep-elem
              • Cst-token-conc1-rep-elem
              • Cst-lowercase-letter-conc
              • Cst-line-terminator-conc
              • Cst-line-feed-conc-rep-elem
              • Cst-lexeme-conc2-rep
              • Cst-lexeme-conc1-rep
              • Cst-letter-conc2-rep
              • Cst-letter-conc1-rep
              • Cst-expression-conc-rep-elem
              • Cst-constraint-conc2
              • Cst-constraint-conc1
              • Cst-carriage-return-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-space-conc-rep-elem
              • Cst-line-feed-conc-rep
              • Cst-line-feed-conc
              • Cst-lexeme-conc2
              • Cst-lexeme-conc1
              • Cst-letter-conc2
              • Cst-letter-conc1
              • Cst-identifier-conc
              • Cst-expression-conc-rep
              • Cst-expression-conc
              • Cst-digit-conc-rep-elem
              • Cst-definition-conc
              • Cst-system-conc
              • Cst-space-conc-rep
              • Cst-space-conc
              • Cst-numeral-conc
              • Cst-digit-conc-rep
              • Cst-digit-conc
              • Abnf-tree-list-with-root-p
              • Cst-%x61-7a-nat
              • Cst-%x41-5a-nat
              • Cst-%x30-39-nat
            • Parser
            • Tokenizer
          • R1cs-bridge
          • Parser-interface
        • Legacy-defrstobj
        • C
        • Proof-checker-array
        • Soft
        • Farray
        • Rp-rewriter
        • Instant-runoff-voting
        • Imp-language
        • Sidekick
        • Ethereum
        • Leftist-trees
        • Java
        • Riscv
        • Taspi
        • Bitcoin
        • Zcash
        • Des
        • X86isa
        • Sha-2
        • Yul
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Axe
        • Poseidon
        • Where-do-i-place-my-book
        • Aleo
        • Bigmems
        • Builtins
        • Execloader
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Community
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • 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))))
     (let ((__function__ 'cst-matchp$))
      (declare (ignorable __function__))
      (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))))
      (let ((__function__ 'cst-list-elem-matchp$))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-list-rep-matchp$))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-list-list-conc-matchp$))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-list-list-alt-matchp$))
        (declare (ignorable __function__))
        (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-%x30-39-nat

    (defun cst-%x30-39-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x30-39")))
      (let ((__function__ 'cst-%x30-39-nat))
        (declare (ignorable __function__))
        (acl2::lnfix (nth 0
                          (abnf::tree-leafterm->get abnf::cst)))))

    Theorem: natp-of-cst-%x30-39-nat

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

    Theorem: cst-%x30-39-nat-of-tree-fix-cst

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

    Theorem: cst-%x30-39-nat-tree-equiv-congruence-on-cst

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

    Function: cst-%x41-5a-nat

    (defun cst-%x41-5a-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x41-5A")))
      (let ((__function__ 'cst-%x41-5a-nat))
        (declare (ignorable __function__))
        (acl2::lnfix (nth 0
                          (abnf::tree-leafterm->get abnf::cst)))))

    Theorem: natp-of-cst-%x41-5a-nat

    (defthm natp-of-cst-%x41-5a-nat
      (b* ((nat (cst-%x41-5a-nat abnf::cst)))
        (natp nat))
      :rule-classes :rewrite)

    Theorem: cst-%x41-5a-nat-of-tree-fix-cst

    (defthm cst-%x41-5a-nat-of-tree-fix-cst
      (equal (cst-%x41-5a-nat (abnf::tree-fix abnf::cst))
             (cst-%x41-5a-nat abnf::cst)))

    Theorem: cst-%x41-5a-nat-tree-equiv-congruence-on-cst

    (defthm cst-%x41-5a-nat-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-%x41-5a-nat abnf::cst)
                      (cst-%x41-5a-nat cst-equiv)))
      :rule-classes :congruence)

    Function: cst-%x61-7a-nat

    (defun cst-%x61-7a-nat (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "%x61-7A")))
      (let ((__function__ 'cst-%x61-7a-nat))
        (declare (ignorable __function__))
        (acl2::lnfix (nth 0
                          (abnf::tree-leafterm->get abnf::cst)))))

    Theorem: natp-of-cst-%x61-7a-nat

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

    Theorem: cst-%x61-7a-nat-of-tree-fix-cst

    (defthm cst-%x61-7a-nat-of-tree-fix-cst
      (equal (cst-%x61-7a-nat (abnf::tree-fix abnf::cst))
             (cst-%x61-7a-nat abnf::cst)))

    Theorem: cst-%x61-7a-nat-tree-equiv-congruence-on-cst

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

    Theorem: cst-%x30-39-nat-bounds

    (defthm cst-%x30-39-nat-bounds
      (implies (cst-matchp abnf::cst "%x30-39")
               (and (<= 48 (cst-%x30-39-nat abnf::cst))
                    (<= (cst-%x30-39-nat abnf::cst) 57)))
      :rule-classes :linear)

    Theorem: cst-%x41-5a-nat-bounds

    (defthm cst-%x41-5a-nat-bounds
      (implies (cst-matchp abnf::cst "%x41-5A")
               (and (<= 65 (cst-%x41-5a-nat abnf::cst))
                    (<= (cst-%x41-5a-nat abnf::cst) 90)))
      :rule-classes :linear)

    Theorem: cst-%x61-7a-nat-bounds

    (defthm cst-%x61-7a-nat-bounds
      (implies (cst-matchp abnf::cst "%x61-7A")
               (and (<= 97 (cst-%x61-7a-nat abnf::cst))
                    (<= (cst-%x61-7a-nat abnf::cst) 122)))
      :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-line-feed-nonleaf

    (defthm cst-line-feed-nonleaf
      (implies (cst-matchp abnf::cst "line-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-line-terminator-nonleaf

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

    Theorem: cst-whitespace-nonleaf

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

    Theorem: cst-uppercase-letter-nonleaf

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

    Theorem: cst-lowercase-letter-nonleaf

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

    Theorem: cst-letter-nonleaf

    (defthm cst-letter-nonleaf
      (implies (cst-matchp abnf::cst "letter")
               (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-numeral-nonleaf

    (defthm cst-numeral-nonleaf
      (implies (cst-matchp abnf::cst "numeral")
               (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-operator-nonleaf

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

    Theorem: cst-separator-nonleaf

    (defthm cst-separator-nonleaf
      (implies (cst-matchp abnf::cst "separator")
               (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-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-unary-minus-expression-nonleaf

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

    Theorem: cst-multiplication-expression-nonleaf

    (defthm cst-multiplication-expression-nonleaf
      (implies (cst-matchp abnf::cst "multiplication-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-expression-nonleaf

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

    Theorem: cst-equality-constraint-nonleaf

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

    Theorem: cst-relation-constraint-nonleaf

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

    Theorem: cst-constraint-nonleaf

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

    Theorem: cst-definition-nonleaf

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

    Theorem: cst-system-nonleaf

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

    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-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-line-terminator-rulename

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

    Theorem: cst-whitespace-rulename

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

    Theorem: cst-uppercase-letter-rulename

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

    Theorem: cst-lowercase-letter-rulename

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

    Theorem: cst-letter-rulename

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

    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-numeral-rulename

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

    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-operator-rulename

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

    Theorem: cst-separator-rulename

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

    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-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-unary-minus-expression-rulename

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

    Theorem: cst-multiplication-expression-rulename

    (defthm cst-multiplication-expression-rulename
      (implies (cst-matchp abnf::cst "multiplication-expression")
               (equal (abnf::tree-nonleaf->rulename? abnf::cst)
                      (abnf::rulename "multiplication-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-expression-rulename

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

    Theorem: cst-equality-constraint-rulename

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

    Theorem: cst-relation-constraint-rulename

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

    Theorem: cst-constraint-rulename

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

    Theorem: cst-definition-rulename

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

    Theorem: cst-system-rulename

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

    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-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-line-terminator-branches-match-alt

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

    Theorem: cst-whitespace-branches-match-alt

    (defthm cst-whitespace-branches-match-alt
     (implies
      (cst-matchp abnf::cst "whitespace")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "space / line-terminator")))

    Theorem: cst-uppercase-letter-branches-match-alt

    (defthm cst-uppercase-letter-branches-match-alt
     (implies
      (cst-matchp abnf::cst "uppercase-letter")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x41-5A")))

    Theorem: cst-lowercase-letter-branches-match-alt

    (defthm cst-lowercase-letter-branches-match-alt
     (implies
      (cst-matchp abnf::cst "lowercase-letter")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "%x61-7A")))

    Theorem: cst-letter-branches-match-alt

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

    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)
                                "%x30-39")))

    Theorem: cst-numeral-branches-match-alt

    (defthm cst-numeral-branches-match-alt
     (implies
      (cst-matchp abnf::cst "numeral")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "1*digit")))

    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)
                                "letter *( letter / digit / \"_\" )")))

    Theorem: cst-operator-branches-match-alt

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

    Theorem: cst-separator-branches-match-alt

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

    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)
                    "identifier / numeral / operator / separator")))

    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 / whitespace")))

    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 / numeral / \"(\" expression \")\"")))

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

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

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

    (defthm cst-multiplication-expression-branches-match-alt
     (implies
      (cst-matchp abnf::cst "multiplication-expression")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "unary-minus-expression / multiplication-expression \"*\" unary-minus-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)
       "multiplication-expression / additive-expression \"+\" multiplication-expression / additive-expression \"-\" multiplication-expression")))

    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)
                                "additive-expression")))

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

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

    Theorem: cst-relation-constraint-branches-match-alt

    (defthm cst-relation-constraint-branches-match-alt
     (implies
         (cst-matchp abnf::cst "relation-constraint")
         (cst-list-list-alt-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "identifier \"(\" [ expression *( \",\" expression ) ] \")\"")))

    Theorem: cst-constraint-branches-match-alt

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

    Theorem: cst-definition-branches-match-alt

    (defthm cst-definition-branches-match-alt
     (implies
      (cst-matchp abnf::cst "definition")
      (cst-list-list-alt-matchp
       (abnf::tree-nonleaf->branches abnf::cst)
       "identifier \"(\" [ identifier *( \",\" identifier ) ] \")\" \":=\" \"{\" [ constraint *( \",\" constraint ) ] \"}\"")))

    Theorem: cst-system-branches-match-alt

    (defthm cst-system-branches-match-alt
     (implies
      (cst-matchp abnf::cst "system")
      (cst-list-list-alt-matchp (abnf::tree-nonleaf->branches abnf::cst)
                                "*definition *constraint")))

    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-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-line-terminator-concs

    (defthm cst-line-terminator-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-whitespace-concs

    (defthm cst-whitespace-concs
     (implies
        (cst-list-list-alt-matchp abnf::cstss "space / line-terminator")
        (or (cst-list-list-conc-matchp abnf::cstss "space")
            (cst-list-list-conc-matchp abnf::cstss "line-terminator"))))

    Theorem: cst-uppercase-letter-concs

    (defthm cst-uppercase-letter-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x41-5A")
               (or (cst-list-list-conc-matchp abnf::cstss "%x41-5A"))))

    Theorem: cst-lowercase-letter-concs

    (defthm cst-lowercase-letter-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x61-7A")
               (or (cst-list-list-conc-matchp abnf::cstss "%x61-7A"))))

    Theorem: cst-letter-concs

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

    Theorem: cst-digit-concs

    (defthm cst-digit-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "%x30-39")
               (or (cst-list-list-conc-matchp abnf::cstss "%x30-39"))))

    Theorem: cst-numeral-concs

    (defthm cst-numeral-concs
      (implies (cst-list-list-alt-matchp abnf::cstss "1*digit")
               (or (cst-list-list-conc-matchp abnf::cstss "1*digit"))))

    Theorem: cst-identifier-concs

    (defthm cst-identifier-concs
     (implies
      (cst-list-list-alt-matchp abnf::cstss
                                "letter *( letter / digit / \"_\" )")
      (or
       (cst-list-list-conc-matchp abnf::cstss
                                  "letter *( letter / digit / \"_\" )"))))

    Theorem: cst-operator-concs

    (defthm cst-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 "\"==\""))))

    Theorem: cst-separator-concs

    (defthm cst-separator-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 "\",\""))))

    Theorem: cst-token-concs

    (defthm cst-token-concs
     (implies (cst-list-list-alt-matchp
                   abnf::cstss
                   "identifier / numeral / operator / separator")
              (or (cst-list-list-conc-matchp abnf::cstss "identifier")
                  (cst-list-list-conc-matchp abnf::cstss "numeral")
                  (cst-list-list-conc-matchp abnf::cstss "operator")
                  (cst-list-list-conc-matchp abnf::cstss "separator"))))

    Theorem: cst-lexeme-concs

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

    Theorem: cst-primary-expression-concs

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

    Theorem: cst-unary-minus-expression-concs

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

    Theorem: cst-multiplication-expression-concs

    (defthm cst-multiplication-expression-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "unary-minus-expression / multiplication-expression \"*\" unary-minus-expression")
      (or
        (cst-list-list-conc-matchp abnf::cstss "unary-minus-expression")
        (cst-list-list-conc-matchp
             abnf::cstss
             "multiplication-expression \"*\" unary-minus-expression"))))

    Theorem: cst-additive-expression-concs

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

    Theorem: cst-expression-concs

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

    Theorem: cst-equality-constraint-concs

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

    Theorem: cst-relation-constraint-concs

    (defthm cst-relation-constraint-concs
     (implies
      (cst-list-list-alt-matchp
           abnf::cstss
           "identifier \"(\" [ expression *( \",\" expression ) ] \")\"")
      (or
        (cst-list-list-conc-matchp
             abnf::cstss
             "identifier \"(\" [ expression *( \",\" expression ) ] \")\""))))

    Theorem: cst-constraint-concs

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

    Theorem: cst-definition-concs

    (defthm cst-definition-concs
     (implies
      (cst-list-list-alt-matchp
       abnf::cstss
       "identifier \"(\" [ identifier *( \",\" identifier ) ] \")\" \":=\" \"{\" [ constraint *( \",\" constraint ) ] \"}\"")
      (or
       (cst-list-list-conc-matchp
        abnf::cstss
        "identifier \"(\" [ identifier *( \",\" identifier ) ] \")\" \":=\" \"{\" [ constraint *( \",\" constraint ) ] \"}\""))))

    Theorem: cst-system-concs

    (defthm cst-system-concs
     (implies
        (cst-list-list-alt-matchp abnf::cstss "*definition *constraint")
        (or (cst-list-list-conc-matchp abnf::cstss
                                       "*definition *constraint"))))

    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-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-whitespace-conc1-matching

    (defthm cst-whitespace-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-whitespace-conc2-matching

    (defthm cst-whitespace-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "line-terminator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "line-terminator"))))

    Theorem: cst-uppercase-letter-conc-matching

    (defthm cst-uppercase-letter-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x41-5A")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x41-5A"))))

    Theorem: cst-lowercase-letter-conc-matching

    (defthm cst-lowercase-letter-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "%x61-7A")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "%x61-7A"))))

    Theorem: cst-letter-conc1-matching

    (defthm cst-letter-conc1-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "uppercase-letter")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "uppercase-letter"))))

    Theorem: cst-letter-conc2-matching

    (defthm cst-letter-conc2-matching
     (implies (cst-list-list-conc-matchp abnf::cstss "lowercase-letter")
              (and (equal (len abnf::cstss) 1)
                   (cst-list-rep-matchp (nth 0 abnf::cstss)
                                        "lowercase-letter"))))

    Theorem: cst-digit-conc-matching

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

    Theorem: cst-numeral-conc-matching

    (defthm cst-numeral-conc-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "1*digit")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "1*digit"))))

    Theorem: cst-operator-conc1-matching

    (defthm cst-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-operator-conc2-matching

    (defthm cst-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-operator-conc3-matching

    (defthm cst-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-operator-conc4-matching

    (defthm cst-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-operator-conc5-matching

    (defthm cst-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-separator-conc1-matching

    (defthm cst-separator-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-separator-conc2-matching

    (defthm cst-separator-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-separator-conc3-matching

    (defthm cst-separator-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-separator-conc4-matching

    (defthm cst-separator-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-separator-conc5-matching

    (defthm cst-separator-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-token-conc1-matching

    (defthm cst-token-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-token-conc2-matching

    (defthm cst-token-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "numeral")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "numeral"))))

    Theorem: cst-token-conc3-matching

    (defthm cst-token-conc3-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "operator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "operator"))))

    Theorem: cst-token-conc4-matching

    (defthm cst-token-conc4-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "separator")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "separator"))))

    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 "whitespace")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "whitespace"))))

    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-primary-expression-conc2-matching

    (defthm cst-primary-expression-conc2-matching
      (implies (cst-list-list-conc-matchp abnf::cstss "numeral")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "numeral"))))

    Theorem: cst-multiplication-expression-conc1-matching

    (defthm cst-multiplication-expression-conc1-matching
     (implies
        (cst-list-list-conc-matchp abnf::cstss "unary-minus-expression")
        (and (equal (len abnf::cstss) 1)
             (cst-list-rep-matchp (nth 0 abnf::cstss)
                                  "unary-minus-expression"))))

    Theorem: cst-additive-expression-conc1-matching

    (defthm cst-additive-expression-conc1-matching
      (implies (cst-list-list-conc-matchp
                    abnf::cstss "multiplication-expression")
               (and (equal (len abnf::cstss) 1)
                    (cst-list-rep-matchp (nth 0 abnf::cstss)
                                         "multiplication-expression"))))

    Theorem: cst-expression-conc-matching

    (defthm cst-expression-conc-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-constraint-conc1-matching

    (defthm cst-constraint-conc1-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "equality-constraint")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "equality-constraint"))))

    Theorem: cst-constraint-conc2-matching

    (defthm cst-constraint-conc2-matching
      (implies
           (cst-list-list-conc-matchp abnf::cstss "relation-constraint")
           (and (equal (len abnf::cstss) 1)
                (cst-list-rep-matchp (nth 0 abnf::cstss)
                                     "relation-constraint"))))

    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-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-whitespace-conc1-rep-matching

    (defthm cst-whitespace-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-whitespace-conc2-rep-matching

    (defthm cst-whitespace-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "line-terminator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "line-terminator"))))

    Theorem: cst-uppercase-letter-conc-rep-matching

    (defthm cst-uppercase-letter-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x41-5A")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x41-5A"))))

    Theorem: cst-lowercase-letter-conc-rep-matching

    (defthm cst-lowercase-letter-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x61-7A")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x61-7A"))))

    Theorem: cst-letter-conc1-rep-matching

    (defthm cst-letter-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "uppercase-letter")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "uppercase-letter"))))

    Theorem: cst-letter-conc2-rep-matching

    (defthm cst-letter-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "lowercase-letter")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "lowercase-letter"))))

    Theorem: cst-digit-conc-rep-matching

    (defthm cst-digit-conc-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "%x30-39")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "%x30-39"))))

    Theorem: cst-operator-conc1-rep-matching

    (defthm cst-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-operator-conc2-rep-matching

    (defthm cst-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-operator-conc3-rep-matching

    (defthm cst-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-operator-conc4-rep-matching

    (defthm cst-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-operator-conc5-rep-matching

    (defthm cst-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-separator-conc1-rep-matching

    (defthm cst-separator-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"(\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"(\""))))

    Theorem: cst-separator-conc2-rep-matching

    (defthm cst-separator-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\")\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\")\""))))

    Theorem: cst-separator-conc3-rep-matching

    (defthm cst-separator-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"{\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"{\""))))

    Theorem: cst-separator-conc4-rep-matching

    (defthm cst-separator-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\"}\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\"}\""))))

    Theorem: cst-separator-conc5-rep-matching

    (defthm cst-separator-conc5-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "\",\"")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts) "\",\""))))

    Theorem: cst-token-conc1-rep-matching

    (defthm cst-token-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-token-conc2-rep-matching

    (defthm cst-token-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "numeral")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "numeral"))))

    Theorem: cst-token-conc3-rep-matching

    (defthm cst-token-conc3-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "operator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "operator"))))

    Theorem: cst-token-conc4-rep-matching

    (defthm cst-token-conc4-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "separator")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "separator"))))

    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 "whitespace")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "whitespace"))))

    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-primary-expression-conc2-rep-matching

    (defthm cst-primary-expression-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "numeral")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "numeral"))))

    Theorem: cst-multiplication-expression-conc1-rep-matching

    (defthm cst-multiplication-expression-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "unary-minus-expression")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "unary-minus-expression"))))

    Theorem: cst-additive-expression-conc1-rep-matching

    (defthm cst-additive-expression-conc1-rep-matching
      (implies
           (cst-list-rep-matchp abnf::csts "multiplication-expression")
           (and (equal (len abnf::csts) 1)
                (cst-matchp (nth 0 abnf::csts)
                            "multiplication-expression"))))

    Theorem: cst-expression-conc-rep-matching

    (defthm cst-expression-conc-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-constraint-conc1-rep-matching

    (defthm cst-constraint-conc1-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "equality-constraint")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "equality-constraint"))))

    Theorem: cst-constraint-conc2-rep-matching

    (defthm cst-constraint-conc2-rep-matching
      (implies (cst-list-rep-matchp abnf::csts "relation-constraint")
               (and (equal (len abnf::csts) 1)
                    (cst-matchp (nth 0 abnf::csts)
                                "relation-constraint"))))

    Theorem: cst-whitespace-conc-equivs

    (defthm cst-whitespace-conc-equivs
     (implies
      (cst-matchp abnf::cst "whitespace")
      (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)
              "line-terminator")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "line-terminator"))))))

    Theorem: cst-letter-conc-equivs

    (defthm cst-letter-conc-equivs
     (implies
      (cst-matchp abnf::cst "letter")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "uppercase-letter")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "uppercase-letter")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "lowercase-letter")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "lowercase-letter"))))))

    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)
              "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)
              "numeral")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "numeral")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "operator")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "operator")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "separator")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "separator"))))))

    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)
              "whitespace")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "whitespace"))))))

    Theorem: cst-constraint-conc-equivs

    (defthm cst-constraint-conc-equivs
     (implies
      (cst-matchp abnf::cst "constraint")
      (and
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "equality-constraint")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "equality-constraint")))
       (iff
         (cst-list-list-conc-matchp
              (abnf::tree-nonleaf->branches abnf::cst)
              "relation-constraint")
         (equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "relation-constraint"))))))

    Function: cst-whitespace-conc?

    (defun cst-whitespace-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "whitespace")))
     (let ((__function__ 'cst-whitespace-conc?))
      (declare (ignorable __function__))
      (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 "line-terminator"))
         2)
        (t (prog2$ (acl2::impossible) 1)))))

    Theorem: posp-of-cst-whitespace-conc?

    (defthm posp-of-cst-whitespace-conc?
      (b* ((number (cst-whitespace-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc?-possibilities

    (defthm cst-whitespace-conc?-possibilities
      (b* ((number (cst-whitespace-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-whitespace-conc? abnf::cst)))))

    Theorem: cst-whitespace-conc?-of-tree-fix-cst

    (defthm cst-whitespace-conc?-of-tree-fix-cst
      (equal (cst-whitespace-conc? (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc? abnf::cst)))

    Theorem: cst-whitespace-conc?-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc? abnf::cst)
                      (cst-whitespace-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-whitespace-conc?-1-iff-match-conc

    (defthm cst-whitespace-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "whitespace")
               (iff (equal (cst-whitespace-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "space"))))

    Theorem: cst-whitespace-conc?-2-iff-match-conc

    (defthm cst-whitespace-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "whitespace")
               (iff (equal (cst-whitespace-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "line-terminator"))))

    Function: cst-letter-conc?

    (defun cst-letter-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "letter")))
     (let ((__function__ 'cst-letter-conc?))
      (declare (ignorable __function__))
      (cond
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "uppercase-letter"))
         1)
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "lowercase-letter"))
         2)
        (t (prog2$ (acl2::impossible) 1)))))

    Theorem: posp-of-cst-letter-conc?

    (defthm posp-of-cst-letter-conc?
      (b* ((number (cst-letter-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc?-possibilities

    (defthm cst-letter-conc?-possibilities
      (b* ((number (cst-letter-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-letter-conc? abnf::cst)))))

    Theorem: cst-letter-conc?-of-tree-fix-cst

    (defthm cst-letter-conc?-of-tree-fix-cst
      (equal (cst-letter-conc? (abnf::tree-fix abnf::cst))
             (cst-letter-conc? abnf::cst)))

    Theorem: cst-letter-conc?-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc? abnf::cst)
                      (cst-letter-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-letter-conc?-1-iff-match-conc

    (defthm cst-letter-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "letter")
               (iff (equal (cst-letter-conc? abnf::cst) 1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "uppercase-letter"))))

    Theorem: cst-letter-conc?-2-iff-match-conc

    (defthm cst-letter-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "letter")
               (iff (equal (cst-letter-conc? abnf::cst) 2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "lowercase-letter"))))

    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")))
     (let ((__function__ 'cst-token-conc?))
      (declare (ignorable __function__))
      (cond
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "identifier"))
         1)
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "numeral"))
         2)
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "operator"))
         3)
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "separator"))
         4)
        (t (prog2$ (acl2::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)
                         "identifier"))))

    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)
                         "numeral"))))

    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)
                         "operator"))))

    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)
                         "separator"))))

    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")))
     (let ((__function__ 'cst-lexeme-conc?))
      (declare (ignorable __function__))
      (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 "whitespace"))
         2)
        (t (prog2$ (acl2::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)))
      :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)
                         "whitespace"))))

    Function: cst-constraint-conc?

    (defun cst-constraint-conc? (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "constraint")))
     (let ((__function__ 'cst-constraint-conc?))
      (declare (ignorable __function__))
      (cond
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "equality-constraint"))
         1)
        ((equal
              (abnf::tree-nonleaf->rulename?
                   (nth 0
                        (nth 0
                             (abnf::tree-nonleaf->branches abnf::cst))))
              (abnf::rulename "relation-constraint"))
         2)
        (t (prog2$ (acl2::impossible) 1)))))

    Theorem: posp-of-cst-constraint-conc?

    (defthm posp-of-cst-constraint-conc?
      (b* ((number (cst-constraint-conc? abnf::cst)))
        (posp number))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc?-possibilities

    (defthm cst-constraint-conc?-possibilities
      (b* ((number (cst-constraint-conc? abnf::cst)))
        (or (equal number 1) (equal number 2)))
      :rule-classes
      ((:forward-chaining
            :trigger-terms ((cst-constraint-conc? abnf::cst)))))

    Theorem: cst-constraint-conc?-of-tree-fix-cst

    (defthm cst-constraint-conc?-of-tree-fix-cst
      (equal (cst-constraint-conc? (abnf::tree-fix abnf::cst))
             (cst-constraint-conc? abnf::cst)))

    Theorem: cst-constraint-conc?-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc?-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc? abnf::cst)
                      (cst-constraint-conc? cst-equiv)))
      :rule-classes :congruence)

    Theorem: cst-constraint-conc?-1-iff-match-conc

    (defthm cst-constraint-conc?-1-iff-match-conc
      (implies (cst-matchp abnf::cst "constraint")
               (iff (equal (cst-constraint-conc? abnf::cst)
                           1)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "equality-constraint"))))

    Theorem: cst-constraint-conc?-2-iff-match-conc

    (defthm cst-constraint-conc?-2-iff-match-conc
      (implies (cst-matchp abnf::cst "constraint")
               (iff (equal (cst-constraint-conc? abnf::cst)
                           2)
                    (cst-list-list-conc-matchp
                         (abnf::tree-nonleaf->branches abnf::cst)
                         "relation-constraint"))))

    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")))
      (let ((__function__ 'cst-line-feed-conc))
        (declare (ignorable __function__))
        (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-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")))
      (let ((__function__ 'cst-carriage-return-conc))
        (declare (ignorable __function__))
        (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")))
      (let ((__function__ 'cst-space-conc))
        (declare (ignorable __function__))
        (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-line-terminator-conc

    (defun cst-line-terminator-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "line-terminator")))
      (let ((__function__ 'cst-line-terminator-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-line-terminator-conc

    (defthm tree-list-listp-of-cst-line-terminator-conc
      (b* ((abnf::cstss (cst-line-terminator-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-line-terminator-conc-match

    (defthm cst-line-terminator-conc-match
     (implies
         (cst-matchp abnf::cst "line-terminator")
         (b* ((abnf::cstss (cst-line-terminator-conc abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss
                                      "[ carriage-return ] line-feed")))
     :rule-classes :rewrite)

    Theorem: cst-line-terminator-conc-of-tree-fix-cst

    (defthm cst-line-terminator-conc-of-tree-fix-cst
      (equal (cst-line-terminator-conc (abnf::tree-fix abnf::cst))
             (cst-line-terminator-conc abnf::cst)))

    Theorem: cst-line-terminator-conc-tree-equiv-congruence-on-cst

    (defthm cst-line-terminator-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-line-terminator-conc abnf::cst)
                      (cst-line-terminator-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-whitespace-conc1

    (defun cst-whitespace-conc1 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-whitespace-conc1))
       (declare (ignorable __function__))
       (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-whitespace-conc1

    (defthm tree-list-listp-of-cst-whitespace-conc1
      (b* ((abnf::cstss (cst-whitespace-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-match

    (defthm cst-whitespace-conc1-match
      (implies (and (cst-matchp abnf::cst "whitespace")
                    (equal (cst-whitespace-conc? abnf::cst)
                           1))
               (b* ((abnf::cstss (cst-whitespace-conc1 abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "space")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-of-tree-fix-cst

    (defthm cst-whitespace-conc1-of-tree-fix-cst
      (equal (cst-whitespace-conc1 (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc1 abnf::cst)))

    Theorem: cst-whitespace-conc1-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc1 abnf::cst)
                      (cst-whitespace-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-whitespace-conc2

    (defun cst-whitespace-conc2 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-whitespace-conc2))
       (declare (ignorable __function__))
       (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-whitespace-conc2

    (defthm tree-list-listp-of-cst-whitespace-conc2
      (b* ((abnf::cstss (cst-whitespace-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-match

    (defthm cst-whitespace-conc2-match
      (implies
           (and (cst-matchp abnf::cst "whitespace")
                (equal (cst-whitespace-conc? abnf::cst)
                       2))
           (b* ((abnf::cstss (cst-whitespace-conc2 abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss "line-terminator")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-of-tree-fix-cst

    (defthm cst-whitespace-conc2-of-tree-fix-cst
      (equal (cst-whitespace-conc2 (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc2 abnf::cst)))

    Theorem: cst-whitespace-conc2-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc2 abnf::cst)
                      (cst-whitespace-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-uppercase-letter-conc

    (defun cst-uppercase-letter-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "uppercase-letter")))
      (let ((__function__ 'cst-uppercase-letter-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-uppercase-letter-conc

    (defthm tree-list-listp-of-cst-uppercase-letter-conc
      (b* ((abnf::cstss (cst-uppercase-letter-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-match

    (defthm cst-uppercase-letter-conc-match
      (implies (cst-matchp abnf::cst "uppercase-letter")
               (b* ((abnf::cstss (cst-uppercase-letter-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x41-5A")))
      :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-of-tree-fix-cst

    (defthm cst-uppercase-letter-conc-of-tree-fix-cst
      (equal (cst-uppercase-letter-conc (abnf::tree-fix abnf::cst))
             (cst-uppercase-letter-conc abnf::cst)))

    Theorem: cst-uppercase-letter-conc-tree-equiv-congruence-on-cst

    (defthm cst-uppercase-letter-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-uppercase-letter-conc abnf::cst)
                      (cst-uppercase-letter-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lowercase-letter-conc

    (defun cst-lowercase-letter-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "lowercase-letter")))
      (let ((__function__ 'cst-lowercase-letter-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-lowercase-letter-conc

    (defthm tree-list-listp-of-cst-lowercase-letter-conc
      (b* ((abnf::cstss (cst-lowercase-letter-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-match

    (defthm cst-lowercase-letter-conc-match
      (implies (cst-matchp abnf::cst "lowercase-letter")
               (b* ((abnf::cstss (cst-lowercase-letter-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x61-7A")))
      :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-of-tree-fix-cst

    (defthm cst-lowercase-letter-conc-of-tree-fix-cst
      (equal (cst-lowercase-letter-conc (abnf::tree-fix abnf::cst))
             (cst-lowercase-letter-conc abnf::cst)))

    Theorem: cst-lowercase-letter-conc-tree-equiv-congruence-on-cst

    (defthm cst-lowercase-letter-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lowercase-letter-conc abnf::cst)
                      (cst-lowercase-letter-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc1

    (defun cst-letter-conc1 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         1))))
      (let ((__function__ 'cst-letter-conc1))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-letter-conc1

    (defthm tree-list-listp-of-cst-letter-conc1
      (b* ((abnf::cstss (cst-letter-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc1-match

    (defthm cst-letter-conc1-match
     (implies
          (and (cst-matchp abnf::cst "letter")
               (equal (cst-letter-conc? abnf::cst) 1))
          (b* ((abnf::cstss (cst-letter-conc1 abnf::cst)))
            (cst-list-list-conc-matchp abnf::cstss "uppercase-letter")))
     :rule-classes :rewrite)

    Theorem: cst-letter-conc1-of-tree-fix-cst

    (defthm cst-letter-conc1-of-tree-fix-cst
      (equal (cst-letter-conc1 (abnf::tree-fix abnf::cst))
             (cst-letter-conc1 abnf::cst)))

    Theorem: cst-letter-conc1-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc1 abnf::cst)
                      (cst-letter-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc2

    (defun cst-letter-conc2 (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         2))))
      (let ((__function__ 'cst-letter-conc2))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-letter-conc2

    (defthm tree-list-listp-of-cst-letter-conc2
      (b* ((abnf::cstss (cst-letter-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc2-match

    (defthm cst-letter-conc2-match
     (implies
          (and (cst-matchp abnf::cst "letter")
               (equal (cst-letter-conc? abnf::cst) 2))
          (b* ((abnf::cstss (cst-letter-conc2 abnf::cst)))
            (cst-list-list-conc-matchp abnf::cstss "lowercase-letter")))
     :rule-classes :rewrite)

    Theorem: cst-letter-conc2-of-tree-fix-cst

    (defthm cst-letter-conc2-of-tree-fix-cst
      (equal (cst-letter-conc2 (abnf::tree-fix abnf::cst))
             (cst-letter-conc2 abnf::cst)))

    Theorem: cst-letter-conc2-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc2 abnf::cst)
                      (cst-letter-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-digit-conc

    (defun cst-digit-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "digit")))
      (let ((__function__ 'cst-digit-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-digit-conc

    (defthm tree-list-listp-of-cst-digit-conc
      (b* ((abnf::cstss (cst-digit-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-match

    (defthm cst-digit-conc-match
      (implies (cst-matchp abnf::cst "digit")
               (b* ((abnf::cstss (cst-digit-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "%x30-39")))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-of-tree-fix-cst

    (defthm cst-digit-conc-of-tree-fix-cst
      (equal (cst-digit-conc (abnf::tree-fix abnf::cst))
             (cst-digit-conc abnf::cst)))

    Theorem: cst-digit-conc-tree-equiv-congruence-on-cst

    (defthm cst-digit-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-digit-conc abnf::cst)
                      (cst-digit-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-numeral-conc

    (defun cst-numeral-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "numeral")))
      (let ((__function__ 'cst-numeral-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-numeral-conc

    (defthm tree-list-listp-of-cst-numeral-conc
      (b* ((abnf::cstss (cst-numeral-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-numeral-conc-match

    (defthm cst-numeral-conc-match
      (implies (cst-matchp abnf::cst "numeral")
               (b* ((abnf::cstss (cst-numeral-conc abnf::cst)))
                 (cst-list-list-conc-matchp abnf::cstss "1*digit")))
      :rule-classes :rewrite)

    Theorem: cst-numeral-conc-of-tree-fix-cst

    (defthm cst-numeral-conc-of-tree-fix-cst
      (equal (cst-numeral-conc (abnf::tree-fix abnf::cst))
             (cst-numeral-conc abnf::cst)))

    Theorem: cst-numeral-conc-tree-equiv-congruence-on-cst

    (defthm cst-numeral-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-numeral-conc abnf::cst)
                      (cst-numeral-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-identifier-conc

    (defun cst-identifier-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "identifier")))
      (let ((__function__ 'cst-identifier-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-identifier-conc

    (defthm tree-list-listp-of-cst-identifier-conc
      (b* ((abnf::cstss (cst-identifier-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-identifier-conc-match

    (defthm cst-identifier-conc-match
     (implies
      (cst-matchp abnf::cst "identifier")
      (b* ((abnf::cstss (cst-identifier-conc abnf::cst)))
        (cst-list-list-conc-matchp abnf::cstss
                                   "letter *( letter / digit / \"_\" )")))
     :rule-classes :rewrite)

    Theorem: cst-identifier-conc-of-tree-fix-cst

    (defthm cst-identifier-conc-of-tree-fix-cst
      (equal (cst-identifier-conc (abnf::tree-fix abnf::cst))
             (cst-identifier-conc abnf::cst)))

    Theorem: cst-identifier-conc-tree-equiv-congruence-on-cst

    (defthm cst-identifier-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-identifier-conc abnf::cst)
                      (cst-identifier-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))))
      (let ((__function__ 'cst-token-conc1))
        (declare (ignorable __function__))
        (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 "identifier")))
      :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))))
      (let ((__function__ 'cst-token-conc2))
        (declare (ignorable __function__))
        (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 "numeral")))
      :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))))
      (let ((__function__ 'cst-token-conc3))
        (declare (ignorable __function__))
        (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 "operator")))
      :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))))
      (let ((__function__ 'cst-token-conc4))
        (declare (ignorable __function__))
        (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 "separator")))
      :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-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))))
      (let ((__function__ 'cst-lexeme-conc1))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-lexeme-conc2))
        (declare (ignorable __function__))
        (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 "whitespace")))
      :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-unary-minus-expression-conc

    (defun cst-unary-minus-expression-conc (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare
         (xargs :guard (cst-matchp abnf::cst "unary-minus-expression")))
     (let ((__function__ 'cst-unary-minus-expression-conc))
       (declare (ignorable __function__))
       (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-unary-minus-expression-conc

    (defthm tree-list-listp-of-cst-unary-minus-expression-conc
      (b* ((abnf::cstss (cst-unary-minus-expression-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-unary-minus-expression-conc-match

    (defthm cst-unary-minus-expression-conc-match
     (implies
         (cst-matchp abnf::cst "unary-minus-expression")
         (b* ((abnf::cstss (cst-unary-minus-expression-conc abnf::cst)))
           (cst-list-list-conc-matchp abnf::cstss
                                      "[ \"-\" ] primary-expression")))
     :rule-classes :rewrite)

    Theorem: cst-unary-minus-expression-conc-of-tree-fix-cst

    (defthm cst-unary-minus-expression-conc-of-tree-fix-cst
     (equal (cst-unary-minus-expression-conc (abnf::tree-fix abnf::cst))
            (cst-unary-minus-expression-conc abnf::cst)))

    Theorem: cst-unary-minus-expression-conc-tree-equiv-congruence-on-cst

    (defthm cst-unary-minus-expression-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-unary-minus-expression-conc abnf::cst)
                      (cst-unary-minus-expression-conc 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")))
      (let ((__function__ 'cst-expression-conc))
        (declare (ignorable __function__))
        (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 "additive-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-equality-constraint-conc

    (defun cst-equality-constraint-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "equality-constraint")))
      (let ((__function__ 'cst-equality-constraint-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-equality-constraint-conc

    (defthm tree-list-listp-of-cst-equality-constraint-conc
      (b* ((abnf::cstss (cst-equality-constraint-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-equality-constraint-conc-match

    (defthm cst-equality-constraint-conc-match
      (implies
           (cst-matchp abnf::cst "equality-constraint")
           (b* ((abnf::cstss (cst-equality-constraint-conc abnf::cst)))
             (cst-list-list-conc-matchp abnf::cstss
                                        "expression \"==\" expression")))
      :rule-classes :rewrite)

    Theorem: cst-equality-constraint-conc-of-tree-fix-cst

    (defthm cst-equality-constraint-conc-of-tree-fix-cst
      (equal (cst-equality-constraint-conc (abnf::tree-fix abnf::cst))
             (cst-equality-constraint-conc abnf::cst)))

    Theorem: cst-equality-constraint-conc-tree-equiv-congruence-on-cst

    (defthm cst-equality-constraint-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-equality-constraint-conc abnf::cst)
                      (cst-equality-constraint-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-relation-constraint-conc

    (defun cst-relation-constraint-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare
           (xargs :guard (cst-matchp abnf::cst "relation-constraint")))
      (let ((__function__ 'cst-relation-constraint-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-relation-constraint-conc

    (defthm tree-list-listp-of-cst-relation-constraint-conc
      (b* ((abnf::cstss (cst-relation-constraint-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-relation-constraint-conc-match

    (defthm cst-relation-constraint-conc-match
     (implies
       (cst-matchp abnf::cst "relation-constraint")
       (b* ((abnf::cstss (cst-relation-constraint-conc abnf::cst)))
         (cst-list-list-conc-matchp
              abnf::cstss
              "identifier \"(\" [ expression *( \",\" expression ) ] \")\"")))
     :rule-classes :rewrite)

    Theorem: cst-relation-constraint-conc-of-tree-fix-cst

    (defthm cst-relation-constraint-conc-of-tree-fix-cst
      (equal (cst-relation-constraint-conc (abnf::tree-fix abnf::cst))
             (cst-relation-constraint-conc abnf::cst)))

    Theorem: cst-relation-constraint-conc-tree-equiv-congruence-on-cst

    (defthm cst-relation-constraint-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-relation-constraint-conc abnf::cst)
                      (cst-relation-constraint-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constraint-conc1

    (defun cst-constraint-conc1 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-constraint-conc1))
       (declare (ignorable __function__))
       (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-constraint-conc1

    (defthm tree-list-listp-of-cst-constraint-conc1
      (b* ((abnf::cstss (cst-constraint-conc1 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-match

    (defthm cst-constraint-conc1-match
     (implies
       (and (cst-matchp abnf::cst "constraint")
            (equal (cst-constraint-conc? abnf::cst)
                   1))
       (b* ((abnf::cstss (cst-constraint-conc1 abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "equality-constraint")))
     :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-of-tree-fix-cst

    (defthm cst-constraint-conc1-of-tree-fix-cst
      (equal (cst-constraint-conc1 (abnf::tree-fix abnf::cst))
             (cst-constraint-conc1 abnf::cst)))

    Theorem: cst-constraint-conc1-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc1-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc1 abnf::cst)
                      (cst-constraint-conc1 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constraint-conc2

    (defun cst-constraint-conc2 (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-constraint-conc2))
       (declare (ignorable __function__))
       (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-constraint-conc2

    (defthm tree-list-listp-of-cst-constraint-conc2
      (b* ((abnf::cstss (cst-constraint-conc2 abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-match

    (defthm cst-constraint-conc2-match
     (implies
       (and (cst-matchp abnf::cst "constraint")
            (equal (cst-constraint-conc? abnf::cst)
                   2))
       (b* ((abnf::cstss (cst-constraint-conc2 abnf::cst)))
         (cst-list-list-conc-matchp abnf::cstss "relation-constraint")))
     :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-of-tree-fix-cst

    (defthm cst-constraint-conc2-of-tree-fix-cst
      (equal (cst-constraint-conc2 (abnf::tree-fix abnf::cst))
             (cst-constraint-conc2 abnf::cst)))

    Theorem: cst-constraint-conc2-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc2-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc2 abnf::cst)
                      (cst-constraint-conc2 cst-equiv)))
      :rule-classes :congruence)

    Function: cst-definition-conc

    (defun cst-definition-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "definition")))
      (let ((__function__ 'cst-definition-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-definition-conc

    (defthm tree-list-listp-of-cst-definition-conc
      (b* ((abnf::cstss (cst-definition-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-definition-conc-match

    (defthm cst-definition-conc-match
     (implies
      (cst-matchp abnf::cst "definition")
      (b* ((abnf::cstss (cst-definition-conc abnf::cst)))
       (cst-list-list-conc-matchp
        abnf::cstss
        "identifier \"(\" [ identifier *( \",\" identifier ) ] \")\" \":=\" \"{\" [ constraint *( \",\" constraint ) ] \"}\"")))
     :rule-classes :rewrite)

    Theorem: cst-definition-conc-of-tree-fix-cst

    (defthm cst-definition-conc-of-tree-fix-cst
      (equal (cst-definition-conc (abnf::tree-fix abnf::cst))
             (cst-definition-conc abnf::cst)))

    Theorem: cst-definition-conc-tree-equiv-congruence-on-cst

    (defthm cst-definition-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-definition-conc abnf::cst)
                      (cst-definition-conc cst-equiv)))
      :rule-classes :congruence)

    Function: cst-system-conc

    (defun cst-system-conc (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "system")))
      (let ((__function__ 'cst-system-conc))
        (declare (ignorable __function__))
        (abnf::tree-nonleaf->branches abnf::cst)))

    Theorem: tree-list-listp-of-cst-system-conc

    (defthm tree-list-listp-of-cst-system-conc
      (b* ((abnf::cstss (cst-system-conc abnf::cst)))
        (abnf::tree-list-listp abnf::cstss))
      :rule-classes :rewrite)

    Theorem: cst-system-conc-match

    (defthm cst-system-conc-match
      (implies (cst-matchp abnf::cst "system")
               (b* ((abnf::cstss (cst-system-conc abnf::cst)))
                 (cst-list-list-conc-matchp
                      abnf::cstss "*definition *constraint")))
      :rule-classes :rewrite)

    Theorem: cst-system-conc-of-tree-fix-cst

    (defthm cst-system-conc-of-tree-fix-cst
      (equal (cst-system-conc (abnf::tree-fix abnf::cst))
             (cst-system-conc abnf::cst)))

    Theorem: cst-system-conc-tree-equiv-congruence-on-cst

    (defthm cst-system-conc-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-system-conc abnf::cst)
                      (cst-system-conc 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")))
      (let ((__function__ 'cst-line-feed-conc-rep))
        (declare (ignorable __function__))
        (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-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")))
     (let ((__function__ 'cst-carriage-return-conc-rep))
      (declare (ignorable __function__))
      (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")))
      (let ((__function__ 'cst-space-conc-rep))
        (declare (ignorable __function__))
        (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-whitespace-conc1-rep

    (defun cst-whitespace-conc1-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-whitespace-conc1-rep))
       (declare (ignorable __function__))
       (abnf::tree-list-fix (nth 0 (cst-whitespace-conc1 abnf::cst)))))

    Theorem: tree-listp-of-cst-whitespace-conc1-rep

    (defthm tree-listp-of-cst-whitespace-conc1-rep
      (b* ((abnf::csts (cst-whitespace-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-rep-match

    (defthm cst-whitespace-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "whitespace")
                    (equal (cst-whitespace-conc? abnf::cst)
                           1))
               (b* ((abnf::csts (cst-whitespace-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "space")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-rep-of-tree-fix-cst

    (defthm cst-whitespace-conc1-rep-of-tree-fix-cst
      (equal (cst-whitespace-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc1-rep abnf::cst)))

    Theorem: cst-whitespace-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc1-rep abnf::cst)
                      (cst-whitespace-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-whitespace-conc2-rep

    (defun cst-whitespace-conc2-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-whitespace-conc2-rep))
       (declare (ignorable __function__))
       (abnf::tree-list-fix (nth 0 (cst-whitespace-conc2 abnf::cst)))))

    Theorem: tree-listp-of-cst-whitespace-conc2-rep

    (defthm tree-listp-of-cst-whitespace-conc2-rep
      (b* ((abnf::csts (cst-whitespace-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-rep-match

    (defthm cst-whitespace-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "whitespace")
                    (equal (cst-whitespace-conc? abnf::cst)
                           2))
               (b* ((abnf::csts (cst-whitespace-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "line-terminator")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-rep-of-tree-fix-cst

    (defthm cst-whitespace-conc2-rep-of-tree-fix-cst
      (equal (cst-whitespace-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc2-rep abnf::cst)))

    Theorem: cst-whitespace-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc2-rep abnf::cst)
                      (cst-whitespace-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-uppercase-letter-conc-rep

    (defun cst-uppercase-letter-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "uppercase-letter")))
      (let ((__function__ 'cst-uppercase-letter-conc-rep))
        (declare (ignorable __function__))
        (abnf::tree-list-fix
             (nth 0
                  (cst-uppercase-letter-conc abnf::cst)))))

    Theorem: tree-listp-of-cst-uppercase-letter-conc-rep

    (defthm tree-listp-of-cst-uppercase-letter-conc-rep
      (b* ((abnf::csts (cst-uppercase-letter-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-rep-match

    (defthm cst-uppercase-letter-conc-rep-match
      (implies
           (cst-matchp abnf::cst "uppercase-letter")
           (b* ((abnf::csts (cst-uppercase-letter-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "%x41-5A")))
      :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-rep-of-tree-fix-cst

    (defthm cst-uppercase-letter-conc-rep-of-tree-fix-cst
      (equal (cst-uppercase-letter-conc-rep (abnf::tree-fix abnf::cst))
             (cst-uppercase-letter-conc-rep abnf::cst)))

    Theorem: cst-uppercase-letter-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-uppercase-letter-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-uppercase-letter-conc-rep abnf::cst)
                      (cst-uppercase-letter-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lowercase-letter-conc-rep

    (defun cst-lowercase-letter-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "lowercase-letter")))
      (let ((__function__ 'cst-lowercase-letter-conc-rep))
        (declare (ignorable __function__))
        (abnf::tree-list-fix
             (nth 0
                  (cst-lowercase-letter-conc abnf::cst)))))

    Theorem: tree-listp-of-cst-lowercase-letter-conc-rep

    (defthm tree-listp-of-cst-lowercase-letter-conc-rep
      (b* ((abnf::csts (cst-lowercase-letter-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-rep-match

    (defthm cst-lowercase-letter-conc-rep-match
      (implies
           (cst-matchp abnf::cst "lowercase-letter")
           (b* ((abnf::csts (cst-lowercase-letter-conc-rep abnf::cst)))
             (cst-list-rep-matchp abnf::csts "%x61-7A")))
      :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-rep-of-tree-fix-cst

    (defthm cst-lowercase-letter-conc-rep-of-tree-fix-cst
      (equal (cst-lowercase-letter-conc-rep (abnf::tree-fix abnf::cst))
             (cst-lowercase-letter-conc-rep abnf::cst)))

    Theorem: cst-lowercase-letter-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-lowercase-letter-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lowercase-letter-conc-rep abnf::cst)
                      (cst-lowercase-letter-conc-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc1-rep

    (defun cst-letter-conc1-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         1))))
      (let ((__function__ 'cst-letter-conc1-rep))
        (declare (ignorable __function__))
        (abnf::tree-list-fix (nth 0 (cst-letter-conc1 abnf::cst)))))

    Theorem: tree-listp-of-cst-letter-conc1-rep

    (defthm tree-listp-of-cst-letter-conc1-rep
      (b* ((abnf::csts (cst-letter-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc1-rep-match

    (defthm cst-letter-conc1-rep-match
      (implies (and (cst-matchp abnf::cst "letter")
                    (equal (cst-letter-conc? abnf::cst) 1))
               (b* ((abnf::csts (cst-letter-conc1-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "uppercase-letter")))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc1-rep-of-tree-fix-cst

    (defthm cst-letter-conc1-rep-of-tree-fix-cst
      (equal (cst-letter-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-letter-conc1-rep abnf::cst)))

    Theorem: cst-letter-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc1-rep abnf::cst)
                      (cst-letter-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc2-rep

    (defun cst-letter-conc2-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         2))))
      (let ((__function__ 'cst-letter-conc2-rep))
        (declare (ignorable __function__))
        (abnf::tree-list-fix (nth 0 (cst-letter-conc2 abnf::cst)))))

    Theorem: tree-listp-of-cst-letter-conc2-rep

    (defthm tree-listp-of-cst-letter-conc2-rep
      (b* ((abnf::csts (cst-letter-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc2-rep-match

    (defthm cst-letter-conc2-rep-match
      (implies (and (cst-matchp abnf::cst "letter")
                    (equal (cst-letter-conc? abnf::cst) 2))
               (b* ((abnf::csts (cst-letter-conc2-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "lowercase-letter")))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc2-rep-of-tree-fix-cst

    (defthm cst-letter-conc2-rep-of-tree-fix-cst
      (equal (cst-letter-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-letter-conc2-rep abnf::cst)))

    Theorem: cst-letter-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc2-rep abnf::cst)
                      (cst-letter-conc2-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-digit-conc-rep

    (defun cst-digit-conc-rep (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "digit")))
      (let ((__function__ 'cst-digit-conc-rep))
        (declare (ignorable __function__))
        (abnf::tree-list-fix (nth 0 (cst-digit-conc abnf::cst)))))

    Theorem: tree-listp-of-cst-digit-conc-rep

    (defthm tree-listp-of-cst-digit-conc-rep
      (b* ((abnf::csts (cst-digit-conc-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-rep-match

    (defthm cst-digit-conc-rep-match
      (implies (cst-matchp abnf::cst "digit")
               (b* ((abnf::csts (cst-digit-conc-rep abnf::cst)))
                 (cst-list-rep-matchp abnf::csts "%x30-39")))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-rep-of-tree-fix-cst

    (defthm cst-digit-conc-rep-of-tree-fix-cst
      (equal (cst-digit-conc-rep (abnf::tree-fix abnf::cst))
             (cst-digit-conc-rep abnf::cst)))

    Theorem: cst-digit-conc-rep-tree-equiv-congruence-on-cst

    (defthm cst-digit-conc-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-digit-conc-rep abnf::cst)
                      (cst-digit-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))))
      (let ((__function__ 'cst-token-conc1-rep))
        (declare (ignorable __function__))
        (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 "identifier")))
      :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))))
      (let ((__function__ 'cst-token-conc2-rep))
        (declare (ignorable __function__))
        (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 "numeral")))
      :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))))
      (let ((__function__ 'cst-token-conc3-rep))
        (declare (ignorable __function__))
        (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 "operator")))
      :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))))
      (let ((__function__ 'cst-token-conc4-rep))
        (declare (ignorable __function__))
        (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 "separator")))
      :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-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))))
      (let ((__function__ 'cst-lexeme-conc1-rep))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-lexeme-conc2-rep))
        (declare (ignorable __function__))
        (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 "whitespace")))
      :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-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")))
      (let ((__function__ 'cst-expression-conc-rep))
        (declare (ignorable __function__))
        (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 "additive-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-constraint-conc1-rep

    (defun cst-constraint-conc1-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-constraint-conc1-rep))
       (declare (ignorable __function__))
       (abnf::tree-list-fix (nth 0 (cst-constraint-conc1 abnf::cst)))))

    Theorem: tree-listp-of-cst-constraint-conc1-rep

    (defthm tree-listp-of-cst-constraint-conc1-rep
      (b* ((abnf::csts (cst-constraint-conc1-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-rep-match

    (defthm cst-constraint-conc1-rep-match
     (implies (and (cst-matchp abnf::cst "constraint")
                   (equal (cst-constraint-conc? abnf::cst)
                          1))
              (b* ((abnf::csts (cst-constraint-conc1-rep abnf::cst)))
                (cst-list-rep-matchp abnf::csts "equality-constraint")))
     :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-rep-of-tree-fix-cst

    (defthm cst-constraint-conc1-rep-of-tree-fix-cst
      (equal (cst-constraint-conc1-rep (abnf::tree-fix abnf::cst))
             (cst-constraint-conc1-rep abnf::cst)))

    Theorem: cst-constraint-conc1-rep-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc1-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc1-rep abnf::cst)
                      (cst-constraint-conc1-rep cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constraint-conc2-rep

    (defun cst-constraint-conc2-rep (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-constraint-conc2-rep))
       (declare (ignorable __function__))
       (abnf::tree-list-fix (nth 0 (cst-constraint-conc2 abnf::cst)))))

    Theorem: tree-listp-of-cst-constraint-conc2-rep

    (defthm tree-listp-of-cst-constraint-conc2-rep
      (b* ((abnf::csts (cst-constraint-conc2-rep abnf::cst)))
        (abnf::tree-listp abnf::csts))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-rep-match

    (defthm cst-constraint-conc2-rep-match
     (implies (and (cst-matchp abnf::cst "constraint")
                   (equal (cst-constraint-conc? abnf::cst)
                          2))
              (b* ((abnf::csts (cst-constraint-conc2-rep abnf::cst)))
                (cst-list-rep-matchp abnf::csts "relation-constraint")))
     :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-rep-of-tree-fix-cst

    (defthm cst-constraint-conc2-rep-of-tree-fix-cst
      (equal (cst-constraint-conc2-rep (abnf::tree-fix abnf::cst))
             (cst-constraint-conc2-rep abnf::cst)))

    Theorem: cst-constraint-conc2-rep-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc2-rep-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc2-rep abnf::cst)
                      (cst-constraint-conc2-rep 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")))
      (let ((__function__ 'cst-line-feed-conc-rep-elem))
        (declare (ignorable __function__))
        (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-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")))
     (let ((__function__ 'cst-carriage-return-conc-rep-elem))
       (declare (ignorable __function__))
       (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")))
      (let ((__function__ 'cst-space-conc-rep-elem))
        (declare (ignorable __function__))
        (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-whitespace-conc1-rep-elem

    (defun cst-whitespace-conc1-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-whitespace-conc1-rep-elem))
       (declare (ignorable __function__))
       (abnf::tree-fix (nth 0
                            (cst-whitespace-conc1-rep abnf::cst)))))

    Theorem: treep-of-cst-whitespace-conc1-rep-elem

    (defthm treep-of-cst-whitespace-conc1-rep-elem
      (b* ((abnf::cst1 (cst-whitespace-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-rep-elem-match

    (defthm cst-whitespace-conc1-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "whitespace")
                (equal (cst-whitespace-conc? abnf::cst)
                       1))
           (b* ((abnf::cst1 (cst-whitespace-conc1-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "space")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-whitespace-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-whitespace-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc1-rep-elem abnf::cst)))

    Theorem: cst-whitespace-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc1-rep-elem abnf::cst)
                      (cst-whitespace-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-whitespace-conc2-rep-elem

    (defun cst-whitespace-conc2-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "whitespace")
                                 (equal (cst-whitespace-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-whitespace-conc2-rep-elem))
       (declare (ignorable __function__))
       (abnf::tree-fix (nth 0
                            (cst-whitespace-conc2-rep abnf::cst)))))

    Theorem: treep-of-cst-whitespace-conc2-rep-elem

    (defthm treep-of-cst-whitespace-conc2-rep-elem
      (b* ((abnf::cst1 (cst-whitespace-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-rep-elem-match

    (defthm cst-whitespace-conc2-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "whitespace")
                (equal (cst-whitespace-conc? abnf::cst)
                       2))
           (b* ((abnf::cst1 (cst-whitespace-conc2-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "line-terminator")))
      :rule-classes :rewrite)

    Theorem: cst-whitespace-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-whitespace-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-whitespace-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-whitespace-conc2-rep-elem abnf::cst)))

    Theorem: cst-whitespace-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-whitespace-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-whitespace-conc2-rep-elem abnf::cst)
                      (cst-whitespace-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-uppercase-letter-conc-rep-elem

    (defun cst-uppercase-letter-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "uppercase-letter")))
     (let ((__function__ 'cst-uppercase-letter-conc-rep-elem))
      (declare (ignorable __function__))
      (abnf::tree-fix (nth 0
                           (cst-uppercase-letter-conc-rep abnf::cst)))))

    Theorem: treep-of-cst-uppercase-letter-conc-rep-elem

    (defthm treep-of-cst-uppercase-letter-conc-rep-elem
      (b* ((abnf::cst1 (cst-uppercase-letter-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-rep-elem-match

    (defthm cst-uppercase-letter-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "uppercase-letter")
       (b* ((abnf::cst1 (cst-uppercase-letter-conc-rep-elem abnf::cst)))
         (cst-matchp abnf::cst1 "%x41-5A")))
     :rule-classes :rewrite)

    Theorem: cst-uppercase-letter-conc-rep-elem-of-tree-fix-cst

    (defthm cst-uppercase-letter-conc-rep-elem-of-tree-fix-cst
     (equal
         (cst-uppercase-letter-conc-rep-elem (abnf::tree-fix abnf::cst))
         (cst-uppercase-letter-conc-rep-elem abnf::cst)))

    Theorem: cst-uppercase-letter-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
        cst-uppercase-letter-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-uppercase-letter-conc-rep-elem abnf::cst)
                      (cst-uppercase-letter-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-lowercase-letter-conc-rep-elem

    (defun cst-lowercase-letter-conc-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (cst-matchp abnf::cst "lowercase-letter")))
     (let ((__function__ 'cst-lowercase-letter-conc-rep-elem))
      (declare (ignorable __function__))
      (abnf::tree-fix (nth 0
                           (cst-lowercase-letter-conc-rep abnf::cst)))))

    Theorem: treep-of-cst-lowercase-letter-conc-rep-elem

    (defthm treep-of-cst-lowercase-letter-conc-rep-elem
      (b* ((abnf::cst1 (cst-lowercase-letter-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-rep-elem-match

    (defthm cst-lowercase-letter-conc-rep-elem-match
     (implies
       (cst-matchp abnf::cst "lowercase-letter")
       (b* ((abnf::cst1 (cst-lowercase-letter-conc-rep-elem abnf::cst)))
         (cst-matchp abnf::cst1 "%x61-7A")))
     :rule-classes :rewrite)

    Theorem: cst-lowercase-letter-conc-rep-elem-of-tree-fix-cst

    (defthm cst-lowercase-letter-conc-rep-elem-of-tree-fix-cst
     (equal
         (cst-lowercase-letter-conc-rep-elem (abnf::tree-fix abnf::cst))
         (cst-lowercase-letter-conc-rep-elem abnf::cst)))

    Theorem: cst-lowercase-letter-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm
        cst-lowercase-letter-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-lowercase-letter-conc-rep-elem abnf::cst)
                      (cst-lowercase-letter-conc-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc1-rep-elem

    (defun cst-letter-conc1-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         1))))
      (let ((__function__ 'cst-letter-conc1-rep-elem))
        (declare (ignorable __function__))
        (abnf::tree-fix (nth 0 (cst-letter-conc1-rep abnf::cst)))))

    Theorem: treep-of-cst-letter-conc1-rep-elem

    (defthm treep-of-cst-letter-conc1-rep-elem
      (b* ((abnf::cst1 (cst-letter-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc1-rep-elem-match

    (defthm cst-letter-conc1-rep-elem-match
      (implies (and (cst-matchp abnf::cst "letter")
                    (equal (cst-letter-conc? abnf::cst) 1))
               (b* ((abnf::cst1 (cst-letter-conc1-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "uppercase-letter")))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-letter-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-letter-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-letter-conc1-rep-elem abnf::cst)))

    Theorem: cst-letter-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc1-rep-elem abnf::cst)
                      (cst-letter-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-letter-conc2-rep-elem

    (defun cst-letter-conc2-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (and (cst-matchp abnf::cst "letter")
                                  (equal (cst-letter-conc? abnf::cst)
                                         2))))
      (let ((__function__ 'cst-letter-conc2-rep-elem))
        (declare (ignorable __function__))
        (abnf::tree-fix (nth 0 (cst-letter-conc2-rep abnf::cst)))))

    Theorem: treep-of-cst-letter-conc2-rep-elem

    (defthm treep-of-cst-letter-conc2-rep-elem
      (b* ((abnf::cst1 (cst-letter-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc2-rep-elem-match

    (defthm cst-letter-conc2-rep-elem-match
      (implies (and (cst-matchp abnf::cst "letter")
                    (equal (cst-letter-conc? abnf::cst) 2))
               (b* ((abnf::cst1 (cst-letter-conc2-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "lowercase-letter")))
      :rule-classes :rewrite)

    Theorem: cst-letter-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-letter-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-letter-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-letter-conc2-rep-elem abnf::cst)))

    Theorem: cst-letter-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-letter-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-letter-conc2-rep-elem abnf::cst)
                      (cst-letter-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-digit-conc-rep-elem

    (defun cst-digit-conc-rep-elem (abnf::cst)
      (declare (xargs :guard (abnf::treep abnf::cst)))
      (declare (xargs :guard (cst-matchp abnf::cst "digit")))
      (let ((__function__ 'cst-digit-conc-rep-elem))
        (declare (ignorable __function__))
        (abnf::tree-fix (nth 0 (cst-digit-conc-rep abnf::cst)))))

    Theorem: treep-of-cst-digit-conc-rep-elem

    (defthm treep-of-cst-digit-conc-rep-elem
      (b* ((abnf::cst1 (cst-digit-conc-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-rep-elem-match

    (defthm cst-digit-conc-rep-elem-match
      (implies (cst-matchp abnf::cst "digit")
               (b* ((abnf::cst1 (cst-digit-conc-rep-elem abnf::cst)))
                 (cst-matchp abnf::cst1 "%x30-39")))
      :rule-classes :rewrite)

    Theorem: cst-digit-conc-rep-elem-of-tree-fix-cst

    (defthm cst-digit-conc-rep-elem-of-tree-fix-cst
      (equal (cst-digit-conc-rep-elem (abnf::tree-fix abnf::cst))
             (cst-digit-conc-rep-elem abnf::cst)))

    Theorem: cst-digit-conc-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-digit-conc-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-digit-conc-rep-elem abnf::cst)
                      (cst-digit-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))))
      (let ((__function__ 'cst-token-conc1-rep-elem))
        (declare (ignorable __function__))
        (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 "identifier")))
      :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))))
      (let ((__function__ 'cst-token-conc2-rep-elem))
        (declare (ignorable __function__))
        (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 "numeral")))
      :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))))
      (let ((__function__ 'cst-token-conc3-rep-elem))
        (declare (ignorable __function__))
        (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 "operator")))
      :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))))
      (let ((__function__ 'cst-token-conc4-rep-elem))
        (declare (ignorable __function__))
        (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 "separator")))
      :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-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))))
      (let ((__function__ 'cst-lexeme-conc1-rep-elem))
        (declare (ignorable __function__))
        (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))))
      (let ((__function__ 'cst-lexeme-conc2-rep-elem))
        (declare (ignorable __function__))
        (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 "whitespace")))
      :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-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")))
      (let ((__function__ 'cst-expression-conc-rep-elem))
        (declare (ignorable __function__))
        (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 "additive-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-constraint-conc1-rep-elem

    (defun cst-constraint-conc1-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        1))))
     (let ((__function__ 'cst-constraint-conc1-rep-elem))
       (declare (ignorable __function__))
       (abnf::tree-fix (nth 0
                            (cst-constraint-conc1-rep abnf::cst)))))

    Theorem: treep-of-cst-constraint-conc1-rep-elem

    (defthm treep-of-cst-constraint-conc1-rep-elem
      (b* ((abnf::cst1 (cst-constraint-conc1-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-rep-elem-match

    (defthm cst-constraint-conc1-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "constraint")
                (equal (cst-constraint-conc? abnf::cst)
                       1))
           (b* ((abnf::cst1 (cst-constraint-conc1-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "equality-constraint")))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc1-rep-elem-of-tree-fix-cst

    (defthm cst-constraint-conc1-rep-elem-of-tree-fix-cst
      (equal (cst-constraint-conc1-rep-elem (abnf::tree-fix abnf::cst))
             (cst-constraint-conc1-rep-elem abnf::cst)))

    Theorem: cst-constraint-conc1-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc1-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc1-rep-elem abnf::cst)
                      (cst-constraint-conc1-rep-elem cst-equiv)))
      :rule-classes :congruence)

    Function: cst-constraint-conc2-rep-elem

    (defun cst-constraint-conc2-rep-elem (abnf::cst)
     (declare (xargs :guard (abnf::treep abnf::cst)))
     (declare (xargs :guard (and (cst-matchp abnf::cst "constraint")
                                 (equal (cst-constraint-conc? abnf::cst)
                                        2))))
     (let ((__function__ 'cst-constraint-conc2-rep-elem))
       (declare (ignorable __function__))
       (abnf::tree-fix (nth 0
                            (cst-constraint-conc2-rep abnf::cst)))))

    Theorem: treep-of-cst-constraint-conc2-rep-elem

    (defthm treep-of-cst-constraint-conc2-rep-elem
      (b* ((abnf::cst1 (cst-constraint-conc2-rep-elem abnf::cst)))
        (abnf::treep abnf::cst1))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-rep-elem-match

    (defthm cst-constraint-conc2-rep-elem-match
      (implies
           (and (cst-matchp abnf::cst "constraint")
                (equal (cst-constraint-conc? abnf::cst)
                       2))
           (b* ((abnf::cst1 (cst-constraint-conc2-rep-elem abnf::cst)))
             (cst-matchp abnf::cst1 "relation-constraint")))
      :rule-classes :rewrite)

    Theorem: cst-constraint-conc2-rep-elem-of-tree-fix-cst

    (defthm cst-constraint-conc2-rep-elem-of-tree-fix-cst
      (equal (cst-constraint-conc2-rep-elem (abnf::tree-fix abnf::cst))
             (cst-constraint-conc2-rep-elem abnf::cst)))

    Theorem: cst-constraint-conc2-rep-elem-tree-equiv-congruence-on-cst

    (defthm cst-constraint-conc2-rep-elem-tree-equiv-congruence-on-cst
      (implies (abnf::tree-equiv abnf::cst cst-equiv)
               (equal (cst-constraint-conc2-rep-elem abnf::cst)
                      (cst-constraint-conc2-rep-elem cst-equiv)))
      :rule-classes :congruence)