
(/VERSIONCHECK 2) 

(DEFUN |OC-;characteristic;Nni;1| ($) (SPADCALL (QREFELT $ 9))) 

(DEFUN |OC-;conjugate;2S;2| (|x| $)
  (SPADCALL (SPADCALL |x| (QREFELT $ 11))
            (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 13))
            (QREFELT $ 20))) 

(DEFUN |OC-;map;M2S;3| (|fn| |x| $)
  (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 11)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 12)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 14)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 15)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 16)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 17)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 18)) |fn|)
            (SPADCALL (SPADCALL |x| (QREFELT $ 19)) |fn|) (QREFELT $ 20))) 

(DEFUN |OC-;norm;SR;4| (|x| $)
  (SPADCALL
   (SPADCALL
    (SPADCALL
     (SPADCALL
      (SPADCALL
       (SPADCALL
        (SPADCALL
         (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |x| (QREFELT $ 11))
                   (QREFELT $ 24))
         (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |x| (QREFELT $ 12))
                   (QREFELT $ 24))
         (QREFELT $ 25))
        (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |x| (QREFELT $ 14))
                  (QREFELT $ 24))
        (QREFELT $ 25))
       (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |x| (QREFELT $ 15))
                 (QREFELT $ 24))
       (QREFELT $ 25))
      (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (SPADCALL |x| (QREFELT $ 16))
                (QREFELT $ 24))
      (QREFELT $ 25))
     (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (SPADCALL |x| (QREFELT $ 17))
               (QREFELT $ 24))
     (QREFELT $ 25))
    (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (SPADCALL |x| (QREFELT $ 18))
              (QREFELT $ 24))
    (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (SPADCALL |x| (QREFELT $ 19))
             (QREFELT $ 24))
   (QREFELT $ 25))) 

(DEFUN |OC-;=;2SB;5| (|x| |y| $)
  (COND
   ((SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |y| (QREFELT $ 11))
              (QREFELT $ 28))
    (COND
     ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |y| (QREFELT $ 12))
                (QREFELT $ 28))
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |y| (QREFELT $ 14))
                  (QREFELT $ 28))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |y| (QREFELT $ 15))
                    (QREFELT $ 28))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                      (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 28))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                        (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 28))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                          (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 28))
                (SPADCALL (SPADCALL |x| (QREFELT $ 19))
                          (SPADCALL |y| (QREFELT $ 19)) (QREFELT $ 28)))
               (#1='T 'NIL)))
             (#1# 'NIL)))
           (#1# 'NIL)))
         (#1# 'NIL)))
       (#1# 'NIL)))
     (#1# 'NIL)))
   (#1# 'NIL))) 

(DEFUN |OC-;+;3S;6| (|x| |y| $)
  (SPADCALL
   (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |y| (QREFELT $ 11))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |y| (QREFELT $ 12))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |y| (QREFELT $ 14))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |y| (QREFELT $ 15))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (SPADCALL |y| (QREFELT $ 16))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (SPADCALL |y| (QREFELT $ 17))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (SPADCALL |y| (QREFELT $ 18))
             (QREFELT $ 25))
   (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (SPADCALL |y| (QREFELT $ 19))
             (QREFELT $ 25))
   (QREFELT $ 20))) 

(DEFUN |OC-;-;2S;7| (|x| $)
  (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 13))
            (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 13))
            (QREFELT $ 20))) 

(DEFUN |OC-;*;R2S;8| (|r| |x| $)
  (SPADCALL (SPADCALL |r| (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 24))
            (SPADCALL |r| (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 24))
            (QREFELT $ 20))) 

(DEFUN |OC-;*;I2S;9| (|n| |x| $)
  (SPADCALL (SPADCALL |n| (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 34))
            (SPADCALL |n| (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 34))
            (QREFELT $ 20))) 

