• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
      • Std/util
        • Defprojection
        • Deflist
        • Defaggregate
        • Define
        • Defmapping
        • Defenum
        • Add-io-pairs
        • Defalist
        • Defmapappend
        • Returns-specifiers
        • Defarbrec
          • Defarbrec-implementation
            • Defarbrec-event-generation
              • Defarbrec-gen-everything
              • Defarbrec-gen-fn-fn
              • Defarbrec-gen-measure-fn-end-lemma
              • Defarbrec-gen-measure-fn-min-lemma
              • Defarbrec-gen-measure-fn
              • Defarbrec-gen-update-fns
              • Defarbrec-gen-terminates-fn
              • Defarbrec-gen-measure-fn-natp-lemma
              • Defarbrec-gen-update-fns-lemma
              • Defarbrec-gen-extend-table
              • Defarbrec-gen-test-of-updates-term
              • Defarbrec-gen-var-k
              • Defarbrec-gen-var-l
                • Defarbrec-gen-print-result
              • Defarbrec-input-processing
              • Defarbrec-check-redundancy
              • Defarbrec-fn
              • Defarbrec-table
              • Defarbrec-macro-definition
          • Defines
          • Define-sk
          • Error-value-tuples
          • Defmax-nat
          • Defmin-int
          • Deftutorial
          • Extended-formals
          • Defrule
          • Defval
          • Defsurj
          • Defiso
          • Defconstrained-recognizer
          • Deffixer
          • Defmvtypes
          • Defconsts
          • Defthm-unsigned-byte-p
          • Support
          • Defthm-signed-byte-p
          • Defthm-natp
          • Defund-sk
          • Defmacro+
          • Defsum
          • Defthm-commutative
          • Definj
          • Defirrelevant
          • Defredundant
        • Std/strings
        • Std/osets
        • Std/io
        • Std/basic
        • Std/system
        • Std/typed-lists
        • Std/bitsets
        • Std/testing
        • Std/typed-alists
        • Std/stobjs
      • Community
      • Proof-automation
      • ACL2
      • Macro-libraries
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Defarbrec-event-generation

    Defarbrec-gen-var-l

    Generate the variable l that counts the iterated updates of the arguments.

    Signature
    (defarbrec-gen-var-l fn$ x1...xn$ k) → l
    Arguments
    fn$ — Guard (symbolp fn$).
    x1...xn$ — Guard (symbol-listp x1...xn$).
    k — Guard (symbolp k).
    Returns
    l — A symbolp.

    This is used in one of the generated local lemmas about the measure function. This variable must be distinct from the formal parameters of fn as well as from the variable k.

    Definitions and Theorems

    Function: defarbrec-gen-var-l

    (defun defarbrec-gen-var-l (fn$ x1...xn$ k)
      (declare (xargs :guard (and (symbolp fn$)
                                  (symbol-listp x1...xn$)
                                  (symbolp k))))
      (let ((__function__ 'defarbrec-gen-var-l))
        (declare (ignorable __function__))
        (genvar fn$ "L" nil (cons k x1...xn$))))