
(/VERSIONCHECK 2) 

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

(DEFUN |FiniteFieldNormalBasis;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ #0=#:G1858 |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #1=(|FiniteFieldNormalBasis|))
        (LETT DV$2 (|devaluate| |#2|) . #1#)
        (LETT |dv$| (LIST '|FiniteFieldNormalBasis| DV$1 DV$2) . #1#)
        (LETT $ (GETREFV 48) . #1#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| (|PrimeField| |#1|)
                                '(|CharacteristicZero|))
                            (|HasCategory| (|PrimeField| |#1|)
                                '(|Finite|))
                            (LETT #0#
                                  (|HasCategory| (|PrimeField| |#1|)
                                      '(|CharacteristicNonZero|)) . #1#)
                            (OR #0#
                                (|HasCategory| (|PrimeField| |#1|)
                                    '(|Finite|))))) . #1#))
        (|haddProp| |$ConstructorCache| '|FiniteFieldNormalBasis|
            (LIST DV$1 DV$2) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        $)))) 

(MAKEPROP '|FiniteFieldNormalBasis| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL
             (|FiniteFieldNormalBasisExtensionByPolynomial| 31
                 (NRTEVAL (SPADCALL (QREFELT $ 7) (QREFELT $ 12))))
             (|local| |#1|) (|local| |#2|)
             (|Record| (|:| |value| 31) (|:| |index| 47))
             (|Union| 27 30) (|PositiveInteger|)
             (|FiniteFieldFunctions| 31)
             (0 . |createLowComplexityNormalBasis|)
             (|Union| $ '"failed") (|Union| 16 '"failed")
             (|OnePointCompletion| 10) (|NonNegativeInteger|)
             (|List| $)
             (|Record| (|:| |factor| 23) (|:| |exponent| 23))
             (|List| 18) (|Union| 33 '"failed") (|Matrix| $)
             (|Table| 10 16) (|Integer|) (|Boolean|)
             (|Union| 27 '"failed")
             (|Union| '"prime" '"polynomial" '"normal" '"cyclic")
             (|SparseUnivariatePolynomial| 31)
             (|SparseUnivariatePolynomial| $) (|Matrix| 31)
             (|Vector| (|List| 8)) (|PrimeField| 6) (|Vector| 31)
             (|Vector| $) (|CardinalNumber|) (|Union| 31 '"failed")
             (|Fraction| 23) (|Factored| $) (|Union| 17 '"failed")
             (|Record| (|:| |coef1| $) (|:| |coef2| $)
                 (|:| |generator| $))
             (|Record| (|:| |coef1| $) (|:| |coef2| $))
             (|Union| 40 '"failed")
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (|Record| (|:| |coef| 17) (|:| |generator| $))
             (|Record| (|:| |unit| $) (|:| |canonical| $)
                 (|:| |associate| $))
             (|String|) (|OutputForm|) (|SingleInteger|))
          '#() '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|
                                   (|PrimeField| 6))
                               (|ExtensionField| (|PrimeField| 6))
                               (|FiniteFieldCategory|)
                               (|FieldOfPrimeCharacteristic|) (|Field|)
                               (|EuclideanDomain|)
                               (|PrincipalIdealDomain|)
                               (|UniqueFactorizationDomain|)
                               (|GcdDomain|) (|DivisionRing|)
                               (|IntegralDomain|)
                               (|VectorSpace| (|PrimeField| 6))
                               (|Algebra| 36) (|Algebra| $$)
                               (|Module| (|PrimeField| 6))
                               (|Module| 36) (|EntireRing|)
                               (|CommutativeRing|) (|Module| $$)
                               (|CharacteristicNonZero|)
                               (|CharacteristicZero|)
                               (|DifferentialRing|)
                               (|BiModule| (|PrimeField| 6)
                                   (|PrimeField| 6))
                               (|BiModule| 36 36) (|BiModule| $$ $$)
                               (|Ring|)
                               (|RightModule| (|PrimeField| 6))
                               (|LeftModule| (|PrimeField| 6))
                               (|RightModule| 36) (|LeftModule| 36)
                               (|LeftModule| $$) (|Rng|)
                               (|RightModule| $$) (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|SemiRing|) (|AbelianMonoid|)
                               (|Monoid|) (|SemiRng|) (|SemiGroup|)
                               (|AbelianSemiGroup|) (|Finite|)
                               (|StepThrough|) (|SetCategory|)
                               (|RetractableTo| (|PrimeField| 6))
                               (|canonicalsClosed|)
                               (|canonicalUnitNormal|)
                               (|noZeroDivisors|) (|CommutativeStar|)
                               (|unitsKnown|) (|BasicType|)
                               (|CoercibleTo| 46))
                            (|makeByteWordVec2| 12 '(1 11 9 10 12)))))
          '|lookupIncomplete|)) 
