; A group tester ; this version uses Scheme’s equal? for equality for speed and ; distrust of z?, -g. ; This presumes categorical and non abstracted group values. ; Thing negative: "Did you find a violation?". (lambda (g s m n) (apply (lambda (z +g -g G z?) (if (z? G) "G is zero" (if (not (z? z)) "z is not zero" (let ((ran ((((fileVal "RC4") s) 'rbi) m)) (sp ((fileVal "expt") +g z -g))) (let ((gi (lambda () (sp G (ran))))) (let y ((n n)) (or (zero? n) (let* ((a (gi)) (b (gi)) (c (gi)) (ne (lambda (x y) (or (equal? x y) (list a b c))))) (and (ne (+g a b) (+g b a)) (ne (+g a (+g b c)) (+g (+g a b) c)) (ne (+g (+g a b) (-g b)) a) (y (- n 1))))))))))) g)) ((fileVal "crypto/GT") ((fileVal "crypto/MI") 641) "Flos" 53 200) ((fileVal "crypto/GT") ((fileVal "crypto/MI") 640) "lug" 1000 2000)