• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • 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
      • Riscv
      • Taspi
      • Bitcoin
      • 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
      • Aleo
        • Aleobft
        • Aleovm
        • Leo
          • Grammar
          • Early-version
            • Json2ast
            • Testing
            • Definition
              • Flattening
              • Abstract-syntax
              • Dynamic-semantics
              • Compilation
              • Static-semantics
              • Concrete-syntax
                • Pretty-printer
                • Grammar
                • Lexing-and-parsing
                • Input-pretty-printer
                • Output-pretty-printer
                • Unicode-characters
                  • Unicode-list->codepoint-list
                  • Unicode
                    • Unicode-fix
                    • Unicode-equiv
                    • Make-unicode
                    • Unicode->codepoint
                    • Change-unicode
                    • Unicodep
                  • Unicode-list
                • Concrete-syntax-trees
                • Symbols
                • Keywords
      • 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
  • Unicode-characters

Unicode

Fixtype of Unicode characters.

This is a product type introduced by fty::defprod.

Fields
codepoint — natp
Additional Requirements

The following invariant is enforced on the fields:

(<= codepoint 1114111)

This is the set of Unicode code points.

We wrap the code point into a one-component product type for better encapsulation and abstraction. We use an invariant to restrict the number to the prescribed range.

This fixtype has currently the same definition as char in the abstract syntax formalization. However, in the future we might change the representation of char (e.g. by keeping track of escapes, or by treating ASCII and non-ASCII differently for more readability), while the fixtype defined here is expected to stay isomorphic to the natural numbers that represent Unicode code points.

Subtopics

Unicode-fix
Fixing function for unicode structures.
Unicode-equiv
Basic equivalence relation for unicode structures.
Make-unicode
Basic constructor macro for unicode structures.
Unicode->codepoint
Get the codepoint field from a unicode.
Change-unicode
Modifying constructor for unicode structures.
Unicodep
Recognizer for unicode structures.