
(/VERSIONCHECK 2) 

(DEFUN |FFCGP;tableForDiscreteLogarithm;IT;1| (|fac| $)
  (SPADCALL (QREFELT $ 38))) 

(DEFUN |FFCGP;getZechTable;Pa;2| ($) (QREFELT $ 22)) 

(DEFUN |FFCGP;order;$Pi;3| (|x| $)
  (PROG (#1=#:G1837)
    (RETURN
     (COND
      ((SPADCALL |x| (QREFELT $ 44))
       (|error| "order: order of zero undefined"))
      ('T
       (PROG1
           (LETT #1# (QUOTIENT2 (QREFELT $ 20) (GCD (QREFELT $ 20) |x|))
                 |FFCGP;order;$Pi;3|)
         (|check-subtype| (> #1# 0) '(|PositiveInteger|) #1#))))))) 

(DEFUN |FFCGP;primitive?;$B;4| (|x| $)
  (COND
   ((OR (SPADCALL |x| (QREFELT $ 44))
        (SPADCALL |x| (|spadConstant| $ 19) (QREFELT $ 46)))
    'NIL)
   ('T
    (COND ((SPADCALL (GCD |x| (QREFELT $ 20)) 1 (QREFELT $ 46)) 'T)
          ('T 'NIL))))) 

(DEFUN |FFCGP;coordinates;$V;5| (|x| $)
  (PROG (|primElement|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |x| (|spadConstant| $ 29) (QREFELT $ 46))
        (MAKEARR1 (QREFELT $ 12) (|spadConstant| $ 48)))
       ('T
        (SEQ
         (LETT |primElement|
               (SPADCALL (SPADCALL (|spadConstant| $ 49) 1 (QREFELT $ 50))
                         (QREFELT $ 52))
               |FFCGP;coordinates;$V;5|)
         (EXIT
          (SPADCALL (SPADCALL |primElement| |x| (QREFELT $ 53))
                    (QREFELT $ 55)))))))))) 

(DEFUN |FFCGP;+;3$;6| (|x| |y| $)
  (PROG (|d|)
    (RETURN
     (SEQ (COND ((QREFELT $ 34) (|FFCGP;initializeZech| $)))
          (EXIT
           (COND ((SPADCALL |x| (QREFELT $ 44)) |y|)
                 ((SPADCALL |y| (QREFELT $ 44)) |x|)
                 (#1='T
                  (SEQ
                   (LETT |d|
                         (SPADCALL (QSDIFFERENCE |y| |x|) (QREFELT $ 20)
                                   (QREFELT $ 57))
                         . #2=(|FFCGP;+;3$;6|))
                   (COND
                    ((NULL (QSLESSP (QSLEFTSHIFT (QREFELT $ 20) -1) |d|))
                     (EXIT
                      (COND
                       ((EQL (QAREF1 (QREFELT $ 22) |d|) -1)
                        (|spadConstant| $ 29))
                       (#1#
                        (QSADDMOD |x| (QAREF1 (QREFELT $ 22) |d|)
                                  (QREFELT $ 20)))))))
                   (LETT |d| (QSDIFFERENCE (QREFELT $ 20) |d|) . #2#)
                   (EXIT
                    (QSADDMOD |y| (QAREF1 (QREFELT $ 22) |d|)
                              (QREFELT $ 20))))))))))) 

(DEFUN |FFCGP;initializeZech| ($)
  (SEQ (SETELT $ 22 (SPADCALL (QREFELT $ 7) (QREFELT $ 60))) (SETELT $ 34 'NIL)
       (EXIT (SPADCALL (QREFELT $ 62))))) 

(DEFUN |FFCGP;basis;PiV;8| (|n| $)
  (PROG (#1=#:G1860 #2=#:G1865 |i| #3=#:G1864 |m|)
    (RETURN
     (SEQ
      (COND
       ((NULL (EQL (REMAINDER2 (SPADCALL (QREFELT $ 65)) |n|) 0))
        (|error| "argument must divide extension degree"))
       ('T
        (SEQ
         (LETT |m|
               (QUOTIENT2 (QREFELT $ 20)
                          (-
                           (SPADCALL (SPADCALL (QREFELT $ 13)) |n|
                                     (QREFELT $ 16))
                           1))
               . #4=(|FFCGP;basis;PiV;8|))
         (EXIT
          (PROGN
           (LETT #3# (GETREFV |n|) . #4#)
           (SEQ (LETT |i| 0 . #4#) (LETT #2# (- |n| 1) . #4#) G190
                (COND ((QSGREATERP |i| #2#) (GO G191)))
                (SEQ
                 (EXIT
                  (SETELT #3# |i|
                          (SPADCALL
                           (PROG1
                               (LETT #1#
                                     (+ 1 (SPADCALL |i| |m| (QREFELT $ 66)))
                                     . #4#)
                             (|check-subtype| (> #1# 0) '(|PositiveInteger|)
                                              #1#))
                           (QREFELT $ 67)))))
                (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
           #3#))))))))) 

(DEFUN |FFCGP;*;I2$;9| (|n| |x| $)
  (SPADCALL (SPADCALL (SPADCALL |n| (QREFELT $ 70)) (QREFELT $ 71)) |x|
            (QREFELT $ 72))) 

(DEFUN |FFCGP;minimalPolynomial;$Sup;10| (|a| $)
  (PROG (|f| |p| |g| |u|)
    (RETURN
     (SEQ
      (LETT |f|
            (SPADCALL (SPADCALL (|spadConstant| $ 19) 1 (QREFELT $ 75))
                      (SPADCALL |a| 0 (QREFELT $ 75)) (QREFELT $ 76))
            . #1=(|FFCGP;minimalPolynomial;$Sup;10|))
      (LETT |u| (SPADCALL |a| (QREFELT $ 77)) . #1#)
      (SEQ G190
           (COND
            ((NULL (COND ((SPADCALL |u| |a| (QREFELT $ 46)) 'NIL) ('T 'T)))
             #2=(GO G191)))
           (SEQ
            (LETT |f|
                  (SPADCALL |f|
                            (SPADCALL
                             (SPADCALL (|spadConstant| $ 19) 1 (QREFELT $ 75))
                             (SPADCALL |u| 0 (QREFELT $ 75)) (QREFELT $ 76))
                            (QREFELT $ 78))
                  . #1#)
            (EXIT (LETT |u| (SPADCALL |u| (QREFELT $ 77)) . #1#)))
           NIL #3=(GO G190) G191 (EXIT NIL))
      (LETT |p| (|spadConstant| $ 28) . #1#)
      (SEQ G190
           (COND
            ((NULL (COND ((SPADCALL |f| (QREFELT $ 79)) 'NIL) ('T 'T))) #2#))
           (SEQ
            (LETT |g| (SPADCALL (SPADCALL |f| (QREFELT $ 80)) (QREFELT $ 81))
                  . #1#)
            (LETT |p|
                  (SPADCALL |p|
                            (SPADCALL |g| (SPADCALL |f| (QREFELT $ 82))
                                      (QREFELT $ 50))
                            (QREFELT $ 83))
                  . #1#)
            (EXIT (LETT |f| (SPADCALL |f| (QREFELT $ 84)) . #1#)))
           NIL #3# G191 (EXIT NIL))
      (EXIT |p|))))) 

(DEFUN |FFCGP;factorsOfCyclicGroupSize;L;11| ($)
  (SEQ (COND ((NULL (QREFELT $ 33)) (|FFCGP;initializeElt| $)))
       (EXIT (QREFELT $ 33)))) 

(PUT '|FFCGP;representationType;U;12| '|SPADreplace|
     '(XLAM NIL (CONS 3 "cyclic"))) 

(DEFUN |FFCGP;representationType;U;12| ($) (CONS 3 "cyclic")) 

(DEFUN |FFCGP;definingPolynomial;Sup;13| ($) (QREFELT $ 7)) 

(DEFUN |FFCGP;random;$;14| ($) (QSDIFFERENCE (RANDOM (QREFELT $ 14)) 1)) 

(DEFUN |FFCGP;represents;V$;15| (|v| $)
  (PROG (|u|)
    (RETURN
     (SEQ (LETT |u| (SPADCALL |v| (QREFELT $ 94)) |FFCGP;represents;V$;15|)
          (EXIT
           (COND
            ((SPADCALL |u| (|spadConstant| $ 95) (QREFELT $ 96))
             (|spadConstant| $ 29))
            ('T (SPADCALL |u| (QREFELT $ 97))))))))) 

(DEFUN |FFCGP;coerce;GF$;16| (|e| $)
  (PROG (|log| #1=#:G1903)
    (RETURN
     (SEQ
      (COND ((SPADCALL |e| (QREFELT $ 99)) (|spadConstant| $ 29))
            ('T
             (SEQ
              (LETT |log|
                    (*
                     (PROG2
                         (LETT #1#
                               (SPADCALL (QREFELT $ 32) |e| (QREFELT $ 101))
                               . #2=(|FFCGP;coerce;GF$;16|))
                         (QCDR #1#)
                       (|check-union| (QEQCAR #1# 0) (|NonNegativeInteger|)
                                      #1#))
                     (QREFELT $ 21))
                    . #2#)
              (EXIT (SPADCALL |log| (QREFELT $ 20) (QREFELT $ 102)))))))))) 

(DEFUN |FFCGP;retractIfCan;$U;17| (|x| $)
  (PROG (#1=#:G1915 |u|)
    (RETURN
     (SEQ
      (COND ((SPADCALL |x| (QREFELT $ 44)) (CONS 0 (|spadConstant| $ 48)))
            (#2='T
             (SEQ
              (LETT |u| (SPADCALL |x| (QREFELT $ 21) (QREFELT $ 104))
                    . #3=(|FFCGP;retractIfCan;$U;17|))
              (EXIT
               (COND
                ((SPADCALL |u| (CONS 1 "failed") (QREFELT $ 106))
                 (CONS 1 "failed"))
                (#2#
                 (CONS 0
                       (SPADCALL (QREFELT $ 32)
                                 (PROG2
                                     (LETT #1# |u| . #3#)
                                     (QCDR #1#)
                                   (|check-union| (QEQCAR #1# 0) $ #1#))
                                 (QREFELT $ 107))))))))))))) 

(DEFUN |FFCGP;retract;$GF;18| (|x| $)
  (PROG (#1=#:G1927 |a|)
    (RETURN
     (SEQ
      (LETT |a| (SPADCALL |x| (QREFELT $ 109)) . #2=(|FFCGP;retract;$GF;18|))
      (EXIT
       (COND
        ((SPADCALL |a| (CONS 1 "failed") (QREFELT $ 110))
         (|error| "element not in groundfield"))
        ('T
         (PROG2
             (LETT #1# |a| . #2#)
             (QCDR #1#)
           (|check-union| (QEQCAR #1# 0) (QREFELT $ 6) #1#))))))))) 

(DEFUN |FFCGP;basis;V;19| ($)
  (PROG (#1=#:G1931 #2=#:G1936 |i| #3=#:G1935 #4=#:G1934)
    (RETURN
     (SEQ
      (PROGN
       (LETT #4# (GETREFV #5=(QREFELT $ 12)) . #6=(|FFCGP;basis;V;19|))
       (SEQ (LETT #3# 0 . #6#) (LETT |i| 1 . #6#) (LETT #2# #5# . #6#) G190
            (COND ((QSGREATERP |i| #2#) (GO G191)))
            (SEQ
             (EXIT
              (SETELT #4# #3#
                      (SPADCALL
                       (PROG1 (LETT #1# |i| . #6#)
                         (|check-subtype| (> #1# 0) '(|PositiveInteger|) #1#))
                       (QREFELT $ 67)))))
            (LETT |i| (PROG1 (QSADD1 |i|) (LETT #3# (QSADD1 #3#) . #6#)) . #6#)
            (GO G190) G191 (EXIT NIL))
       #4#))))) 

(DEFUN |FFCGP;inGroundField?;$B;20| (|x| $)
  (COND
   ((OR (SPADCALL |x| (QREFELT $ 44))
        (EQL (SPADCALL |x| (QREFELT $ 21) (QREFELT $ 57)) 0))
    'T)
   ('T 'NIL))) 

(DEFUN |FFCGP;discreteLog;2$U;21| (|b| |x| $)
  (PROG (|e1| #1=#:G1949 |e|)
    (RETURN
     (SEQ
      (COND ((SPADCALL |x| (QREFELT $ 44)) (CONS 1 "failed"))
            (#2='T
             (SEQ
              (LETT |e| (SPADCALL |b| (QREFELT $ 20) |x| (QREFELT $ 115))
                    . #3=(|FFCGP;discreteLog;2$U;21|))
              (EXIT
               (COND
                ((SPADCALL |e| (CONS 1 "failed") (QREFELT $ 118))
                 (CONS 1 "failed"))
                (#2#
                 (SEQ
                  (LETT |e1|
                        (PROG2
                            (LETT #1# |e| . #3#)
                            (QCDR #1#)
                          (|check-union| (QEQCAR #1# 0)
                                         (|Record| (|:| |coef1| $)
                                                   (|:| |coef2| $))
                                         #1#))
                        . #3#)
                  (EXIT
                   (CONS 0
                         (SPADCALL (QCAR |e1|) (QREFELT $ 20)
                                   (QREFELT $ 57))))))))))))))) 

(DEFUN |FFCGP;-;2$;22| (|x| $)
  (COND ((SPADCALL |x| (QREFELT $ 44)) (|spadConstant| $ 29))
        ((EQL (SPADCALL (QREFELT $ 120)) 2) |x|)
        ('T (QSADDMOD |x| (QSLEFTSHIFT (QREFELT $ 20) -1) (QREFELT $ 20))))) 

(PUT '|FFCGP;generator;$;23| '|SPADreplace| '(XLAM NIL 1)) 

(DEFUN |FFCGP;generator;$;23| ($) 1) 

(PUT '|FFCGP;createPrimitiveElement;$;24| '|SPADreplace| '(XLAM NIL 1)) 

(DEFUN |FFCGP;createPrimitiveElement;$;24| ($) 1) 

(PUT '|FFCGP;primitiveElement;$;25| '|SPADreplace| '(XLAM NIL 1)) 

(DEFUN |FFCGP;primitiveElement;$;25| ($) 1) 

(DEFUN |FFCGP;discreteLog;$Nni;26| (|x| $)
  (COND ((SPADCALL |x| (QREFELT $ 44)) (|error| "discrete logarithm error"))
        ('T |x|))) 

(DEFUN |FFCGP;normalElement;$;27| ($)
  (SEQ (COND ((QREFELT $ 35) (|FFCGP;initializeElt| $))) (EXIT (QREFELT $ 36)))) 

(DEFUN |FFCGP;initializeElt| ($)
  (SEQ
   (SETELT $ 33
           (SPADCALL (SPADCALL (QREFELT $ 20) (QREFELT $ 128))
                     (QREFELT $ 130)))
   (SETELT $ 36 (SPADCALL (QREFELT $ 131))) (SETELT $ 35 'NIL)
   (EXIT (SPADCALL (QREFELT $ 62))))) 

(DEFUN |FFCGP;extensionDegree;Pi;29| ($) (QREFELT $ 12)) 

(DEFUN |FFCGP;characteristic;Nni;30| ($) (SPADCALL (QREFELT $ 132))) 

(DEFUN |FFCGP;lookup;$Pi;31| (|x| $)
  (COND ((EQL |x| -1) (QREFELT $ 14)) ('T (QSPLUS |x| 1)))) 

(DEFUN |FFCGP;index;Pi$;32| (|a| $)
  (QSDIFFERENCE (SPADCALL |a| (QREFELT $ 14) (QREFELT $ 102)) 1)) 

(PUT '|FFCGP;Zero;$;33| '|SPADreplace| '(XLAM NIL -1)) 

(DEFUN |FFCGP;Zero;$;33| ($) -1) 

(PUT '|FFCGP;One;$;34| '|SPADreplace| '(XLAM NIL 0)) 

(DEFUN |FFCGP;One;$;34| ($) 0) 

(DEFUN |FFCGP;coerce;$Of;35| (|x| $)
  (PROG (|y|)
    (RETURN
     (SEQ
      (COND ((EQL |x| -1) "0") ((EQL |x| 0) "1")
            ('T
             (SEQ
              (LETT |y| (- (SPADCALL |x| (QREFELT $ 134)) 1)
                    |FFCGP;coerce;$Of;35|)
              (EXIT
               (SPADCALL (QREFELT $ 27) (SPADCALL |y| (QREFELT $ 135))
                         (QREFELT $ 136)))))))))) 

(PUT '|FFCGP;=;2$B;36| '|SPADreplace| 'EQL) 

(DEFUN |FFCGP;=;2$B;36| (|x| |y| $) (EQL |x| |y|)) 

(DEFUN |FFCGP;*;3$;37| (|x| |y| $)
  (COND
   ((OR (SPADCALL |x| (|spadConstant| $ 29) (QREFELT $ 46))
        (SPADCALL |y| (|spadConstant| $ 29) (QREFELT $ 46)))
    (|spadConstant| $ 29))
   ('T (QSADDMOD |x| |y| (QREFELT $ 20))))) 

(DEFUN |FFCGP;*;GF2$;38| (|a| |x| $)
  (SPADCALL (SPADCALL |a| (QREFELT $ 71)) |x| (QREFELT $ 72))) 

(DEFUN |FFCGP;/;$GF$;39| (|x| |a| $)
  (SPADCALL |x| (SPADCALL |a| (QREFELT $ 71)) (QREFELT $ 139))) 

(DEFUN |FFCGP;inv;2$;40| (|x| $)
  (COND ((SPADCALL |x| (QREFELT $ 44)) (|error| "inv: not invertible"))
        ((SPADCALL |x| (|spadConstant| $ 19) (QREFELT $ 46))
         (|spadConstant| $ 19))
        ('T (QSDIFFERENCE (QREFELT $ 20) |x|)))) 

(DEFUN |FFCGP;^;$Pi$;41| (|x| |n| $) (SPADCALL |x| |n| (QREFELT $ 142))) 

(DEFUN |FFCGP;^;$Nni$;42| (|x| |n| $) (SPADCALL |x| |n| (QREFELT $ 142))) 

(DEFUN |FFCGP;^;$I$;43| (|x| |n| $)
  (PROG (|m|)
    (RETURN
     (SEQ
      (LETT |m| (SPADCALL |n| (QREFELT $ 20) (QREFELT $ 102)) |FFCGP;^;$I$;43|)
      (EXIT
       (COND ((EQL |m| 0) (|spadConstant| $ 19))
             ((SPADCALL |x| (|spadConstant| $ 29) (QREFELT $ 46))
              (|spadConstant| $ 29))
             ('T (QSMULTMOD |m| |x| (QREFELT $ 20))))))))) 

(DEFUN |FiniteFieldCyclicGroupExtensionByPolynomial| (&REST #1=#:G2014)
  (PROG ()
    (RETURN
     (PROG (#2=#:G2015)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (|devaluateList| #1#)
                                           (HGET |$ConstructorCache|
                                                 '|FiniteFieldCyclicGroupExtensionByPolynomial|)
                                           '|domainEqualList|)
                . #3=(|FiniteFieldCyclicGroupExtensionByPolynomial|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT
              (PROG1
                  (APPLY
                   (|function| |FiniteFieldCyclicGroupExtensionByPolynomial;|)
                   #1#)
                (LETT #2# T . #3#))
            (COND
             ((NOT #2#)
              (HREM |$ConstructorCache|
                    '|FiniteFieldCyclicGroupExtensionByPolynomial|))))))))))) 

(DEFUN |FiniteFieldCyclicGroupExtensionByPolynomial;| (|#1| |#2|)
  (PROG (|pv$| #1=#:G2013 $ |dv$| DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|)
            . #2=(|FiniteFieldCyclicGroupExtensionByPolynomial|))
      (LETT DV$2 (|devaluate| |#2|) . #2#)
      (LETT |dv$|
            (LIST '|FiniteFieldCyclicGroupExtensionByPolynomial| DV$1 DV$2)
            . #2#)
      (LETT $ (GETREFV 160) . #2#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#1|
                                                         '(|CharacteristicZero|))
                                          (|HasCategory| |#1| '(|Finite|))
                                          (LETT #1#
                                                (|HasCategory| |#1|
                                                               '(|CharacteristicNonZero|))
                                                . #2#)
                                          (OR #1#
                                              (|HasCategory| |#1|
                                                             '(|Finite|)))))
                      . #2#))
      (|haddProp| |$ConstructorCache|
                  '|FiniteFieldCyclicGroupExtensionByPolynomial|
                  (LIST DV$1 DV$2) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 (|SingleInteger|))
      (QSETREFV $ 12 (SPADCALL |#2| (QREFELT $ 11)))
      (QSETREFV $ 14 (EXPT (SPADCALL (QREFELT $ 13)) (QREFELT $ 12)))
      (QSETREFV $ 17 (< (SPADCALL 2 20 (QREFELT $ 16)) (QREFELT $ 14)))
      (COND
       ((QREFELT $ 17) (|error| "field too large for this representation")))
      (QSETREFV $ 20 (- (QREFELT $ 14) 1))
      (QSETREFV $ 21
                (QUOTIENT2 (QREFELT $ 20) (- (SPADCALL (QREFELT $ 13)) 1)))
      (QSETREFV $ 22 (MAKEARR1 (QUOTIENT2 (+ (QREFELT $ 14) 1) 2) -1))
      (QSETREFV $ 27 (SPADCALL (SPADCALL (QREFELT $ 24)) (QREFELT $ 26)))
      (QSETREFV $ 32
                (COND
                 ((ODDP (QREFELT $ 12))
                  (SPADCALL (SPADCALL |#2| 0 (QREFELT $ 30)) (QREFELT $ 31)))
                 ('T (SPADCALL |#2| 0 (QREFELT $ 30)))))
      (QSETREFV $ 33 NIL)
      (QSETREFV $ 34 'T)
      (QSETREFV $ 35 'T)
      (QSETREFV $ 36 0)
      $)))) 

(MAKEPROP '|FiniteFieldCyclicGroupExtensionByPolynomial| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) '|Rep|
              (|NonNegativeInteger|) (|SparseUnivariatePolynomial| 6)
              (0 . |degree|) '|extdeg| (5 . |size|) '|sizeFF|
              (|PositiveInteger|) (9 . ^) '#:G1792 (15 . |One|)
              (CONS IDENTITY (FUNCALL (|dispatchFunction| |FFCGP;One;$;34|) $))
              '|sizeCG| '|sizeFG| '|zechlog| (|Symbol|) (19 . |new|)
              (|OutputForm|) (23 . |coerce|) '|alpha| (28 . |Zero|)
              (CONS IDENTITY
                    (FUNCALL (|dispatchFunction| |FFCGP;Zero;$;33|) $))
              (32 . |coefficient|) (38 . -) '|primEltGF| '|facOfGroupSize|
              '|initzech?| '|initelt?| '|normalElt| (|Table| 15 9)
              (43 . |table|) (|Integer|) |FFCGP;tableForDiscreteLogarithm;IT;1|
              (|PrimitiveArray| 159) |FFCGP;getZechTable;Pa;2| (|Boolean|)
              (47 . |zero?|) |FFCGP;order;$Pi;3| |FFCGP;=;2$B;36|
              |FFCGP;primitive?;$B;4| (52 . |Zero|) (56 . |One|)
              (60 . |monomial|) (|SimpleAlgebraicExtension| 6 10 7)
              (66 . |convert|) (71 . ^) (|Vector| 6) (77 . |coordinates|)
              |FFCGP;coordinates;$V;5| (82 . |positiveRemainder|)
              |FFCGP;+;3$;6| (|FiniteFieldFunctions| 6)
              (88 . |createZechTable|) (|Void|) (93 . |void|)
              (|OnePointCompletion| 15) (97 . |extensionDegree|)
              |FFCGP;extensionDegree;Pi;29| (101 . *) |FFCGP;index;Pi$;32|
              (|Vector| $) |FFCGP;basis;PiV;8| (107 . |coerce|)
              |FFCGP;coerce;GF$;16| |FFCGP;*;3$;37| |FFCGP;*;I2$;9|
              (|SparseUnivariatePolynomial| $$) (112 . |monomial|) (118 . -)
              (124 . |Frobenius|) (129 . *) (135 . |zero?|)
              (140 . |leadingCoefficient|) |FFCGP;retract;$GF;18|
              (145 . |degree|) (150 . +) (156 . |reductum|)
              |FFCGP;minimalPolynomial;$Sup;10|
              (|Record| (|:| |factor| 39) (|:| |exponent| 39)) (|List| 86)
              |FFCGP;factorsOfCyclicGroupSize;L;11|
              (|Union| '"prime" '"polynomial" '"normal" '"cyclic")
              |FFCGP;representationType;U;12| |FFCGP;definingPolynomial;Sup;13|
              |FFCGP;random;$;14| (|FiniteFieldExtensionByPolynomial| 6 7)
              (161 . |represents|) (166 . |Zero|) (170 . =)
              (176 . |discreteLog|) |FFCGP;represents;V$;15| (181 . |zero?|)
              (|Union| 9 '"failed") (186 . |discreteLog|)
              (192 . |positiveRemainder|) (|Union| $ '#1="failed")
              (198 . |exquo|) (|Union| $$ '#1#) (204 . =) (210 . ^)
              (|Union| 6 '"failed") |FFCGP;retractIfCan;$U;17| (216 . =)
              |FFCGP;basis;V;19| |FFCGP;inGroundField?;$B;20|
              (|Record| (|:| |coef1| $) (|:| |coef2| $))
              (|Union| 113 '#2="failed") (222 . |extendedEuclidean|)
              (|Record| (|:| |coef1| $$) (|:| |coef2| $$)) (|Union| 116 '#2#)
              (229 . =) |FFCGP;discreteLog;2$U;21| (235 . |characteristic|)
              |FFCGP;-;2$;22| |FFCGP;generator;$;23|
              |FFCGP;createPrimitiveElement;$;24| |FFCGP;primitiveElement;$;25|
              |FFCGP;discreteLog;$Nni;26| |FFCGP;normalElement;$;27|
              (|Factored| $) (239 . |factor|) (|Factored| 39) (244 . |factors|)
              (249 . |createNormalElement|) (253 . |characteristic|)
              |FFCGP;characteristic;Nni;30| |FFCGP;lookup;$Pi;31|
              (257 . |coerce|) (262 . ^) |FFCGP;coerce;$Of;35|
              |FFCGP;*;GF2$;38| (268 . /) |FFCGP;/;$GF$;39| |FFCGP;inv;2$;40|
              |FFCGP;^;$I$;43| |FFCGP;^;$Pi$;41| |FFCGP;^;$Nni$;42| (|List| $)
              (|Union| 68 '"failed") (|Matrix| $) (|Union| 10 '"failed")
              (|SparseUnivariatePolynomial| $) (|Matrix| 6) (|CardinalNumber|)
              (|Fraction| 39) (|Union| 145 '"failed")
              (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $))
              (|Record| (|:| |quotient| $) (|:| |remainder| $))
              (|Record| (|:| |coef| 145) (|:| |generator| $))
              (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
              (|String|) (|SingleInteger|))
           '#(~= 274 |zero?| 280 |unitNormal| 285 |unitCanonical| 290 |unit?|
              295 |transcendent?| 300 |transcendenceDegree| 305 |trace| 309
              |tableForDiscreteLogarithm| 320 |subtractIfCan| 325
              |squareFreePart| 331 |squareFree| 336 |sizeLess?| 341 |size| 347
              |sample| 351 |retractIfCan| 355 |retract| 360 |represents| 365
              |representationType| 370 |rem| 374 |recip| 380 |random| 385 |quo|
              389 |principalIdeal| 395 |primitiveElement| 400 |primitive?| 404
              |primeFrobenius| 409 |prime?| 420 |order| 425 |one?| 435
              |normalElement| 440 |normal?| 444 |norm| 449 |nextItem| 460
              |multiEuclidean| 465 |minimalPolynomial| 471 |lookup| 482
              |linearAssociatedOrder| 487 |linearAssociatedLog| 492
              |linearAssociatedExp| 503 |lcm| 509 |latex| 520 |inv| 525 |init|
              530 |index| 534 |inGroundField?| 539 |hash| 544 |getZechTable|
              549 |generator| 553 |gcdPolynomial| 557 |gcd| 563
              |factorsOfCyclicGroupSize| 574 |factor| 578 |extensionDegree| 583
              |extendedEuclidean| 591 |exquo| 604 |expressIdealMember| 610
              |euclideanSize| 616 |enumerate| 621 |divide| 625 |discreteLog|
              631 |dimension| 642 |differentiate| 646 |degree| 657
              |definingPolynomial| 667 |createPrimitiveElement| 671
              |createNormalElement| 675 |coordinates| 679 |conditionP| 689
              |coerce| 694 |charthRoot| 719 |characteristic| 729 |basis| 733
              |associates?| 742 |algebraic?| 748 ^ 753 |Zero| 771 |One| 775
              |Frobenius| 779 D 790 = 801 / 807 - 819 + 830 * 836)
           'NIL
           (CONS
            (|makeByteWordVec2| 4
                                '(0 0 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 2 0
                                  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0
                                  0 0 0 0 0 0))
            (CONS
             '#(|FiniteAlgebraicExtensionField&| |ExtensionField&|
                |FiniteFieldCategory&| |FieldOfPrimeCharacteristic&| |Field&|
                |EuclideanDomain&| NIL |UniqueFactorizationDomain&|
                |GcdDomain&| |DivisionRing&| |IntegralDomain&| |VectorSpace&|
                |Algebra&| |Algebra&| |Module&| |Module&| NIL NIL |Module&| NIL
                NIL |DifferentialRing&| NIL NIL NIL |Ring&| NIL NIL NIL NIL NIL
                NIL NIL |AbelianGroup&| NIL NIL |AbelianMonoid&| |Monoid&| NIL
                |SemiGroup&| |AbelianSemiGroup&| |Finite&| NIL |SetCategory&|
                |RetractableTo&| NIL NIL NIL NIL NIL |BasicType&| NIL)
             (CONS
              '#((|FiniteAlgebraicExtensionField| 6) (|ExtensionField| 6)
                 (|FiniteFieldCategory|) (|FieldOfPrimeCharacteristic|)
                 (|Field|) (|EuclideanDomain|) (|PrincipalIdealDomain|)
                 (|UniqueFactorizationDomain|) (|GcdDomain|) (|DivisionRing|)
                 (|IntegralDomain|) (|VectorSpace| 6) (|Algebra| 152)
                 (|Algebra| $$) (|Module| 6) (|Module| 152) (|EntireRing|)
                 (|CommutativeRing|) (|Module| $$) (|CharacteristicNonZero|)
                 (|CharacteristicZero|) (|DifferentialRing|) (|BiModule| 6 6)
                 (|BiModule| 152 152) (|BiModule| $$ $$) (|Ring|)
                 (|RightModule| 6) (|LeftModule| 6) (|RightModule| 152)
                 (|LeftModule| 152) (|LeftModule| $$) (|Rng|)
                 (|RightModule| $$) (|AbelianGroup|)
                 (|CancellationAbelianMonoid|) (|SemiRing|) (|AbelianMonoid|)
                 (|Monoid|) (|SemiRng|) (|SemiGroup|) (|AbelianSemiGroup|)
                 (|Finite|) (|StepThrough|) (|SetCategory|) (|RetractableTo| 6)
                 (|canonicalsClosed|) (|canonicalUnitNormal|)
                 (|noZeroDivisors|) (|CommutativeStar|) (|unitsKnown|)
                 (|BasicType|) (|CoercibleTo| 25))
              (|makeByteWordVec2| 159
                                  '(1 10 9 0 11 0 6 9 13 2 9 0 0 15 16 0 10 0
                                    18 0 23 0 24 1 23 25 0 26 0 10 0 28 2 10 6
                                    0 9 30 1 6 0 0 31 0 37 0 38 1 0 43 0 44 0 6
                                    0 48 0 6 0 49 2 10 0 6 9 50 1 51 0 10 52 2
                                    51 0 0 39 53 1 51 54 0 55 2 8 0 0 0 57 1 59
                                    41 10 60 0 61 0 62 0 0 63 64 2 39 0 9 0 66
                                    1 6 0 39 70 2 74 0 2 9 75 2 74 0 0 0 76 1 0
                                    0 0 77 2 74 0 0 0 78 1 74 43 0 79 1 74 2 0
                                    80 1 74 9 0 82 2 10 0 0 0 83 1 74 0 0 84 1
                                    93 0 54 94 0 93 0 95 2 93 43 0 0 96 1 93 9
                                    0 97 1 6 43 0 99 2 6 100 0 0 101 2 39 0 0 0
                                    102 2 8 103 0 0 104 2 105 43 0 0 106 2 6 0
                                    0 39 107 2 108 43 0 0 110 3 8 114 0 0 0 115
                                    2 117 43 0 0 118 0 10 9 120 1 39 127 0 128
                                    1 129 87 0 130 0 0 0 131 0 6 9 132 1 39 25
                                    0 135 2 25 0 0 0 136 2 0 0 0 0 139 2 0 43 0
                                    0 1 1 0 43 0 44 1 0 157 0 1 1 0 0 0 1 1 0
                                    43 0 1 1 0 43 0 1 0 0 9 1 2 2 0 0 15 1 1 0
                                    6 0 1 1 2 37 39 40 2 0 103 0 0 1 1 0 0 0 1
                                    1 0 127 0 1 2 0 43 0 0 1 0 2 9 1 0 0 0 1 1
                                    0 108 0 109 1 0 6 0 81 1 0 0 54 98 0 2 89
                                    90 2 0 0 0 0 1 1 0 103 0 1 0 2 0 92 2 0 0 0
                                    0 1 1 0 156 145 1 0 2 0 124 1 2 43 0 47 2 4
                                    0 0 9 1 1 4 0 0 1 1 0 43 0 1 1 4 63 0 1 1 2
                                    15 0 45 1 0 43 0 1 0 2 0 126 1 2 43 0 1 2 2
                                    0 0 15 1 1 0 6 0 1 1 2 103 0 1 2 0 153 145
                                    0 1 2 2 149 0 15 1 1 0 10 0 85 1 2 15 0 134
                                    1 2 10 0 1 1 2 10 0 1 2 2 148 0 0 1 2 2 0 0
                                    10 1 1 0 0 145 1 2 0 0 0 0 1 1 0 158 0 1 1
                                    0 0 0 141 0 2 0 1 1 2 0 15 67 1 0 43 0 112
                                    1 0 159 0 1 0 0 41 42 0 2 0 122 2 0 149 149
                                    149 1 1 0 0 145 1 2 0 0 0 0 1 0 2 87 88 1 0
                                    127 0 1 0 0 15 65 0 0 63 64 3 0 114 0 0 0 1
                                    2 0 154 0 0 1 2 0 103 0 0 1 2 0 153 145 0 1
                                    1 0 9 0 1 0 2 145 1 2 0 155 0 0 1 2 4 100 0
                                    0 119 1 2 9 0 125 0 0 151 1 2 2 0 0 9 1 1 2
                                    0 0 1 1 0 15 0 1 1 0 63 0 1 0 0 10 91 0 2 0
                                    123 0 2 0 131 1 0 54 0 56 1 0 150 68 1 1 2
                                    146 147 1 1 0 0 6 71 1 0 0 152 1 1 0 0 0 1
                                    1 0 0 39 1 1 0 25 0 137 1 4 103 0 1 1 2 0 0
                                    1 0 0 9 133 0 0 68 111 1 0 68 15 69 2 0 43
                                    0 0 1 1 0 43 0 1 2 0 0 0 39 142 2 0 0 0 9
                                    144 2 0 0 0 15 143 0 0 0 29 0 0 0 19 1 2 0
                                    0 77 2 2 0 0 9 1 2 2 0 0 9 1 1 2 0 0 1 2 0
                                    43 0 0 46 2 0 0 0 6 140 2 0 0 0 0 139 1 0 0
                                    0 121 2 0 0 0 0 1 2 0 0 0 0 58 2 0 0 0 6 1
                                    2 0 0 6 0 138 2 0 0 152 0 1 2 0 0 0 152 1 2
                                    0 0 0 0 72 2 0 0 39 0 73 2 0 0 9 0 1 2 0 0
                                    15 0 1)))))
           '|lookupComplete|)) 
