other
(in-package "ACL2")
dup-examplestheorem
(defthm dup-examples (and (equal (dup '(1 2 3)) '(1 1 2 2 3 3)) (equal (dup '(hello)) '(hello hello)) (equal (dup '(a b c . d)) '(a a b b c c))) :rule-classes nil)
app-examplestheorem
(defthm app-examples (and (equal (app '(1 2 3) '(4 5 6)) '(1 2 3 4 5 6)) (equal (app '(3 2 1) '(0)) '(3 2 1 0)) (equal (app '(a b c . d) '(e f)) '(a b c e f))) :rule-classes nil)
memp-examplestheorem
(defthm memp-examples (and (memp 1 '(0 1 2 3)) (not (memp 5 '(0 1 2 3))) (not (memp 2 '((0) (1) (2)))) (memp '(2) '((0) (1) (2))) (not (memp 2 '(0 1 . 2)))) :rule-classes nil)
rev-examplestheorem
(defthm rev-examples (and (equal (rev '(1 2 3)) '(3 2 1)) (equal (rev '(ok)) '(ok)) (equal (rev '(1 2 3 . end)) '(3 2 1))) :rule-classes nil)
rev1-examplestheorem
(defthm rev1-examples (and (equal (rev1 '(1 2 3) nil) '(3 2 1)) (equal (rev1 '(ok) nil) '(ok)) (equal (rev1 '(1 2 3 . end) nil) '(3 2 1)) (equal (rev1 '(a b c) '(1 2 3)) '(c b a 1 2 3))) :rule-classes nil)
properp-examplestheorem
(defthm properp-examples (and (properp '(1 2 3)) (not (properp '(1 2 3 . end))) (properp '((a . 1) (b . 2) (c . 3))) (properp nil) (not (properp 7))) :rule-classes nil)
mapnil-examplestheorem
(defthm mapnil-examples (and (equal (mapnil '(1 2 3)) '(nil nil nil)) (equal (mapnil '(hello)) '(nil))) :rule-classes nil)
swaptree-examplestheorem
(defthm swaptree-examples (and (equal (swaptree '((a . b) c . d)) '((d . c) b . a)) (equal (swaptree '(a b c d)) '((((nil . d) . c) . b) . a))) :rule-classes nil)
ziplistsfunction
(defun ziplists (x y) (if (consp x) (cons (cons (car x) (car y)) (ziplists (cdr x) (cdr y))) nil))
ziplists-examplestheorem
(defthm ziplists-examples (and (equal (ziplists '(a b c) '(1 2 3 4)) '((a . 1) (b . 2) (c . 3))) (equal (ziplists '(a b c) '(1 2)) '((a . 1) (b . 2) (c)))) :rule-classes nil)
lookupfunction
(defun lookup (x a) (if (consp a) (if (equal x (car (car a))) (cdr (car a)) (lookup x (cdr a))) nil))
lookup-examplestheorem
(defthm lookup-examples (and (equal (lookup 'b '((a . 1) (b . 2) (c . 3) (a . 4))) 2) (equal (lookup 'a '((a . 1) (b . 2) (c . 3) (a . 4))) 1) (equal (lookup 'x '((a . 1) (b . 2) (c . 3) (a . 4))) nil) (equal (lookup 'j '((i . 1) (j) (k . 123))) nil)) :rule-classes nil)
foundpfunction
(defun foundp (x a) (if (consp a) (if (equal x (car (car a))) t (foundp x (cdr a))) nil))
foundp-examplestheorem
(defthm foundp-examples (and (equal (foundp 'b '((a . 1) (b . 2) (c . 3) (a . 4))) t) (equal (foundp 'a '((a . 1) (b . 2) (c . 3) (a . 4))) t) (equal (foundp 'x '((a . 1) (b . 2) (c . 3) (a . 4))) nil) (equal (foundp 'j '((i . 1) (j) (k . 123))) t)) :rule-classes nil)
subp-examplestheorem
(defthm subp-examples (and (subp '(a b b a) '(a b)) (subp '(a b c) '(e d c b a)) (not (subp '(a b) '(a c a d a f)))) :rule-classes nil)
intfunction
(defun int (x y) (if (consp x) (if (memp (car x) y) (cons (car x) (int (cdr x) y)) (int (cdr x) y)) nil))
int-examplestheorem
(defthm int-examples (and (equal (int '(a b c) '(a b a d)) '(a b)) (equal (int '(a b c) '(x y z)) nil) (equal (int '(a a b b) '(a b c)) '(a a b b))) :rule-classes nil)
collect-lonesomepfunction
(defun collect-lonesomep (a b) (if (consp a) (if (lonesomep (car a) b) (cons (car a) (collect-lonesomep (cdr a) b)) (collect-lonesomep (cdr a) b)) nil))
leavesfunction
(defun leaves (x) (if (consp x) (app (leaves (car x)) (leaves (cdr x))) (cons x nil)))
lonesomesfunction
(defun lonesomes (x) (collect-lonesomep (leaves x) (leaves x)))
lonesomes-examplestheorem
(defthm lonesomes-examples (and (equal (lonesomes '((a . b) c . a)) '(b c)) (equal (lonesomes '((a . a) . a)) nil) (equal (lonesomes '(((a . b) b . c) (x . y) c . x)) '(a y))) :rule-classes nil)
treecopy-is-idtheorem
(defthm treecopy-is-id (equal (treecopy x) x))
associativity-of-apptheorem
(defthm associativity-of-app (equal (app (app a b) c) (app a (app b c))))
properp-app-niltheorem
(defthm properp-app-nil (properp (app a nil)))
swaptree-swaptreetheorem
(defthm swaptree-swaptree (equal (swaptree (swaptree x)) x))
problem-6-1theorem
(defthm problem-6-1 (equal (memp e (app a a)) (memp e a)) :rule-classes nil)
properp-apptheorem
(defthm properp-app (equal (properp (app a b)) (properp b)))
properp-revtheorem
(defthm properp-rev (properp (rev x)))
app-right-identitytheorem
(defthm app-right-identity (implies (properp x) (equal (app x nil) x)))
complicated-memp-theoremtheorem
(defthm complicated-memp-theorem (implies (memp e c) (memp e (rev (dup (dup c))))) :rule-classes nil)
leavesfunction
(defun leaves (x) (if (consp x) (app (leaves (car x)) (leaves (cdr x))) (cons x nil)))
subp-reflexivetheorem
(defthm subp-reflexive (subp x x))
subp-app-a-atheorem
(defthm subp-app-a-a (subp (app a a) a))
app-commutativetheorem
(defthm app-commutative (seteqp (app a b) (app b a)))
list-of-atomspfunction
(defun list-of-atomsp (x) (if (consp x) (and (not (consp (car x))) (list-of-atomsp (cdr x))) t))
list-of-atomsp-apptheorem
(defthm list-of-atomsp-app (equal (list-of-atomsp (app a b)) (and (list-of-atomsp a) (list-of-atomsp b))))
list-of-atomsp-leavestheorem
(defthm list-of-atomsp-leaves (list-of-atomsp (leaves x)))
leaves-of-list-of-atomstheorem
(defthm leaves-of-list-of-atoms (implies (and (properp x) (list-of-atomsp x)) (equal (leaves x) (app x '(nil)))))
properp-leavestheorem
(defthm properp-leaves (properp (leaves x)))
lemma8-10atheorem
(defthm lemma8-10a (implies (not (mem e leaves)) (not (memp e (collect-lonesomep lst leaves)))))
lemma8-10btheorem
(defthm lemma8-10b (implies (mem e (cdr (mem e leaves))) (not (memp e (collect-lonesomep lst leaves)))))
memp-collect-lonesomeptheorem
(defthm memp-collect-lonesomep (iff (memp e (collect-lonesomep lst leaves)) (and (memp e lst) (lonesomep e leaves))))
memp-lonesomestheorem
(defthm memp-lonesomes (iff (memp e (lonesomes x)) (and (memp e (leaves x)) (lonesomep e (leaves x)))))
nump-mapniltheorem
(defthm nump-mapnil (nump (mapnil x)))
nump-raisetheorem
(defthm nump-raise (nump (raise x y)))
add-identitytheorem
(defthm add-identity (implies (nump x) (equal (add x nil) x)))
raise-mapniltheorem
(defthm raise-mapnil (equal (raise i (mapnil j)) (raise i j)))
mult-mapnil-1theorem
(defthm mult-mapnil-1 (equal (mult (mapnil i) j) (mult i j)))
mapnil-numptheorem
(defthm mapnil-nump (implies (nump x) (equal (mapnil x) x)))
add-mapnil-1theorem
(defthm add-mapnil-1 (equal (add (mapnil i) j) (add i j)))
mult-add-distributivity-2theorem
(defthm mult-add-distributivity-2 (equal (mult (add i j) k) (add (mult i k) (mult j k))))
add-identity-2theorem
(defthm add-identity-2 (implies (not (consp j)) (equal (add i j) (mapnil i))))
add-commutativitytheorem
(defthm add-commutativity (equal (add i j) (add j i)))
add-mapnil-2theorem
(defthm add-mapnil-2 (equal (add i (mapnil j)) (add i j)))
mult-commutativitytheorem
(defthm mult-commutativity (equal (mult i j) (mult j i)))
mult-mapnil-2theorem
(defthm mult-mapnil-2 (equal (mult i (mapnil j)) (mult i j)))
mult-add-distributivity-1theorem
(defthm mult-add-distributivity-1 (equal (mult k (add i j)) (add (mult k i) (mult k j))))
mult-commutativity2theorem
(defthm mult-commutativity2 (equal (mult i (mult j k)) (mult j (mult i k))))
rev1-is-app-revtheorem
(defthm rev1-is-app-rev (equal (rev1 x a) (app (rev x) a)))
rev1-nil-is-revtheorem
(defthm rev1-nil-is-rev (equal (rev1 x nil) (rev x)))
fact1-is-fact-generalizedtheorem
(defthm fact1-is-fact-generalized (implies (nump a) (equal (fact1 n a) (mult (fact n) a))))
fact1-is-facttheorem
(defthm fact1-is-fact (equal (fact1 n '(nil)) (fact n)))
mc-flattenfunction
(defun mc-flatten (x a) (if (consp x) (mc-flatten (car x) (mc-flatten (cdr x) a)) (cons x a)))
mc-flatten-is-leaves-generalizedtheorem
(defthm mc-flatten-is-leaves-generalized (equal (mc-flatten x a) (app (leaves x) a)))
properp-leavestheorem
(defthm properp-leaves (properp (leaves x)))
mc-flatten-is-leavestheorem
(defthm mc-flatten-is-leaves (equal (mc-flatten x nil) (leaves x)))