• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
      • Ipasir
        • Ipasir$a
        • Building-an-ipasir-solver-library
        • Ipasir-formula
        • Ipasir-bump-activity-vars$a
          • Ipasir-set$a
          • Ipasir-bump-activity-vars$c
          • Ipasir-get$a
          • Ipasir-set-limit$c
          • Ipasir-failed$c
          • Ipasir-assume$c
          • Ipasir-add-lit$c
          • Ipasir-val$c
          • Ipasir-set$c
          • With-local-ipasir
          • Ipasir-solve$c
          • Ipasir-init$c
          • Ipasir-finalize-clause$c
          • Ipasir-some-history$c
          • Ipasir-solved-assumption$c
          • Ipasir-release$c
          • Ipasir-reinit$c
          • Ipasir-input$c
          • Ipasir-get$c
          • Ipasir-get-status$c
          • Ipasir-get-curr-stats$c
          • Ipasir-get-assumption$c
          • Ipasir-empty-new-clause$c
          • Ipasir-callback-count$c
          • Ipasir-val
          • Ipasir-solve
          • Ipasir-set-limit
          • Ipasir-reinit
          • Ipasir-failed
          • Ipasir-callback-count
          • Ipasir-release
          • Ipasir-input
          • Ipasir-init
          • Ipasir-finalize-clause
          • Ipasir-assume
          • Ipasir-add-lit
        • Aignet
        • Aig
        • Satlink
        • Truth
        • Ubdds
        • Bdd
        • Faig
        • Bed
        • 4v
      • Debugging
      • Projects
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Ipasir

    Ipasir-bump-activity-vars$a

    Logical function for bumping var activity (unmodeled side-effect)

    Signature
    (ipasir-bump-activity-vars$a solver vars num-bumps) 
      → 
    new-solver
    Arguments
    solver — Guard (ipasir$a-p solver).
    vars — Guard (nat-listp vars).
    num-bumps — Guard (natp num-bumps).
    Returns
    new-solver — Type (ipasir$a-p new-solver).

    Definitions and Theorems

    Function: ipasir-bump-activity-vars$a

    (defun ipasir-bump-activity-vars$a (solver vars num-bumps)
      (declare (xargs :guard (and (ipasir$a-p solver)
                                  (nat-listp vars)
                                  (natp num-bumps))))
      (declare (xargs :guard (not (equal (ipasir-get-status$a solver)
                                         :undef))))
      (let ((__function__ 'ipasir-bump-activity-vars$a))
        (declare (ignorable __function__))
        (b* (((ipasir$a solver)))
          (change-ipasir$a solver
                           :history (cons (list :bump-activity-vars
                                                vars (lnfix num-bumps))
                                          solver.history)))))

    Theorem: ipasir$a-p-of-ipasir-bump-activity-vars$a

    (defthm ipasir$a-p-of-ipasir-bump-activity-vars$a
     (b*
      ((new-solver (ipasir-bump-activity-vars$a solver vars num-bumps)))
      (ipasir$a-p new-solver))
     :rule-classes :rewrite)

    Theorem: ipasir-bump-activity-vars$a-of-ipasir$a-fix-solver

    (defthm ipasir-bump-activity-vars$a-of-ipasir$a-fix-solver
      (equal (ipasir-bump-activity-vars$a (ipasir$a-fix solver)
                                          vars num-bumps)
             (ipasir-bump-activity-vars$a solver vars num-bumps)))

    Theorem: ipasir-bump-activity-vars$a-ipasir$a-equiv-congruence-on-solver

    (defthm
        ipasir-bump-activity-vars$a-ipasir$a-equiv-congruence-on-solver
     (implies
      (ipasir$a-equiv solver solver-equiv)
      (equal (ipasir-bump-activity-vars$a solver vars num-bumps)
             (ipasir-bump-activity-vars$a solver-equiv vars num-bumps)))
     :rule-classes :congruence)

    Theorem: ipasir-bump-activity-vars$a-of-nfix-num-bumps

    (defthm ipasir-bump-activity-vars$a-of-nfix-num-bumps
      (equal (ipasir-bump-activity-vars$a solver vars (nfix num-bumps))
             (ipasir-bump-activity-vars$a solver vars num-bumps)))

    Theorem: ipasir-bump-activity-vars$a-nat-equiv-congruence-on-num-bumps

    (defthm
          ipasir-bump-activity-vars$a-nat-equiv-congruence-on-num-bumps
     (implies
      (nat-equiv num-bumps num-bumps-equiv)
      (equal (ipasir-bump-activity-vars$a solver vars num-bumps)
             (ipasir-bump-activity-vars$a solver vars num-bumps-equiv)))
     :rule-classes :congruence)