• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
          • Implementation
          • Setp
          • Right
          • Left
            • Head
            • Double-containment
            • Subset
            • Intersect
            • Insert
            • In
            • Delete
            • Union
            • Diff
            • From-list
            • To-list
            • Set-equiv
            • Sfix
            • Pick-a-point
            • Cardinality
            • Set-induct
            • Set-bi-induct
            • Emptyp
          • Soft
          • C
          • Bv
          • Imp-language
          • Event-macros
          • Java
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Lists-light
          • Axe
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Set

    Left

    Get the "left" subset of the nonempty set.

    Signature
    (left set) → left
    Arguments
    set — Guard (setp set).
    Returns
    left — Type (setp left).

    For empty sets, returns nil.

    From a user perspective, this should likely be viewed as an arbitrary proper subset excluding the head and disjoint from the right subset. Concretely, it is the subset for which all elements are bst< the head. In terms of the underlying tree representation, this is the left subtree.

    Definitions and Theorems

    Function: left$inline

    (defun left$inline (set)
      (declare (xargs :guard (setp set)))
      (tree-left (sfix set)))

    Theorem: setp-of-left

    (defthm setp-of-left
      (b* ((left (left$inline set)))
        (setp left))
      :rule-classes :rewrite)