; Abelian group on curve {(x, y) | y2 = x3+bx+a modulo p}. (lambda (p a b) (((fileVal "AGEC") (cons ((((fileVal "RC4") "Goop") 'rbi) p) (cons 0 (cons zero? (cons 1 ((fileVal "GFp") p))))) ((fileVal "GFsqrt") p)) a b)) (define tl ((fileVal "AGECp") 23 18 7)) ((tl 'pg)) (let ((g (tl 'pg))(add (tl 'add))(p (tl 'pred))) (let ((a (g)) (b (g)) (c (g))) (cons (map (lambda (u) (cons u (p u))) (list a b c (add a b) (add b a) (add a (add b c)) (add (add a b) c))) (let r ((n 10000)) (or (= n 0) (and (let ((a (g)) (b (g)) (c (g))) (and (equal? (add a b) (add b a)) (equal? (add a (add b c)) (add (add a b) c)))) (r (- n 1)))))))) (let ((ng ((((fileVal "RC4") "FliT") 'rbi) (expt 10 10))) (* (tl 'mul))(g (tl 'pg))) (let r ((n 100)) (or (= n 0) (and (let ((m (ng))(n (ng)) (p (g))) (equal? (* m (* n p)) (* n (* m p)))) (r (- n 1))))))