• Top
    • Documentation
      • Xdoc
        • Undocumented
          • Interp-flags
          • Simpcode
          • Npn4
          • Cutinfo
          • Glcp-config-p
          • Glmc-config-p
          • Defsvtv-args
          • Vl-renaming-alist-p
          • Vcd-pathmap-p
          • Vcd-idxhash-p
          • *atc-exec-binary-strict-pure-rules*
          • Ecut-wirename-alistp
          • Context
          • Incremental-extremize-config-p
          • Block-headerp
          • Ctrex-rule
          • Execution-environmentp
          • Glmc-fsm-p
          • Transactionp
          • Eqbylbp-config-p
          • Proof-obligation
          • Cgraph-edge
          • Wcp-instance-rule-p
          • Fgl-casesplit-config
          • Wcp-witness-rule-p
          • Obligation-hyp
          • Vl-parsestate
          • Ecutnames-p
          • Te-args
          • Fgl-satlink-monolithic-sat-config
          • Fn-info-elt-p
          • Wcp-template-p
          • Truth-idx
          • Polarity4
          • Phase-fsm-params
          • Propiso-info-p
          • Cutscore
          • Vl-rhs
          • Truth6
          • Constraint-tuple
          • Truth5
          • Truth4
          • Truth3
          • Svexl-node
          • Ringosc3
          • Prof-entry-p
          • Constraint-tuple-p
          • Fgl-rune
          • Stv-spec-p
          • Run-snippet-file-info
          • Svex-scc-consts
          • Fsm
          • Machine-statep
          • Xor-signature-p
          • Run-snippet-info
          • Svtv-precompose-data
          • Pipeline-setup
          • Maybe-svar-p
          • Svl-module
          • Maybe-fgl-generic-rule
          • Frames
          • Maybe-snippet-mismatch
          • Cpuid-info-p
          • Vl-warningtree
          • Maybe-proof-obligation
          • Svtv-override-check
          • Maybe-svtv-chase-evaldata
          • Fty-info
          • Prof-entry
          • Substatep
          • Vl-maybe-rhs
          • Vl-parsed-ports
          • Svex-context
          • Account-statep
          • Maybe-simpcode
          • Maybe-rational
          • Maybe-svex
          • Flatten-res
          • Svex-reduce-config
          • Fty-type
          • Rewrite
          • Snippet-info
          • Addnames-indices
          • Svtv*-phase
          • Segment-driver
          • Satlink-parser-state
          • Fgl-binder-rune
          • Congruence-rule
          • Snippet-mismatch
          • Vl-ctxexpr
          • Rsh-of-concat-table
          • Chase-position
          • Hyp-tuple-p
          • Glcp-obj-ctrex-p
          • Glcp-bit-ctrex-p
          • Block$-p
          • Boundrw-subst-p
          • Svtv-cyclephase
          • Svar-split
          • Scopetree
          • Flatnorm-res
          • Fgl-rule
          • Constraint-rule
          • Vl-user-paramsetting
          • Svtv-override-triple
          • Svtv-evaldata
          • Svtv-composedata
          • Width-of-svex-extn
          • Array-fieldinfo-p
          • Wcp-example-app-p
          • Svtv*-input
          • Svex-override-triple
          • Svar-override-triple
          • 3col4vecline
          • Constraint-rule-p
          • Vl-parsed-ports
          • Svtv-chase-evaldata
          • Svtv-assigns-override-config
          • Svex/index
          • Svl-env
          • Svl-aliasdb
          • Inverter
          • Fgl-binder-rule
          • Bvar-db-consistency-error
          • Wcp-lit-actions-p
          • Vcd-multivector-p
          • Svtv-fsm
          • Svexl
          • Constraint-instance
          • Vl-parsestate
          • Partsum-comp
          • Classname/params
          • Vcd-vector-p
          • Tmp-occ
          • Svl-occ
          • Svexllist
          • Svexl-alist
          • Integerp-of-svex-extn
          • Uninterpreted
          • Rw-pair
          • Vl-echar-raw
          • Vl-echar-raw
          • Use-set
          • Svtv-probe
          • Svex-phase-varname
          • Svex-cycle-varname
          • Range
          • Phase-fsm-config
          • Overridekey-syntaxcheck-data
          • Constraint
          • Alias
          • Sig
          • Sandwich
          • Cgraph-derivstate
          • Candidate-assign
          • Svex-alist-eval-equiv!
          • Svex-alist-eval-equiv
          • Scalar-fieldinfo-p
          • Fe-list-listp
          • Fgl-ev-congruence-rulelist-correct-p
          • N-outputs-dom-supergates-sweep-config
          • Svex-envlists-equivalent
          • Svex-alistlist-eval-equiv
          • Flatnorm-setup
          • G-map-tag
          • Obs-sdom-array
          • Dom-supergates-sweep-config
          • Truth4arr
          • Npn4arr
          • Syndef::acid4
          • Svex-envlists-similar
          • Svex-alist-compose-equiv
          • Sym-prod
          • Fgl-congruence-rune
          • Svex-envs-1mask-equiv
          • U32arr
          • Litarr
          • Aigtrans
          • Svexlist-eval-equiv
          • N-outputs-unreachability-config
          • Svex-eval-equiv
          • Unreachability-config
          • Keys-equiv
          • Vl-maybe-exprtype-list-p
          • Svex-alistlist
          • Svar-overridetype-p
          • Vcd-indexlist-p
          • Alternative-spec-listp
          • Variable-listp
          • Vcd-vectorlist-p
          • Vcd-multivectorlist-p
          • Field-spec-listp
          • Neteval-ordering
          • Prof-entrylist-p
          • Hyp-tuplelist-p
          • Glcp-obj-ctrexlist-p
          • Symbol-path-list-p
          • Pseudo-input-listp
          • Input-listp
          • Ecutname-list-p
          • Boundrw-substlist-p
          • Constraintlist
          • Fgl-object-bindings
          • Fgl-generic-rule
          • 4v-equiv
          • Sdm-instruction-table
          • Svexl-node-array
          • Sig-path
          • Func-alist
          • Fgl-generic-rune
          • Fgl-ev-iff-equiv
          • Pseudo-term-subst
          • Nth-lit-equiv
          • Frames-equiv
          • Eval-formula-equiv
          • Svex-s4env
          • Svex-env-keys-equiv
          • Svex-alist-keys-equiv
          • Pseudo-term-alist
          • Fgl-ev-equiv
          • Lits-equiv
          • Nth-nat-equiv
          • Faig-const-equiv
          • Bdd-equiv
          • Byte-list
          • Vl-user-paramsettings
          • Classname/params-unparam-map
          • Obligation-hyp-list
          • Svtv*-output-alist
          • Svtv*-input-alist
          • Svtv-probealist
          • Svtv-override-triplemap
          • Svtv-cyclephaselist
          • Svex/index-maybenat-alist
          • Svex-context-alist
          • Segment-driver-map
          • Rangemap
          • Fnsym-svexlistlist-alist
          • Tmp-occ-alist
          • Svl-module-alist
          • Svexl-node-alist
          • Occ-name-alist
          • Integerp-of-svex-extn-list
          • Alias-alist
          • Special-char-alist
          • Fty-info-alist
          • Bfr-updates
          • Term-equivs
          • Term-bvars
          • Sig-table
          • Fn-indices
          • Fgl-function-mode-alist
          • Ctrex-ruletable
          • Constraint-db
          • Congruence-rule-table
          • Cgraph-derivstates
            • Cgraph-derivstates-p
              • Cgraph-derivstates-fix
              • Cgraph-derivstates-equiv
            • Cgraph-alist
            • Cgraph
            • Casesplit-alist
            • Truthmap
            • Named-lit-list-map
            • Axi-map
            • Nth-equiv
            • Faig-fix-equiv
            • Vl-string/int-alist
            • Vl-reservedtable
            • Vl-echarlist
            • Vl-ctxexprlist
            • Vl-coredatatype-infolist
            • Vl-usertypes
            • Vl-coredatatype-infolist
            • Proof-obligation-list
            • Use-set-summaries
            • Svtv-rev-probealist
            • Svex/index-nat-alist
            • Svex/index-key-alist
            • Svex-key-alist
            • Svex-envlist
            • Svar-widths
            • Svar-width-map
            • Svar-splittab
            • Svar-proplist
            • Svar-key-alist
            • Rsh-of-concat-alist
            • Path-alist
            • Name-alist
            • Address-alist
            • Width-of-svex-extn-list
            • Svl-occ-alist
            • Svex-to-natp-alist
            • Symbol-string-alist
            • Symbol-integer-alist
            • Sym-nat-alist
            • String-string-alist
            • Fty-types
            • Fty-field-alist
            • Any-table
            • Obj-alist
            • Nat-nat-alist
            • Constraint-instancelist
            • Congruence-rulelist
            • Calist
            • Bvar-db-consistency-errorlist
            • Var-counts-alist
            • Pseudo-var-list
            • Equiv-contextslist
            • Nat-val-alistp
            • Id-neg-alist
            • String-keyed-alist-p
            • Snippet-table
            • Snippet-mismatch-list
            • Vl-reportcardkeylist
            • Partsumlist
            • Partsum-elt
            • Classname/paramslist
            • Vl-reportcardkeylist
            • Vl-locationlist
            • Vl-echarlist
            • Perm4-list
            • Svtv*-phaselist
            • Svtv-override-triplemaplist
            • Svtv-override-triplelist
            • Svtv-override-checklist
            • Svtv-name-lhs-map-list
            • Svex/indexlist
            • Svexlistlist
            • Svex-override-triplelist
            • Svex-contextlist
            • Svarlist-list
            • Svar-widthslist
            • Svar-overridetypelist
            • Svar-override-triplelist
            • Segment-driverlist
            • Rangelist
            • Chase-stack
            • Addresslist
            • 4veclistlist
            • 3col4vecs
            • Occ-name-list
            • Alias-lst
            • Word-list
            • Sig-path-list
            • Function-option-name-lst
            • Any-trace
            • Bfr-varnamelist
            • Aig-varlist
            • Scratch-nontagidxlist
            • Prof-entrylist
            • Interp-st-field-p
            • Fgl-runelist
            • Fgl-rulelist
            • Fgl-object-bindingslist
            • Fgl-congruence-runelist
            • Fgl-binder-runelist
            • Fgl-binder-rulelist
            • Ctrex-rulelist
            • Constraint-tuplelist
            • Cgraph-edgelist
            • Candidate-assigns
            • Rw-pairlist
            • Rewritelist
            • Equiv-contexts
            • Bindinglist
            • Pos-list
            • Obs-sdom-info-list
            • Cutinfolist
            • Bit-list
            • Axi-termlist
            • Axi-litlist
            • Symbol-pseudoterm-alist
            • Symbol-pseudoeventform-alist
            • Inst-list
            • Vl-user-paramsettings-mode-p
            • Svtv-data$c-field-p
            • Ctrex-ruletype-p
            • String-stringlist-alist
            • Ipasir-status-p
            • Fgl-toplevel-sat-check-mode-p
            • Axi-op-p
            • Vl-opacity-p
            • St-hyp-method-p
            • Scratchobj-kind-p
            • Logicman-field-p
            • Bvar-db$c-field-p
            • Env$-field-p
            • Axi
            • *smt-architecture*
            • *vl-directions-kwds*
            • *vl-directions-kwd-alist*
            • Rlp-trees
          • Save
          • Defsection
          • Markup
          • Preprocessor
          • Terminal
          • Emacs-links
          • Defxdoc
          • Katex-integration
          • Constructors
          • Entities
          • Defxdoc+
          • Save-rendered
          • Add-resource-directory
          • Testing
          • Order-subtopics
          • Save-rendered-event
          • Archive-matching-topics
          • Archive-xdoc
          • Xdoc-extend
          • Set-default-parents
          • Missing-parents
          • Defpointer
          • Defxdoc-raw
          • Xdoc-tests
          • Xdoc-prepend
          • Defsection-progn
          • Gen-xdoc-for-file
        • ACL2-doc
        • Recursion-and-induction
        • Loop$-primer
        • Operational-semantics
        • Pointers
        • Doc
        • Documentation-copyright
        • Course-materials
        • Args
        • ACL2-doc-summary
        • Finding-documentation
        • Broken-link
        • Doc-terminal-test-2
        • Doc-terminal-test-1
      • Books
      • Boolean-reasoning
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Cgraph-derivstates

    Cgraph-derivstates-p

    Recognizer for cgraph-derivstates.

    Signature
    (cgraph-derivstates-p x) → *

    Definitions and Theorems

    Function: cgraph-derivstates-p

    (defun cgraph-derivstates-p (x)
      (declare (xargs :guard t))
      (let ((__function__ 'cgraph-derivstates-p))
        (declare (ignorable __function__))
        (if (atom x)
            (eq x nil)
          (and (consp (car x))
               (fgl-object-p (caar x))
               (cgraph-derivstate-p (cdar x))
               (cgraph-derivstates-p (cdr x))))))

    Theorem: cgraph-derivstates-p-of-revappend

    (defthm cgraph-derivstates-p-of-revappend
      (equal (cgraph-derivstates-p (revappend x y))
             (and (cgraph-derivstates-p (list-fix x))
                  (cgraph-derivstates-p y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-remove

    (defthm cgraph-derivstates-p-of-remove
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (remove a x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-last

    (defthm cgraph-derivstates-p-of-last
      (implies (cgraph-derivstates-p (double-rewrite x))
               (cgraph-derivstates-p (last x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-nthcdr

    (defthm cgraph-derivstates-p-of-nthcdr
      (implies (cgraph-derivstates-p (double-rewrite x))
               (cgraph-derivstates-p (nthcdr n x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-butlast

    (defthm cgraph-derivstates-p-of-butlast
      (implies (cgraph-derivstates-p (double-rewrite x))
               (cgraph-derivstates-p (butlast x n)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-update-nth

    (defthm cgraph-derivstates-p-of-update-nth
      (implies (cgraph-derivstates-p (double-rewrite x))
               (iff (cgraph-derivstates-p (update-nth n y x))
                    (and (and (consp y)
                              (fgl-object-p (car y))
                              (cgraph-derivstate-p (cdr y)))
                         (or (<= (nfix n) (len x))
                             (and (consp nil)
                                  (fgl-object-p (car nil))
                                  (cgraph-derivstate-p (cdr nil)))))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-repeat

    (defthm cgraph-derivstates-p-of-repeat
      (iff (cgraph-derivstates-p (acl2::repeat n x))
           (or (and (consp x)
                    (fgl-object-p (car x))
                    (cgraph-derivstate-p (cdr x)))
               (zp n)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-take

    (defthm cgraph-derivstates-p-of-take
      (implies (cgraph-derivstates-p (double-rewrite x))
               (iff (cgraph-derivstates-p (take n x))
                    (or (and (consp nil)
                             (fgl-object-p (car nil))
                             (cgraph-derivstate-p (cdr nil)))
                        (<= (nfix n) (len x)))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-union-equal

    (defthm cgraph-derivstates-p-of-union-equal
      (equal (cgraph-derivstates-p (union-equal x y))
             (and (cgraph-derivstates-p (list-fix x))
                  (cgraph-derivstates-p (double-rewrite y))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-intersection-equal-2

    (defthm cgraph-derivstates-p-of-intersection-equal-2
      (implies (cgraph-derivstates-p (double-rewrite y))
               (cgraph-derivstates-p (intersection-equal x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-intersection-equal-1

    (defthm cgraph-derivstates-p-of-intersection-equal-1
      (implies (cgraph-derivstates-p (double-rewrite x))
               (cgraph-derivstates-p (intersection-equal x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-set-difference-equal

    (defthm cgraph-derivstates-p-of-set-difference-equal
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (set-difference-equal x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-when-subsetp-equal

    (defthm cgraph-derivstates-p-when-subsetp-equal
      (and (implies (and (subsetp-equal x y)
                         (cgraph-derivstates-p y))
                    (equal (cgraph-derivstates-p x)
                           (true-listp x)))
           (implies (and (cgraph-derivstates-p y)
                         (subsetp-equal x y))
                    (equal (cgraph-derivstates-p x)
                           (true-listp x))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-rcons

    (defthm cgraph-derivstates-p-of-rcons
      (iff (cgraph-derivstates-p (acl2::rcons a x))
           (and (and (consp a)
                     (fgl-object-p (car a))
                     (cgraph-derivstate-p (cdr a)))
                (cgraph-derivstates-p (list-fix x))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-append

    (defthm cgraph-derivstates-p-of-append
      (equal (cgraph-derivstates-p (append a b))
             (and (cgraph-derivstates-p (list-fix a))
                  (cgraph-derivstates-p b)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-rev

    (defthm cgraph-derivstates-p-of-rev
      (equal (cgraph-derivstates-p (rev x))
             (cgraph-derivstates-p (list-fix x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-duplicated-members

    (defthm cgraph-derivstates-p-of-duplicated-members
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (acl2::duplicated-members x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-difference

    (defthm cgraph-derivstates-p-of-difference
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (set::difference x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-intersect-2

    (defthm cgraph-derivstates-p-of-intersect-2
      (implies (cgraph-derivstates-p y)
               (cgraph-derivstates-p (set::intersect x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-intersect-1

    (defthm cgraph-derivstates-p-of-intersect-1
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (set::intersect x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-union

    (defthm cgraph-derivstates-p-of-union
      (iff (cgraph-derivstates-p (set::union x y))
           (and (cgraph-derivstates-p (set::sfix x))
                (cgraph-derivstates-p (set::sfix y))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-mergesort

    (defthm cgraph-derivstates-p-of-mergesort
      (iff (cgraph-derivstates-p (set::mergesort x))
           (cgraph-derivstates-p (list-fix x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-delete

    (defthm cgraph-derivstates-p-of-delete
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (set::delete k x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-insert

    (defthm cgraph-derivstates-p-of-insert
      (iff (cgraph-derivstates-p (set::insert a x))
           (and (cgraph-derivstates-p (set::sfix x))
                (and (consp a)
                     (fgl-object-p (car a))
                     (cgraph-derivstate-p (cdr a)))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-sfix

    (defthm cgraph-derivstates-p-of-sfix
      (iff (cgraph-derivstates-p (set::sfix x))
           (or (cgraph-derivstates-p x)
               (not (set::setp x))))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-list-fix

    (defthm cgraph-derivstates-p-of-list-fix
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (list-fix x)))
      :rule-classes ((:rewrite)))

    Theorem: true-listp-when-cgraph-derivstates-p-compound-recognizer

    (defthm true-listp-when-cgraph-derivstates-p-compound-recognizer
      (implies (cgraph-derivstates-p x)
               (true-listp x))
      :rule-classes :compound-recognizer)

    Theorem: cgraph-derivstates-p-when-not-consp

    (defthm cgraph-derivstates-p-when-not-consp
      (implies (not (consp x))
               (equal (cgraph-derivstates-p x)
                      (not x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-cdr-when-cgraph-derivstates-p

    (defthm cgraph-derivstates-p-of-cdr-when-cgraph-derivstates-p
      (implies (cgraph-derivstates-p (double-rewrite x))
               (cgraph-derivstates-p (cdr x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-cons

    (defthm cgraph-derivstates-p-of-cons
      (equal (cgraph-derivstates-p (cons a x))
             (and (and (consp a)
                       (fgl-object-p (car a))
                       (cgraph-derivstate-p (cdr a)))
                  (cgraph-derivstates-p x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-remove-assoc

    (defthm cgraph-derivstates-p-of-remove-assoc
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (remove-assoc-equal name x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-put-assoc

    (defthm cgraph-derivstates-p-of-put-assoc
     (implies
          (and (cgraph-derivstates-p x))
          (iff (cgraph-derivstates-p (put-assoc-equal name acl2::val x))
               (and (fgl-object-p name)
                    (cgraph-derivstate-p acl2::val))))
     :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-fast-alist-clean

    (defthm cgraph-derivstates-p-of-fast-alist-clean
      (implies (cgraph-derivstates-p x)
               (cgraph-derivstates-p (fast-alist-clean x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-hons-shrink-alist

    (defthm cgraph-derivstates-p-of-hons-shrink-alist
      (implies (and (cgraph-derivstates-p x)
                    (cgraph-derivstates-p y))
               (cgraph-derivstates-p (hons-shrink-alist x y)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstates-p-of-hons-acons

    (defthm cgraph-derivstates-p-of-hons-acons
      (equal (cgraph-derivstates-p (hons-acons a n x))
             (and (fgl-object-p a)
                  (cgraph-derivstate-p n)
                  (cgraph-derivstates-p x)))
      :rule-classes ((:rewrite)))

    Theorem: cgraph-derivstate-p-of-cdr-of-hons-assoc-equal-when-cgraph-derivstates-p

    (defthm
     cgraph-derivstate-p-of-cdr-of-hons-assoc-equal-when-cgraph-derivstates-p
     (implies (cgraph-derivstates-p x)
              (iff (cgraph-derivstate-p (cdr (hons-assoc-equal k x)))
                   (or (hons-assoc-equal k x)
                       (cgraph-derivstate-p nil))))
     :rule-classes ((:rewrite)))

    Theorem: alistp-when-cgraph-derivstates-p-rewrite

    (defthm alistp-when-cgraph-derivstates-p-rewrite
      (implies (cgraph-derivstates-p x)
               (alistp x))
      :rule-classes ((:rewrite)))

    Theorem: alistp-when-cgraph-derivstates-p

    (defthm alistp-when-cgraph-derivstates-p
      (implies (cgraph-derivstates-p x)
               (alistp x))
      :rule-classes :tau-system)

    Theorem: cgraph-derivstate-p-of-cdar-when-cgraph-derivstates-p

    (defthm cgraph-derivstate-p-of-cdar-when-cgraph-derivstates-p
      (implies (cgraph-derivstates-p x)
               (iff (cgraph-derivstate-p (cdar x))
                    (or (consp x)
                        (cgraph-derivstate-p nil))))
      :rule-classes ((:rewrite)))

    Theorem: fgl-object-p-of-caar-when-cgraph-derivstates-p

    (defthm fgl-object-p-of-caar-when-cgraph-derivstates-p
      (implies (cgraph-derivstates-p x)
               (iff (fgl-object-p (caar x))
                    (or (consp x) (fgl-object-p nil))))
      :rule-classes ((:rewrite)))