• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
        • Deftreeops
        • Defdefparse
        • Defgrammar
        • Tree-utilities
        • Notation
        • Grammar-parser
        • Meta-circular-validation
        • Parsing-primitives-defresult
        • Parsing-primitives-seq
        • Operations
          • In-terminal-set
          • Closure
            • Calc-trans-rules-of-names
            • Rules-of-name
            • Rulelist-unused-rules
              • Trans-rules-of-names
              • Rulelist-called-rules
              • Rulelist-defined-rules
              • Rulelist-closedp
              • Rule-called-rules
              • Element-called-rules
              • Concatenation-called-rules
              • Alternation-called-rules
              • Repetition-called-rules
            • Well-formedness
            • Plugging
            • Ambiguity
            • Renaming
            • Numeric-range-retrieval
            • Rule-utilities
            • Removal
            • Character-value-retrieval
          • 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
    • Closure

    Rulelist-unused-rules

    Rule names that are defined in a list of rules but not used anywhere in those rules.

    Signature
    (rulelist-unused-rules rules) → rulenames
    Arguments
    rules — Guard (rulelistp rules).
    Returns
    rulenames — Type (rulename-setp rulenames).

    It is not uncommon for this set to be non-empty. First, top-level rule names are often not used in other rules. Second, sometimes grammars define certain rules to establish nomenclatures, even if those rules may not be used explicitly in other rules.

    Definitions and Theorems

    Function: rulelist-unused-rules

    (defun rulelist-unused-rules (rules)
      (declare (xargs :guard (rulelistp rules)))
      (difference (rulelist-defined-rules rules)
                  (rulelist-called-rules rules)))

    Theorem: rulename-setp-of-rulelist-unused-rules

    (defthm rulename-setp-of-rulelist-unused-rules
      (b* ((rulenames (rulelist-unused-rules rules)))
        (rulename-setp rulenames))
      :rule-classes :rewrite)