Function:
(defun lhs-vars-normorderedp (bound offset x) (declare (xargs :guard (and (integerp bound) (natp offset) (lhs-p x)))) (let ((__function__ 'lhs-vars-normorderedp)) (declare (ignorable __function__)) (if (atom x) t (and (lhatom-normorderedp bound offset (lhrange->atom (car x))) (lhs-vars-normorderedp bound (+ (lhrange->w (car x)) (lnfix offset)) (cdr x))))))
Theorem:
(defthm lhs-vars-normorderedp-of-ifix-bound (equal (lhs-vars-normorderedp (ifix bound) offset x) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-int-equiv-congruence-on-bound (implies (int-equiv bound bound-equiv) (equal (lhs-vars-normorderedp bound offset x) (lhs-vars-normorderedp bound-equiv offset x))) :rule-classes :congruence)
Theorem:
(defthm lhs-vars-normorderedp-of-nfix-offset (equal (lhs-vars-normorderedp bound (nfix offset) x) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-nat-equiv-congruence-on-offset (implies (nat-equiv offset offset-equiv) (equal (lhs-vars-normorderedp bound offset x) (lhs-vars-normorderedp bound offset-equiv x))) :rule-classes :congruence)
Theorem:
(defthm lhs-vars-normorderedp-of-lhs-fix-x (equal (lhs-vars-normorderedp bound offset (lhs-fix x)) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-lhs-equiv-congruence-on-x (implies (lhs-equiv x x-equiv) (equal (lhs-vars-normorderedp bound offset x) (lhs-vars-normorderedp bound offset x-equiv))) :rule-classes :congruence)
Theorem:
(defthm lhs-vars-normorderedp-of-lhs-cons (equal (lhs-vars-normorderedp bound offset (lhs-cons x y)) (lhs-vars-normorderedp bound offset (cons x y))))
Theorem:
(defthm lhs-vars-normorderedp-of-lhs-norm-x (equal (lhs-vars-normorderedp bound offset (lhs-norm x)) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-lhs-norm-equiv-congruence-on-x (implies (lhs-norm-equiv x x-equiv) (equal (lhs-vars-normorderedp bound offset x) (lhs-vars-normorderedp bound offset x-equiv))) :rule-classes :congruence)
Theorem:
(defthm lhs-vars-normorderedp-implies-rest (implies (and (lhs-vars-normorderedp bound offset x) (equal (nfix offset1) (+ (nfix offset) (lhrange->w (car x))))) (lhs-vars-normorderedp bound offset1 (cdr x))))
Theorem:
(defthm lhs-vars-normorderedp-implies-rest-strict (implies (and (<= (lhrange->w (car x)) (nfix offset)) (lhs-vars-normorderedp bound (- (nfix offset) (lhrange->w (car x))) x)) (lhs-vars-normorderedp bound offset (cdr x))))
Theorem:
(defthm lhs-vars-normorderedp-implies-atom-normorderedp-of-car (implies (and (lhs-vars-normorderedp bound offset x) (consp x)) (lhatom-normorderedp bound offset (lhrange->atom (car x)))))
Theorem:
(defthm lhs-vars-normorderedp-implies-index-bound (implies (and (lhs-vars-normorderedp bound offset x) (consp x) (eq (lhatom-kind (lhrange->atom (car x))) :var)) (<= (svar-index (lhatom-var->name (lhrange->atom (car x)))) (ifix bound))) :rule-classes :linear)
Theorem:
(defthm lhs-vars-normorderedp-implies-rsh-when-index-equal (implies (and (lhs-vars-normorderedp bound offset x) (consp x) (eq (lhatom-kind (lhrange->atom (car x))) :var) (equal (svar-index (lhatom-var->name (lhrange->atom (car x)))) (ifix bound))) (<= (lhatom-var->rsh (lhrange->atom (car x))) (nfix offset))) :rule-classes :linear)
Theorem:
(defthm lhs-vars-normorderedp-implies-lhs-bitproj-index (implies (and (lhs-vars-normorderedp bound offset x) (eq (lhbit-kind (lhs-bitproj idx x)) :var)) (svar-index (lhbit-var->name (lhs-bitproj idx x)))))
Theorem:
(defthm lhs-vars-normorderedp-implies-lhs-bitproj-index-bound (implies (and (lhs-vars-normorderedp bound offset x) (eq (lhbit-kind (lhs-bitproj idx x)) :var)) (<= (svar-index (lhbit-var->name (lhs-bitproj idx x))) (ifix bound))) :rule-classes :linear)
Theorem:
(defthm lhs-vars-normorderedp-implies-lhs-bitproj-idx-when-index-bound (implies (and (lhs-vars-normorderedp bound offset x) (eq (lhbit-kind (lhs-bitproj idx x)) :var) (equal (svar-index (lhbit-var->name (lhs-bitproj idx x))) (ifix bound))) (<= (lhbit-var->idx (lhs-bitproj idx x)) (+ (nfix idx) (nfix offset)))) :rule-classes :linear)
Theorem:
(defthm lhs-vars-normorderedp-of-greater (implies (and (lhs-vars-normorderedp bound1 offset1 x) (<= (ifix bound1) (ifix bound)) (<= (nfix offset1) (nfix offset))) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-of-greater-bound (implies (and (lhs-vars-normorderedp bound1 offset1 x) (< (ifix bound1) (ifix bound))) (lhs-vars-normorderedp bound offset x)))
Theorem:
(defthm lhs-vars-normorderedp-of-rsh (implies (and (lhs-vars-normorderedp bound offset x) (<= (+ (nfix offset) (nfix sh)) (nfix offset1))) (lhs-vars-normorderedp bound offset1 (lhs-rsh sh x))))
Theorem:
(defthm lhs-vars-normorderedp-of-rsh-strict (implies (and (<= (nfix sh) (nfix offset1)) (equal offset (- (nfix offset1) (nfix sh))) (lhs-vars-normorderedp bound offset x)) (lhs-vars-normorderedp bound offset1 (lhs-rsh sh x))))
Theorem:
(defthm lhs-vars-normorderedp-of-rsh-greater-bound (implies (and (lhs-vars-normorderedp bound offset x) (< (ifix bound) (ifix bound1))) (lhs-vars-normorderedp bound1 offset1 (lhs-rsh sh x))))
Theorem:
(defthm lhs-vars-normorderedp-of-concat-strict (implies (and (lhs-vars-normorderedp bound offset x1) (lhs-vars-normorderedp bound (+ (nfix offset) (nfix w)) x2)) (lhs-vars-normorderedp bound offset (lhs-concat w x1 x2))))
Theorem:
(defthm lhs-vars-normorderedp-of-concat (implies (and (lhs-vars-normorderedp bound offset x1) (lhs-vars-normorderedp bound offset2 x2) (<= (nfix offset2) (+ (nfix offset) (nfix w)))) (lhs-vars-normorderedp bound offset (lhs-concat w x1 x2))))
Theorem:
(defthm lhs-vars-normorderedp-implies-svarlist-boundedp (implies (lhs-vars-normorderedp bound offset x) (svarlist-boundedp (lhs-vars x) (+ 1 (ifix bound)))))