• 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
            • Rulelist-incremental-ok-p
            • Num-val-wfp
            • Char-val-wfp
            • Prose-val-wfp
              • Rulename-wfp
              • Rulelist-wfp
              • Repeat-range-wfp
              • Rule-list-wfp
              • Concatenation-wfp
              • Alternation-wfp
              • Rule-wfp
              • Concatenation-list-wfp
              • Repetition-list-wfp
              • Repetition-wfp
              • Element-wfp
            • Closure
            • 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
        • 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
    • Well-formedness

    Prose-val-wfp

    A prose value notation is well-formed iff it consists of only non-control ASCII characters, except for the right angle bracket character.

    Signature
    (prose-val-wfp prose-val) → yes/no
    Arguments
    prose-val — Guard (prose-val-p prose-val).
    Returns
    yes/no — Type (booleanp yes/no).

    These allowed characters are consistent with the rule prose-val in [RFC:4]. That rule allows empty bracketed strings. Normally prose should be non-empty (so it provides some description), but in the formal semantics any tree matches prose, so the emptiness of prose makes no difference in the formal semantics.

    Definitions and Theorems

    Function: prose-val-wfp

    (defun prose-val-wfp (prose-val)
     (declare (xargs :guard (prose-val-p prose-val)))
     (b*
      ((allowed-chars (nats=>chars (append (integers-from-to 32 61)
                                           (integers-from-to 63 126)))))
      (subsetp (explode (prose-val->get prose-val))
               allowed-chars)))

    Theorem: booleanp-of-prose-val-wfp

    (defthm booleanp-of-prose-val-wfp
      (b* ((yes/no (prose-val-wfp prose-val)))
        (booleanp yes/no))
      :rule-classes :rewrite)