aboutsummaryrefslogtreecommitdiff
path: root/L-99.lisp
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2021-07-23 21:27:27 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2021-07-23 21:27:27 +0900
commit29cfbf88b44bcfdf3d3a6c022c64a8521f583b24 (patch)
tree6d825d6174583e987e9a630bfc9e5806a1716cb0 /L-99.lisp
parent2f00f123ccff8c21045a9e411479eb5928088291 (diff)
L-99: Fix encode function.
Diffstat (limited to 'L-99.lisp')
-rw-r--r--L-99.lisp16
1 files changed, 15 insertions, 1 deletions
diff --git a/L-99.lisp b/L-99.lisp
index a4e5a59..efd9e15 100644
--- a/L-99.lisp
+++ b/L-99.lisp
@@ -244,7 +244,7 @@
((endp x)
(if (zp n)
nil
- (list (list prev n))))
+ (list (list n prev))))
((or (zp n)
(equal (car x) prev))
(encode-1 (cdr x) (car x) (1+ n)))
@@ -254,4 +254,18 @@
(defmacro encode (x)
`(encode-1 ,x nil 0))
+(defun sum-of-cars (x)
+ (if (endp x)
+ 0
+ (+ (caar x)
+ (sum-of-cars (cdr x)))))
+
+(defthm sum-of-cars-encode-1
+ (implies (natp n)
+ (equal (sum-of-cars (encode-1 x sym n))
+ (+ n (len x)))))
+
+(defthm sum-of-cars-encode
+ (equal (sum-of-cars (encode x))
+ (len x)))