Function:
(defun truth-norm (truth numvars) (declare (xargs :guard (and (integerp truth) (natp numvars)))) (let ((__function__ 'truth-norm)) (declare (ignorable __function__)) (loghead (ash 1 (lnfix numvars)) truth)))
Theorem:
(defthm truth-eval-of-truth-norm (b* nil (equal (truth-eval (truth-norm truth numvars) env numvars) (truth-eval truth env numvars))))
Theorem:
(defthm truth-norm-of-truth-norm (b* nil (equal (truth-norm (truth-norm truth numvars) numvars) (truth-norm truth numvars))))
Theorem:
(defthm size-of-truth-norm (b* ((?norm-truth (truth-norm truth numvars))) (implies (and (natp size) (<= (ash 1 (nfix numvars)) size)) (unsigned-byte-p size norm-truth))))
Theorem:
(defthm truth-eval-of-truth-norm-minus1 (b* nil (implies (and (syntaxp (and (quotep truth) (quotep numvars))) (equal truth (truth-norm -1 numvars))) (truth-eval truth env numvars))))
Theorem:
(defthm truth-norm-of-ifix-truth (equal (truth-norm (ifix truth) numvars) (truth-norm truth numvars)))
Theorem:
(defthm truth-norm-int-equiv-congruence-on-truth (implies (int-equiv truth truth-equiv) (equal (truth-norm truth numvars) (truth-norm truth-equiv numvars))) :rule-classes :congruence)
Theorem:
(defthm truth-norm-of-nfix-numvars (equal (truth-norm truth (nfix numvars)) (truth-norm truth numvars)))
Theorem:
(defthm truth-norm-nat-equiv-congruence-on-numvars (implies (nat-equiv numvars numvars-equiv) (equal (truth-norm truth numvars) (truth-norm truth numvars-equiv))) :rule-classes :congruence)