(DEFUN |OC-;coerce;RS;10| (|r| $)
  (SPADCALL |r| (|spadConstant| $ 36) (|spadConstant| $ 36)
            (|spadConstant| $ 36) (|spadConstant| $ 36) (|spadConstant| $ 36)
            (|spadConstant| $ 36) (|spadConstant| $ 36) (QREFELT $ 20))) 

(DEFUN |OC-;coerce;IS;11| (|n| $)
  (SPADCALL (SPADCALL |n| (QREFELT $ 38)) (|spadConstant| $ 36)
            (|spadConstant| $ 36) (|spadConstant| $ 36) (|spadConstant| $ 36)
            (|spadConstant| $ 36) (|spadConstant| $ 36) (|spadConstant| $ 36)
            (QREFELT $ 20))) 

(DEFUN |OC-;zero?;SB;12| (|x| $)
  (COND
   ((SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 40))
    (COND
     ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 40))
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
                (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40)))
               (#1='T 'NIL)))
             (#1# 'NIL)))
           (#1# 'NIL)))
         (#1# 'NIL)))
       (#1# 'NIL)))
     (#1# 'NIL)))
   (#1# 'NIL))) 

(DEFUN |OC-;retract;SR;13| (|x| $)
  (SEQ
   (COND
    ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 40))
     (COND
      ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
       (COND
        ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
         (COND
          ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
           (COND
            ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
             (COND
              ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
               (COND
                ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40)))
                 (EXIT (|error| #1="Cannot retract octonion.")))))
              (#2='T (EXIT (|error| #1#)))))
            (#2# (EXIT (|error| #1#)))))
          (#2# (EXIT (|error| #1#)))))
        (#2# (EXIT (|error| #1#)))))
      (#2# (EXIT (|error| #1#)))))
    (#2# (EXIT (|error| #1#))))
   (EXIT (SPADCALL |x| (QREFELT $ 11))))) 

(DEFUN |OC-;retractIfCan;SU;14| (|x| $)
  (SEQ
   (COND
    ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 40))
     (COND
      ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
       (COND
        ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
         (COND
          ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
           (COND
            ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
             (COND
              ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
               (COND
                ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40)))
                 (EXIT (CONS 1 #1="failed")))))
              (#2='T (EXIT (CONS 1 #1#)))))
            (#2# (EXIT (CONS 1 #1#)))))
          (#2# (EXIT (CONS 1 #1#)))))
        (#2# (EXIT (CONS 1 #1#)))))
      (#2# (EXIT (CONS 1 #1#)))))
    (#2# (EXIT (CONS 1 #1#))))
   (EXIT (CONS 0 (SPADCALL |x| (QREFELT $ 11)))))) 

(DEFUN |OC-;coerce;SOf;15| (|x| $)
  (PROG (|part| |z| |y|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |x| (QREFELT $ 45))
        (SPADCALL (|spadConstant| $ 36) (QREFELT $ 47)))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (SPADCALL |x| (QREFELT $ 12))
                         (SPADCALL |x| (QREFELT $ 14))
                         (SPADCALL |x| (QREFELT $ 15))
                         (SPADCALL |x| (QREFELT $ 16))
                         (SPADCALL |x| (QREFELT $ 17))
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1=(|OC-;coerce;SOf;15|))
         (EXIT
          (COND
           ((SPADCALL |y| (QREFELT $ 45))
            (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 47)))
           (#2='T
            (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 47))
                      (SPADCALL |y| (QREFELT $ 48)) (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (SPADCALL |x| (QREFELT $ 14))
                         (SPADCALL |x| (QREFELT $ 15))
                         (SPADCALL |x| (QREFELT $ 16))
                         (SPADCALL |x| (QREFELT $ 17))
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL '|i| (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 12))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (SPADCALL |x| (QREFELT $ 15))
                         (SPADCALL |x| (QREFELT $ 16))
                         (SPADCALL |x| (QREFELT $ 17))
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL '|j| (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 14))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (SPADCALL |x| (QREFELT $ 16))
                         (SPADCALL |x| (QREFELT $ 17))
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL '|k| (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 15))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (SPADCALL |x| (QREFELT $ 17))
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL 'E (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (SPADCALL |x| (QREFELT $ 18))
                         (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL 'I (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ((NULL (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40)))
        (SEQ
         (LETT |y|
               (SPADCALL (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (|spadConstant| $ 36)
                         (|spadConstant| $ 36) (SPADCALL |x| (QREFELT $ 19))
                         (QREFELT $ 20))
               . #1#)
         (LETT |z|
               (SEQ (LETT |part| (SPADCALL 'J (QREFELT $ 51)) . #1#)
                    (EXIT
                     (COND
                      ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                                 (|spadConstant| $ 52) (QREFELT $ 28))
                       |part|)
                      (#2#
                       (SPADCALL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 47))
                        |part| (QREFELT $ 53))))))
               . #1#)
         (EXIT
          (COND ((SPADCALL |y| (QREFELT $ 45)) |z|)
                (#2#
                 (SPADCALL |z| (SPADCALL |y| (QREFELT $ 48))
                           (QREFELT $ 49)))))))
       ('T
        (SEQ (LETT |part| (SPADCALL 'K (QREFELT $ 51)) . #1#)
             (EXIT
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 19)) (|spadConstant| $ 52)
                          (QREFELT $ 28))
                |part|)
               (#2#
                (SPADCALL
                 (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 47)) |part|
                 (QREFELT $ 53)))))))))))) 

(DEFUN |OC-;inv;2S;16| (|x| $)
  (COND
   ((SPADCALL (SPADCALL |x| (QREFELT $ 55)) (|spadConstant| $ 36)
              (QREFELT $ 28))
    (|error| "This octonion is not invertible."))
   ('T
    (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 55)) (QREFELT $ 56))
              (SPADCALL |x| (QREFELT $ 57)) (QREFELT $ 58))))) 

(DEFUN |OC-;convert;SIf;17| (|x| $)
  (PROG (|l|)
    (RETURN
     (SEQ
      (LETT |l|
            (LIST (SPADCALL (SPADCALL "octon" (QREFELT $ 61)) (QREFELT $ 63))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 64))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 64)))
            |OC-;convert;SIf;17|)
      (EXIT (SPADCALL |l| (QREFELT $ 66))))))) 

(DEFUN |OC-;<;2SB;18| (|x| |y| $)
  (COND
   ((SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |y| (QREFELT $ 11))
              (QREFELT $ 28))
    (COND
     ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |y| (QREFELT $ 12))
                (QREFELT $ 28))
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |y| (QREFELT $ 14))
                  (QREFELT $ 28))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |y| (QREFELT $ 15))
                    (QREFELT $ 28))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                      (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 28))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                        (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 28))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                          (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 28))
                (SPADCALL (SPADCALL |x| (QREFELT $ 19))
                          (SPADCALL |y| (QREFELT $ 19)) (QREFELT $ 68)))
               (#1='T
                (SPADCALL (SPADCALL |x| (QREFELT $ 18))
                          (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 68)))))
             (#1#
              (SPADCALL (SPADCALL |x| (QREFELT $ 17))
                        (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 68)))))
           (#1#
            (SPADCALL (SPADCALL |x| (QREFELT $ 16))
                      (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 68)))))
         (#1#
          (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |y| (QREFELT $ 15))
                    (QREFELT $ 68)))))
       (#1#
        (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |y| (QREFELT $ 14))
                  (QREFELT $ 68)))))
     (#1#
      (SPADCALL (SPADCALL |x| (QREFELT $ 12)) (SPADCALL |y| (QREFELT $ 12))
                (QREFELT $ 68)))))
   (#1#
    (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (SPADCALL |y| (QREFELT $ 11))
              (QREFELT $ 68))))) 

