• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • 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
        • C
          • Syntax-for-tools
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Compilation-database
            • Printer
            • Output-files
            • Abstract-syntax-operations
              • Expr-priority
              • Expr-priority-<=
              • Combine-dirabsdeclor-into-dirabsdeclor
              • Declor/dirdeclor-rename
              • Check-decl-spec-list-all-typespec/stoclass
              • Binop-expected-priorities
              • Expr->priority
              • Transunit-at-path
              • Declor/dirdeclor->ident
              • Declor/dirdeclor-has-params-p
              • Check-expr-binary
              • Apply-post-inc/dec-ops
              • Check-spec/qual-list-all-typespec
              • Apply-pre-inc/dec-ops
              • Check-decl-spec-list-all-typespec
              • Expr-to-asg-expr-list
              • Check-expr-mul
              • Expr-unary/postfix/primary-p
              • Transunit-ensemble-paths
                • Check-struni-spec-no-members
                • Expr-postfix/primary-p
                • Dirabsdeclor-declor?-nil-p
                • Check-enum-spec-no-list
                • Expr-zerop
                • Expr-priority->=
                • Decl-spec-list-to-stor-spec-list
                • Spec/qual-list-to-type-spec-list
                • Expr-priority->
                • Expr-priority-<
                • Declor-spec-list-filter-out-linkage-specs
                • Decl-spec-list-to-type-spec-list
                • Ident-list-map-expr-ident
                • Binop->priority
                • Stringlit-list->prefix?-list
                • Declor-spec-list-make-static
                • Binop-strictp
                • Check-expr-iconst
                • Init-declor->ident
                • Check-expr-ident
                • Dirabsdeclor-to-dirdeclor
                • Dirabsdeclor-option-to-dirdeclor
                • Dirdeclor-has-params-p
                • Absdeclor-to-declor
                • Dirdeclor-rename
                • Declor-rename
                • Declor-has-params-p
                • Dirdeclor->ident
                • Declor->ident
              • Implementation-environments
              • Abstract-syntax
              • Concrete-syntax
              • Disambiguation
              • Validation
              • Gcc-builtins
              • Preprocessing
              • Parsing
            • Atc
            • Transformation-tools
            • Language
            • Representation
            • Insertion-sort
            • Pack
          • Soft
          • Bv
          • Imp-language
          • Ethereum
          • Event-macros
          • Java
          • Riscv
          • Bitcoin
          • Zcash
          • Yul
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Axe
          • Lists-light
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Abstract-syntax-operations

    Transunit-ensemble-paths

    Set of file paths in a translation unit ensemble.

    Signature
    (transunit-ensemble-paths tunits) → paths
    Arguments
    tunits — Guard (transunit-ensemblep tunits).
    Returns
    paths — Type (filepath-setp paths).

    These are the keys of the map from file paths to translation units.

    It is more concise, and more abstract, than extracting the map and then the keys.

    Together with transunit-at-path, it can be used as an API to inspect translation unit ensembles.

    Definitions and Theorems

    Function: transunit-ensemble-paths

    (defun transunit-ensemble-paths (tunits)
      (declare (xargs :guard (transunit-ensemblep tunits)))
      (omap::keys (transunit-ensemble->units tunits)))

    Theorem: filepath-setp-of-transunit-ensemble-paths

    (defthm filepath-setp-of-transunit-ensemble-paths
      (b* ((paths (transunit-ensemble-paths tunits)))
        (filepath-setp paths))
      :rule-classes :rewrite)

    Theorem: transunit-ensemble-paths-of-transunit-ensemble-fix-tunits

    (defthm transunit-ensemble-paths-of-transunit-ensemble-fix-tunits
      (equal (transunit-ensemble-paths (transunit-ensemble-fix tunits))
             (transunit-ensemble-paths tunits)))

    Theorem: transunit-ensemble-paths-transunit-ensemble-equiv-congruence-on-tunits

    (defthm
     transunit-ensemble-paths-transunit-ensemble-equiv-congruence-on-tunits
     (implies (transunit-ensemble-equiv tunits tunits-equiv)
              (equal (transunit-ensemble-paths tunits)
                     (transunit-ensemble-paths tunits-equiv)))
     :rule-classes :congruence)