summaryrefslogtreecommitdiff
path: root/books/workshops/2006/kaufmann-moore/support/sumners1.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'books/workshops/2006/kaufmann-moore/support/sumners1.lisp')
-rw-r--r--books/workshops/2006/kaufmann-moore/support/sumners1.lisp22
1 files changed, 22 insertions, 0 deletions
diff --git a/books/workshops/2006/kaufmann-moore/support/sumners1.lisp b/books/workshops/2006/kaufmann-moore/support/sumners1.lisp
new file mode 100644
index 0000000..1f712b6
--- /dev/null
+++ b/books/workshops/2006/kaufmann-moore/support/sumners1.lisp
@@ -0,0 +1,22 @@
+; The following is a variant of something we created based on something Rob Sumners
+; created. It fails in v2-8 but passes in v2-9 and beyond, because of our
+; special handling of iff.
+
+(in-package "ACL2")
+
+(defun f (x) (not (not x)))
+
+(defthm f-x-iff-x
+ (iff (f x) x)) ; Double-rewrite warning for x on right-hand side
+
+(in-theory (disable f))
+
+(defun g (x) x)
+
+(defthm g-x-if-x
+ (implies x (g x))) ; no double-rewrite warning because of special handling
+
+(in-theory (disable g))
+
+(defthm g-f
+ (implies x (g (f x))))