• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
        • Deftreeops
        • Defdefparse
        • Defgrammar
        • Tree-utilities
        • Notation
          • Syntax-abstraction
          • Semantics
          • Abstract-syntax
          • Core-rules
            • Core-rule-names
            • Core-rule-definitions
            • Core-rules-validation
              • *core-rules*
            • Concrete-syntax
              • Parse-grammar*
              • Core-rules
                • Core-rule-names
                • Core-rule-definitions
                • Core-rules-validation
                  • *core-rules*
                • Concrete-syntax-validation
                • *grammar*
                • Concrete-syntax-rules
            • Grammar-parser
            • Meta-circular-validation
            • Parsing-primitives-defresult
            • Parsing-primitives-seq
            • Operations
            • Examples
            • Differences-with-paper
            • Constructor-utilities
            • Grammar-printer
            • Parsing-tools
          • Vwsim
          • Isar
          • Wp-gen
          • Dimacs-reader
          • Pfcs
          • 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
      • Core-rules

      Core-rules-validation

      Validation of the core rules.

      We show that the core rules:

      • Are well-formed.
      • Are closed.
      • Generate only strings of octets.
      • Without the OCTET rule, generate only strings of ASCII codes.

      These validation theorems depend on some grammar operations. Thus, we put them in a separate file, avoiding a dependency of the file that defines the core rules on the grammar operations.

      Definitions and Theorems

      Theorem: rulelist-wfp-of-*core-rules*

      (defthm rulelist-wfp-of-*core-rules*
        (rulelist-wfp *core-rules*))

      Theorem: rulelist-closedp-of-*core-rules*

      (defthm rulelist-closedp-of-*core-rules*
        (rulelist-closedp *core-rules*))

      Theorem: octet-only-*core-rules*

      (defthm octet-only-*core-rules*
        (rulelist-in-termset-p *core-rules* (integers-from-to 0 255)))

      Theorem: ascii-only-*core-rules*-without-*octet*

      (defthm ascii-only-*core-rules*-without-*octet*
        (rulelist-in-termset-p (remove-equal *rule_octet* *core-rules*)
                               (integers-from-to 0 127)))