summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2020-11-29 04:05:34 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2020-11-29 04:05:34 +0900
commit46822c2b908001d531974f6f6ca34b8aba1b0c42 (patch)
treea930fe30a832f811c0d37b5d6560b10c2bd10156
parent99c01cbd393cb80a9555644370fb4550318fa901 (diff)
wip38 (refactor)
-rw-r--r--vikalpa.scm64
-rw-r--r--vikalpa/prelude.scm4
2 files changed, 28 insertions, 40 deletions
diff --git a/vikalpa.scm b/vikalpa.scm
index dc5b6de..0264ba9 100644
--- a/vikalpa.scm
+++ b/vikalpa.scm
@@ -412,28 +412,16 @@
(define (primitive-function? x)
(and (list? x)
(= 5 (length x))
- (variable? (primitive-function-name x))
+ (variable? (function-name x))
(eq? 'primitive-function (list-ref x 1))
- (vars? (primitive-function-vars x))
- ((option expression?) (primitive-function-expression x))
- ((option code?) (primitive-function-code x))))
+ (vars? (function-vars x))
+ ((option expression?) (function-expression x))
+ ((option code?) (function-code x))))
;; (primitive-function variable? vars?) -> primitive-function?
(define (primitive-function name vs expr code)
(list name 'primitive-function vs expr code))
-(define (primitive-function-name pf)
- (list-ref pf 0))
-
-(define (primitive-function-vars pf)
- (list-ref pf 2))
-
-(define (primitive-function-expression pf)
- (list-ref pf 3))
-
-(define (primitive-function-code pf)
- (list-ref pf 4))
-
(define (function? x)
(and (list? x)
(= 5 (length x))
@@ -730,19 +718,19 @@
(or (axiom? x)
(theorem? x)))
-(define (theorem*-name x)
+(define (theorem-name x)
(list-ref x 0))
-(define (theorem*-vars x)
+(define (theorem-vars x)
(list-ref x 2))
-(define (theorem*-expression x)
+(define (theorem-expression x)
(list-ref x 3))
-(define (theorem*-rules x)
- (expression->rules (theorem*-vars x)
+(define (theorem-rules x)
+ (expression->rules (theorem-vars x)
'()
- (theorem*-expression x)))
+ (theorem-expression x)))
(define (error? x)
(and (pair? x)
@@ -900,7 +888,7 @@
(parse-options/theorem (command-options cmd) fail)
(cond
((any (cut apply-rule preconds <> expr env)
- (theorem*-rules thm)) => identity)
+ (theorem-rules thm)) => identity)
(else
(fail 'apply-theorem cmd expr)))))
@@ -925,7 +913,7 @@
(rewrite/theorem cmd sys x preconds extracted-expr fail))
((or (function? x)
(and (primitive-function? x)
- (primitive-function-expression x)))
+ (function-expression x)))
(cond
((any (cut apply-rule '() <> extracted-expr '())
(function->rules x)) => identity)
@@ -997,10 +985,10 @@
(expr-equal-lhs expr)))
'())))
-(define (theorem*->rules def)
- (expression->rules (theorem*-vars def)
+(define (theorem->rules def)
+ (expression->rules (theorem-vars def)
'()
- (theorem*-expression def)))
+ (theorem-expression def)))
(define current-system (make-parameter (make-system '() '() '())))
@@ -1321,7 +1309,7 @@
(error "make-induction-claim(find-app-forms): not supported"
expr))
(else '())))
- (let ((c (theorem*-expression t)))
+ (let ((c (theorem-expression t)))
(define (prop app-form)
(cond
((apply-rule '()
@@ -1442,7 +1430,7 @@
(let ((claim (make-induction-claim seed vars t)))
(validate-expression sys
`(claim-of ,(proof-name pf))
- (theorem*-vars t)
+ (theorem-vars t)
claim)
(rewrite sys-without-self claim (proof-sequence pf)))))
(else (error "(vikalpa) define-proof: induction function is not found."
@@ -1450,7 +1438,7 @@
(cons f vars)))))
(()
(rewrite sys-without-self
- (theorem*-expression t)
+ (theorem-expression t)
(proof-sequence pf)))
(else
(error "prove/theorem: fail")))))
@@ -1536,15 +1524,15 @@
`(define-function ,(function-name def) ,(function-vars def)
,(function-expression def)))
((theorem? def)
- `(define-theorem ,(theorem*-name def) ,(theorem*-vars def)
- ,(theorem*-expression def)))
+ `(define-theorem ,(theorem-name def) ,(theorem-vars def)
+ ,(theorem-expression def)))
((axiom? def)
- `(define-axiom ,(theorem*-name def) ,(theorem*-vars def)
- ,(theorem*-expression def)))
+ `(define-axiom ,(theorem-name def) ,(theorem-vars def)
+ ,(theorem-expression def)))
((primitive-function? def)
`(define-primitive-function
- ,(primitive-function-name def)
- ,(primitive-function-vars def)))
+ ,(function-name def)
+ ,(function-vars def)))
((macro? def)
`(define-syntax-rules ,(macro-name def)))
(else
@@ -1557,7 +1545,7 @@
(define/guard (system-primitives (sys system?))
(append reserved-symbols
- (map primitive-function-name
+ (map function-name
(filter primitive-function?
(system-definitions sys)))))
@@ -1572,7 +1560,7 @@
(system-definitions sys))))
(define/guard (system-axioms (sys system?))
- (map theorem*-name
+ (map theorem-name
(filter axiom?
(system-definitions sys))))
diff --git a/vikalpa/prelude.scm b/vikalpa/prelude.scm
index 9a25348..83f3b6a 100644
--- a/vikalpa/prelude.scm
+++ b/vikalpa/prelude.scm
@@ -83,7 +83,7 @@
(define-axiom if-same (x y)
(equal? (if x y y) y))
-
+
(define-axiom if-not (x y z)
(equal? (if (not x) y z)
(if x z y)))
@@ -112,7 +112,7 @@
(define-axiom pred/succ (x)
(implies (natural? x)
(equal? (pred (succ x)) x)))
-
+
(define-axiom succ/pred (x)
(implies (natural? x)
(not (zero? x))