• 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
          • Well-formedness
          • Closure
          • Plugging
          • Ambiguity
            • Concatenation-alternation-disjointp
            • Concatenation-unambiguousp
            • Repetition-unambiguousp
            • Alternation-unambiguousp
            • Alternation-unambiguousp-of-cons-when-disjointp
            • Element-unambiguousp
            • Rules-ambiguousp
              • Prose-val-ambiguous
              • Num-val-unambiguous
              • Char-val-unambiguous
              • Element-prose-val-ambiguous
              • Element-num-val-unambiguous
              • Element-char-val-unambiguous
            • 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
        • Proof-checker-array
        • Soft
        • C
        • Farray
        • Rp-rewriter
        • Instant-runoff-voting
        • Imp-language
        • Sidekick
        • Leftist-trees
        • Java
        • Taspi
        • Bitcoin
        • Riscv
        • Des
        • Ethereum
        • X86isa
        • Sha-2
        • Yul
        • Zcash
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Poseidon
        • Where-do-i-place-my-book
        • Axe
        • Bigmems
        • Builtins
        • Execloader
        • Aleo
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Ambiguity

    Rules-ambiguousp

    Notion of ambiguous lists of rules.

    A list of rules is ambiguous iff it includes some ambiguous string. Note that the condition that the existentially quantified rulename be defined by rules would be superfluous, because if rulename is not defined then no parse trees can originate from it.

    Definitions and Theorems

    Theorem: rules-ambiguousp-suff

    (defthm rules-ambiguousp-suff
      (implies (and (stringp string)
                    (rulenamep rulename)
                    (string-ambiguousp string rulename rules))
               (rules-ambiguousp rules)))

    Theorem: booleanp-of-rules-ambiguousp

    (defthm booleanp-of-rules-ambiguousp
      (b* ((yes/no (rules-ambiguousp rules)))
        (booleanp yes/no))
      :rule-classes :rewrite)