• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
      • B*
      • Defunc
      • Fty
        • Deftagsum
        • Defprod
        • Defflexsum
        • Defbitstruct
        • Deflist
        • Defalist
        • Defbyte
        • Deffixequiv
        • Defresult
        • Deffixtype
        • Defoption
        • Fty-discipline
        • Fold
        • Fty-extensions
        • Defsubtype
        • Specific-types
        • Deftypes
        • Defset
        • Defflatsum
        • Deflist-of-len
        • Defbytelist
        • Defomap
        • Fty::basetypes
        • Defvisitors
        • Deffixtype-alias
        • Deffixequiv-sk
          • Deffixequiv-sk-implementation
            • Deffixequiv-sk-lemma-insts-arg
            • Deffixequiv-sk-lemma-insts-args
            • Deffixequiv-sk-hints
            • Deffixequiv-sk-lemma-inst-subst
              • Deffixequiv-sk-fn
              • Deffixequiv-sk-macro-definition
          • Defunit
          • Multicase
          • Deffixequiv-mutual
          • Fty::baselists
          • Def-enumcase
          • Defmap
        • Apt
        • Std/util
        • Defdata
        • Defrstobj
        • Seq
        • Match-tree
        • Defrstobj
        • With-supporters
        • Def-partial-measure
        • Template-subst
        • Soft
        • Defthm-domain
        • Event-macros
        • Def-universal-equiv
        • Def-saved-obligs
        • With-supporters-after
        • Definec
        • Sig
        • Outer-local
        • Data-structures
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Deffixequiv-sk-implementation

    Deffixequiv-sk-lemma-inst-subst

    Generate instantiations for the bound variables.

    Signature
    (deffixequiv-sk-lemma-inst-subst bvars index call) 
      → 
    instantiations
    Arguments
    bvars — Guard (symbol-listp bvars).
    index — Guard (natp index).
    call — Guard (pseudo-termp call).
    Returns
    instantiations — Type (true-list-listp instantiations).

    If bvars consists of the variables b1, ... , bn, we generate the list of doublets ((b1 (mv-nth index call)) ... (bn (mv-nth index+n-1 call))), which is then used to create some lemma instances. The index is initially 0.

    Definitions and Theorems

    Function: deffixequiv-sk-lemma-inst-subst

    (defun deffixequiv-sk-lemma-inst-subst (bvars index call)
      (declare (xargs :guard (and (symbol-listp bvars)
                                  (natp index)
                                  (pseudo-termp call))))
      (let ((__function__ 'deffixequiv-sk-lemma-inst-subst))
        (declare (ignorable __function__))
        (cond ((endp bvars) nil)
              (t (cons (cons (car bvars)
                             (cons (cons 'mv-nth
                                         (cons index (cons call 'nil)))
                                   'nil))
                       (deffixequiv-sk-lemma-inst-subst (cdr bvars)
                                                        (1+ index)
                                                        call))))))

    Theorem: true-list-listp-of-deffixequiv-sk-lemma-inst-subst

    (defthm true-list-listp-of-deffixequiv-sk-lemma-inst-subst
      (b* ((instantiations
                (deffixequiv-sk-lemma-inst-subst bvars index call)))
        (true-list-listp instantiations))
      :rule-classes :rewrite)