(DEFUN |OC-;abs;SR;19| (|x| $)
  (SPADCALL (SPADCALL |x| (QREFELT $ 55)) (QREFELT $ 70))) 

(DEFUN |OC-;rational?;SB;20| (|x| $)
  (COND
   ((SPADCALL (SPADCALL |x| (QREFELT $ 12)) (QREFELT $ 40))
    (COND
     ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
      (COND
       ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
              (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40)))
             (#1='T 'NIL)))
           (#1# 'NIL)))
         (#1# 'NIL)))
       (#1# 'NIL)))
     (#1# 'NIL)))
   (#1# 'NIL))) 

(DEFUN |OC-;rational;SF;21| (|x| $)
  (COND
   ((SPADCALL |x| (QREFELT $ 73))
    (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 75)))
   ('T (|error| "Not a rational number")))) 

(DEFUN |OC-;rationalIfCan;SU;22| (|x| $)
  (COND
   ((SPADCALL |x| (QREFELT $ 73))
    (CONS 0 (SPADCALL (SPADCALL |x| (QREFELT $ 11)) (QREFELT $ 75))))
   ('T (CONS 1 "failed")))) 

(DEFUN |OctonionCategory&| (|#1| |#2|)
  (PROG (|pv$| $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|OctonionCategory&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT |dv$| (LIST '|OctonionCategory&| DV$1 DV$2) . #1#)
      (LETT $ (GETREFV 81) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST (|HasCategory| |#2| '(|Field|))
                                               (|HasCategory| |#2|
                                                              '(|IntegerNumberSystem|))
                                               (|HasCategory| |#2|
                                                              '(|RealNumberSystem|))
                                               (|HasCategory| |#2|
                                                              '(|CharacteristicNonZero|))
                                               (|HasCategory| |#2|
                                                              '(|CharacteristicZero|))
                                               (|HasCategory| |#2|
                                                              '(|ConvertibleTo|
                                                                (|InputForm|)))
                                               (|HasCategory| |#2|
                                                              '(|OrderedSet|))
                                               (|HasCategory| |#2|
                                                              '(|Finite|))))
                      . #1#))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (COND
       ((|testBitVector| |pv$| 1)
        (QSETREFV $ 59 (CONS (|dispatchFunction| |OC-;inv;2S;16|) $))))
      (COND
       ((|testBitVector| |pv$| 6)
        (QSETREFV $ 67 (CONS (|dispatchFunction| |OC-;convert;SIf;17|) $))))
      (COND
       ((|testBitVector| |pv$| 7)
        (QSETREFV $ 69 (CONS (|dispatchFunction| |OC-;<;2SB;18|) $))))
      (COND
       ((|testBitVector| |pv$| 3)
        (QSETREFV $ 71 (CONS (|dispatchFunction| |OC-;abs;SR;19|) $))))
      (COND
       ((|testBitVector| |pv$| 2)
        (PROGN
         (QSETREFV $ 72 (CONS (|dispatchFunction| |OC-;rational?;SB;20|) $))
         (QSETREFV $ 76 (CONS (|dispatchFunction| |OC-;rational;SF;21|) $))
         (QSETREFV $ 78
                   (CONS (|dispatchFunction| |OC-;rationalIfCan;SU;22|) $)))))
      $)))) 

(MAKEPROP '|OctonionCategory&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|NonNegativeInteger|) (0 . |characteristic|)
              |OC-;characteristic;Nni;1| (4 . |real|) (9 . |imagi|) (14 . -)
              (19 . |imagj|) (24 . |imagk|) (29 . |imagE|) (34 . |imagI|)
              (39 . |imagJ|) (44 . |imagK|) (49 . |octon|) |OC-;conjugate;2S;2|
              (|Mapping| 7 7) |OC-;map;M2S;3| (61 . *) (67 . +) |OC-;norm;SR;4|
              (|Boolean|) (73 . =) |OC-;=;2SB;5| |OC-;+;3S;6| |OC-;-;2S;7|
              |OC-;*;R2S;8| (|Integer|) (79 . *) |OC-;*;I2S;9| (85 . |Zero|)
              |OC-;coerce;RS;10| (89 . |coerce|) |OC-;coerce;IS;11|
              (94 . |zero?|) |OC-;zero?;SB;12| |OC-;retract;SR;13|
              (|Union| 7 '"failed") |OC-;retractIfCan;SU;14| (99 . |zero?|)
              (|OutputForm|) (104 . |coerce|) (109 . |coerce|) (114 . +)
              (|Symbol|) (120 . |coerce|) (125 . |One|) (129 . *)
              |OC-;coerce;SOf;15| (135 . |norm|) (140 . |inv|)
              (145 . |conjugate|) (150 . *) (156 . |inv|) (|String|)
              (161 . |coerce|) (|InputForm|) (166 . |convert|)
              (171 . |convert|) (|List| $) (176 . |convert|) (181 . |convert|)
              (186 . <) (192 . <) (198 . |sqrt|) (203 . |abs|)
              (208 . |rational?|) (213 . |rational?|) (|Fraction| 33)
              (218 . |rational|) (223 . |rational|) (|Union| 74 '"failed")
              (228 . |rationalIfCan|) (|Union| 33 '"failed")
              (|PositiveInteger|))
           '#(|zero?| 233 |retractIfCan| 238 |retract| 243 |rationalIfCan| 248
              |rational?| 253 |rational| 258 |norm| 263 |map| 268 |inv| 274
              |convert| 279 |conjugate| 284 |coerce| 289 |characteristic| 304
              |abs| 308 = 313 < 319 - 325 + 330 * 336)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 78
                                                 '(0 7 8 9 1 6 7 0 11 1 6 7 0
                                                   12 1 7 0 0 13 1 6 7 0 14 1 6
                                                   7 0 15 1 6 7 0 16 1 6 7 0 17
                                                   1 6 7 0 18 1 6 7 0 19 8 6 0
                                                   7 7 7 7 7 7 7 7 20 2 7 0 0 0
                                                   24 2 7 0 0 0 25 2 7 27 0 0
                                                   28 2 7 0 33 0 34 0 7 0 36 1
                                                   7 0 33 38 1 7 27 0 40 1 6 27
                                                   0 45 1 7 46 0 47 1 6 46 0 48
                                                   2 46 0 0 0 49 1 50 46 0 51 0
                                                   7 0 52 2 46 0 0 0 53 1 6 7 0
                                                   55 1 7 0 0 56 1 6 0 0 57 2 6
                                                   0 7 0 58 1 0 0 0 59 1 50 0
                                                   60 61 1 62 0 50 63 1 7 62 0
                                                   64 1 62 0 65 66 1 0 62 0 67
                                                   2 7 27 0 0 68 2 0 27 0 0 69
                                                   1 7 0 0 70 1 0 7 0 71 1 0 27
                                                   0 72 1 6 27 0 73 1 7 74 0 75
                                                   1 0 74 0 76 1 0 77 0 78 1 0
                                                   27 0 41 1 0 43 0 44 1 0 7 0
                                                   42 1 0 77 0 78 1 0 27 0 72 1
                                                   0 74 0 76 1 0 7 0 26 2 0 0
                                                   22 0 23 1 0 0 0 59 1 0 62 0
                                                   67 1 0 0 0 21 1 0 0 7 37 1 0
                                                   0 33 39 1 0 46 0 54 0 0 8 10
                                                   1 0 7 0 71 2 0 27 0 0 29 2 0
                                                   27 0 0 69 1 0 0 0 31 2 0 0 0
                                                   0 30 2 0 0 7 0 32 2 0 0 33 0
                                                   35)))))
           '|lookupComplete|)) 
