summaryrefslogtreecommitdiff
path: root/examples/the-little-prover.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/the-little-prover.scm')
-rw-r--r--examples/the-little-prover.scm50
1 files changed, 1 insertions, 49 deletions
diff --git a/examples/the-little-prover.scm b/examples/the-little-prover.scm
index 3d0329f..0a0303e 100644
--- a/examples/the-little-prover.scm
+++ b/examples/the-little-prover.scm
@@ -2,52 +2,4 @@
(vikalpa the-little-prover))
(define-system the-little-prover-0 (the-little-prover)
- (define-theorem simple-list-induction (x)
- (equal? (if (natural? (size x))
- (if (atom? x) '#t (< (size (cdr x)) (size x)))
- '#t)
- #t))
-
- (define-proof simple-list-induction
- ()
- (((1 2 3) size/cdr)
- ((1 2) if-same)
- ((1) if-same)
- (() equal-same)))
-
- (define-function list-length (xs)
- (if (atom? xs)
- '0
- (+ '1 (list-length (cdr xs)))))
-
- (define-proof list-length
- (natural? (size xs))
- ((() simple-list-induction)))
-
- (define-theorem natural?/1 ()
- (equal? (natural? 1) #t))
-
- (define-proof natural?/1
- ()
- ((() if-same (set x (natural? '0)))
- ((2 1) natural?/succ)
- ((2) equal-same)
- ((1) natural?/0)
- (() if-true)))
-
- (define-theorem natural?/list-length (xs)
- (natural? (list-length xs)))
-
- (define-proof natural?/list-length
- (list-induction xs)
- (((2 1) list-length)
- ((2 1) if-nest-A)
- ((2) natural?/0)
- ((3 2 1) list-length)
- ((3 2 1) if-nest-E)
- ((3) if-same (set x (natural? (succ '0))))
- ((3 2 2) natural?/+)
- ((3 2) if-same)
- ((3 1) natural?/1)
- ((3) if-true)
- (() if-same))))
+ )