• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • C
        • Syntax-for-tools
          • Formalized-subset
          • Mapping-to-language-definition
          • Input-files
          • Compilation-database
          • Printer
            • Print-exprs/decls/stmts
            • Print-expr
            • Pristate
            • Print-dec/oct/hex-const
            • Priopt
            • Print-fundef
            • Print-filepath-transunit-map
            • Print-s-char
            • Print-c-char
            • Print-q-char
            • Print-h-char
            • Print-fileset
            • Print-typequal/attribspec-list-list
            • Print-file
            • Print-hex-core-fconst
            • Print-dec-core-fconst
            • Print-ident-list
            • Print-fsuffix
            • Print-oct-digit-achar
            • Print-label-declaration-list
            • Print-hex-frac-const
            • Print-hex-digit-achar
            • Print-dec-frac-const
            • Print-dec-digit-achar
            • Print-asm-clobber-list
            • Print-stringlit-list
            • Print-inc/dec-op-list
            • Print-astring
            • Print-asm-name-spec
            • Print-univ-char-name
            • Print-struni-spec
            • Print-simple-escape
            • Print-label-declaration
            • Print-isuffix-option
            • Print-fsuffix-option
            • Print-extdecl-list
            • Print-eprefix-option
            • Print-dec-expo-option
            • Print-cprefix-option
            • Print-binop
            • Print-attrib-name
            • Print-type-qual
            • Print-s-char-list
            • Print-q-char-list
            • Print-indent
            • Print-ident
            • Print-h-char-list
            • Print-dec-expo-prefix
            • Print-char
            • Print-c-char-list
            • Print-bin-expo-prefix
            • Print-asm-qual-list
            • Print-stringlit
            • Print-stor-spec
            • Print-sign-option
            • Print-oct-escape
            • Print-header-name
            • Print-extdecl
            • Print-escape
            • Print-cconst
            • Print-asm-qual
            • Print-asm-clobber
            • Init-pristate
              • Dec-pristate-indent
              • Print-isuffix
              • Print-fun-spec
              • Print-fconst
              • Print-dec-expo
              • Print-bin-expo
              • Print-unop
              • Print-transunit
              • Print-new-line
              • Print-lsuffix
              • Print-inc/dec-op
              • Print-hex-quad
              • Print-eprefix
              • Print-cprefix
              • Print-usuffix
              • Print-iconst
              • Print-hprefix
              • Print-const
              • Print-comp-stmt
              • Print-hex-digit-achars
              • Print-sign
              • Print-oct-digit-achars
              • Print-dec-digit-achars
              • Print-chars
              • Inc-pristate-indent
              • Print-expr-list
              • Print-struct-declon-list
              • Print-stmt
              • Print-param-declor
              • Print-dirdeclor
              • Default-priopt
              • Print-struct-declor
              • Print-initer
              • Print-decl-inline
              • Print-struct-declon
              • Print-genassoc-list
              • Print-enum-spec
              • Print-absdeclor
              • Print-typequal/attribspec-list
              • Print-desiniter-list
              • Print-const-expr
              • Print-attrib
              • Print-tyname
              • Print-struct-declor-list
              • Print-spec/qual-list
              • Print-param-declon-list
              • Print-param-declon
              • Print-initdeclor-list
              • Print-designor-list
              • Print-decl-spec-list
              • Print-decl-list
              • Print-attrib-spec-list
              • Print-asm-output-list
              • Print-asm-input-list
              • Print-typequal/attribspec
              • Print-statassert
              • Print-spec/qual
              • Print-member-designor
              • Print-initdeclor
              • Print-enumer-list
              • Print-dirabsdeclor
              • Print-desiniter
              • Print-decl-spec
              • Print-decl
              • Print-block-item-list
              • Print-attrib-spec
              • Print-attrib-list
              • Print-asm-output
              • Print-align-spec
              • Print-type-spec
              • Print-label
              • Print-genassoc
              • Print-enumer
              • Print-designor
              • Print-declor
              • Print-block-item
              • Print-asm-stmt
              • Print-asm-input
            • Output-files
            • Abstract-syntax-operations
            • Implementation-environments
            • Abstract-syntax
            • Concrete-syntax
            • Disambiguation
            • Validation
            • Gcc-builtins
            • Preprocessing
            • Parsing
          • Atc
          • Transformation-tools
          • Language
          • Representation
          • Insertion-sort
          • Pack
        • Proof-checker-array
        • Soft
        • Farray
        • Rp-rewriter
        • Instant-runoff-voting
        • Imp-language
        • Sidekick
        • Ethereum
        • Leftist-trees
        • Java
        • Riscv
        • Taspi
        • Bitcoin
        • Zcash
        • Des
        • X86isa
        • Sha-2
        • Yul
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Axe
        • Poseidon
        • Where-do-i-place-my-book
        • Aleo
        • 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
    • Printer

    Init-pristate

    Initial printer state.

    Signature
    (init-pristate options gcc) → pstate
    Arguments
    options — Guard (prioptp options).
    gcc — Guard (booleanp gcc).
    Returns
    pstate — Type (pristatep pstate).

    We pass the printing options and the GCC flag, which must be provided externally.

    Initially, no data has been printed, and the indentation level is 0.

    Definitions and Theorems

    Function: init-pristate

    (defun init-pristate (options gcc)
      (declare (xargs :guard (and (prioptp options) (booleanp gcc))))
      (let ((__function__ 'init-pristate))
        (declare (ignorable __function__))
        (make-pristate :bytes-rev nil
                       :indent-level 0
                       :options options
                       :gcc gcc)))

    Theorem: pristatep-of-init-pristate

    (defthm pristatep-of-init-pristate
      (b* ((pstate (init-pristate options gcc)))
        (pristatep pstate))
      :rule-classes :rewrite)

    Theorem: pristate->gcc-of-init-pristate

    (defthm pristate->gcc-of-init-pristate
      (b* ((?pstate (init-pristate options gcc)))
        (equal (pristate->gcc pstate)
               (bool-fix gcc))))

    Theorem: init-pristate-of-priopt-fix-options

    (defthm init-pristate-of-priopt-fix-options
      (equal (init-pristate (priopt-fix options) gcc)
             (init-pristate options gcc)))

    Theorem: init-pristate-priopt-equiv-congruence-on-options

    (defthm init-pristate-priopt-equiv-congruence-on-options
      (implies (priopt-equiv options options-equiv)
               (equal (init-pristate options gcc)
                      (init-pristate options-equiv gcc)))
      :rule-classes :congruence)

    Theorem: init-pristate-of-bool-fix-gcc

    (defthm init-pristate-of-bool-fix-gcc
      (equal (init-pristate options (bool-fix gcc))
             (init-pristate options gcc)))

    Theorem: init-pristate-iff-congruence-on-gcc

    (defthm init-pristate-iff-congruence-on-gcc
      (implies (iff gcc gcc-equiv)
               (equal (init-pristate options gcc)
                      (init-pristate options gcc-equiv)))
      :rule-classes :congruence)