
(/VERSIONCHECK 2) 

(DEFUN |JORDAN;*;3$;1| (|a| |b| $)
  (COND
    ((SPADCALL (QREFELT $ 11) (QREFELT $ 16))
     (|error| "constructor must no be called with Ring of characteristic 2"))
    ('T
     (SPADCALL
         (SPADCALL (SPADCALL |a| |b| (QREFELT $ 17))
             (SPADCALL |b| |a| (QREFELT $ 17)) (QREFELT $ 18))
         (QREFELT $ 14) (QREFELT $ 19))))) 

(PUT '|JORDAN;coerce;$A;2| '|SPADreplace| '(XLAM (|a|) |a|)) 

(DEFUN |JORDAN;coerce;$A;2| (|a| $) |a|) 

(PUT '|JORDAN;coerce;A$;3| '|SPADreplace| '(XLAM (|a|) |a|)) 

(DEFUN |JORDAN;coerce;A$;3| (|a| $) |a|) 

(PUT '|JORDAN;**;$Pi$;4| '|SPADreplace| '(XLAM (|a| |n|) |a|)) 

(DEFUN |JORDAN;**;$Pi$;4| (|a| |n| $) |a|) 

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

(DEFUN |AssociatedJordanAlgebra;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$| #0=#:G1821)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #1=(|AssociatedJordanAlgebra|))
        (LETT DV$2 (|devaluate| |#2|) . #1#)
        (LETT |dv$| (LIST '|AssociatedJordanAlgebra| DV$1 DV$2) . #1#)
        (LETT $ (GETREFV 40) . #1#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| |#2|
                                (LIST '|FramedNonAssociativeAlgebra|
                                      (|devaluate| |#1|)))
                            (AND (|HasCategory| |#1| '(|Field|))
                                 (|HasCategory| |#2|
                                     (LIST
                                      '|FramedNonAssociativeAlgebra|
                                      (|devaluate| |#1|))))
                            (|HasCategory| |#2|
                                (LIST '|FiniteRankNonAssociativeAlgebra|
                                      (|devaluate| |#1|)))
                            (OR (AND (|HasCategory| |#1|
                                      '(|IntegralDomain|))
                                     (|HasCategory| |#2|
                                      (LIST
                                       '|FiniteRankNonAssociativeAlgebra|
                                       (|devaluate| |#1|))))
                                (AND (|HasCategory| |#1|
                                      '(|IntegralDomain|))
                                     (|HasCategory| |#2|
                                      (LIST
                                       '|FramedNonAssociativeAlgebra|
                                       (|devaluate| |#1|)))))
                            (OR (|HasCategory| |#2|
                                    (LIST
                                     '|FiniteRankNonAssociativeAlgebra|
                                     (|devaluate| |#1|)))
                                (|HasCategory| |#2|
                                    (LIST
                                     '|FramedNonAssociativeAlgebra|
                                     (|devaluate| |#1|)))))) . #1#))
        (|haddProp| |$ConstructorCache| '|AssociatedJordanAlgebra|
            (LIST DV$1 DV$2) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 5 |#2|)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#2|)
        (QSETREFV $ 11
            (SPADCALL (|spadConstant| $ 9) (|spadConstant| $ 9)
                (QREFELT $ 10)))
        (QSETREFV $ 14
            (PROG2 (LETT #0#
                         #2=(SPADCALL (QREFELT $ 11) (QREFELT $ 13)) . #1#)
                   (QCDR #0#)
              (|check-union| (QEQCAR #0# 0) #2# #0#)))
        $)))) 

(MAKEPROP '|AssociatedJordanAlgebra| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL (|local| |#2|) (|local| |#1|)
             (|local| |#2|) '|Rep| (0 . |One|) (4 . +) '|two|
             (|Union| $ '"failed") (10 . |recip|) '|oneHalf|
             (|Boolean|) (15 . |zero?|) (20 . *) (26 . +) (32 . *)
             |JORDAN;*;3$;1| |JORDAN;coerce;$A;2| |JORDAN;coerce;A$;3|
             (|PositiveInteger|) |JORDAN;**;$Pi$;4|
             (|SparseUnivariatePolynomial| (|Polynomial| 6))
             (|SparseUnivariatePolynomial| 6) (|List| 34)
             (|Record| (|:| |particular| $) (|:| |basis| (|List| $)))
             (|Union| 28 '"failed") (|Vector| $)
             (|List| (|Polynomial| 6)) (|Matrix| 6) (|Vector| 32)
             (|Vector| 6) (|Integer|) (|NonNegativeInteger|)
             (|SingleInteger|) (|String|) (|OutputForm|))
          '#(~= 38 |zero?| 44 |unit| 49 |subtractIfCan| 53
             |structuralConstants| 59 |someBasis| 68 |sample| 72
             |rightUnits| 76 |rightUnit| 80 |rightTraceMatrix| 84
             |rightTrace| 93 |rightRegularRepresentation| 98
             |rightRecip| 109 |rightRankPolynomial| 114 |rightPower|
             118 |rightNorm| 124 |rightMinimalPolynomial| 129
             |rightDiscriminant| 134 |rightCharacteristicPolynomial|
             143 |rightAlternative?| 148 |represents| 152 |recip| 163
             |rank| 168 |powerAssociative?| 172 |plenaryPower| 176
             |noncommutativeJordanAlgebra?| 182 |lieAlgebra?| 186
             |lieAdmissible?| 190 |leftUnits| 194 |leftUnit| 198
             |leftTraceMatrix| 202 |leftTrace| 211
             |leftRegularRepresentation| 216 |leftRecip| 227
             |leftRankPolynomial| 232 |leftPower| 236 |leftNorm| 242
             |leftMinimalPolynomial| 247 |leftDiscriminant| 252
             |leftCharacteristicPolynomial| 261 |leftAlternative?| 266
             |latex| 270 |jordanAlgebra?| 275 |jordanAdmissible?| 279
             |jacobiIdentity?| 283 |hash| 287 |flexible?| 292 |elt| 296
             |coordinates| 302 |convert| 324 |conditionsForIdempotents|
             334 |commutator| 343 |commutative?| 349 |coerce| 353
             |basis| 368 |associatorDependence| 372 |associator| 376
             |associative?| 383 |apply| 387 |antiCommutator| 393
             |antiCommutative?| 399 |antiAssociative?| 403
             |alternative?| 407 |Zero| 411 = 415 - 421 + 432 ** 438 *
             444)
          'NIL
          (CONS (|makeByteWordVec2| 5
                    '(1 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4))
                (CONS '#(|FramedNonAssociativeAlgebra&|
                         |FiniteRankNonAssociativeAlgebra&|
                         |NonAssociativeAlgebra&| |Module&| NIL
                         |NonAssociativeRng&| NIL NIL |AbelianGroup&|
                         NIL |AbelianMonoid&| |AbelianSemiGroup&|
                         |Monad&| |SetCategory&| NIL |BasicType&| NIL
                         NIL)
                      (CONS '#((|FramedNonAssociativeAlgebra| 6)
                               (|FiniteRankNonAssociativeAlgebra| 6)
                               (|NonAssociativeAlgebra| 6) (|Module| 6)
                               (|BiModule| 6 6) (|NonAssociativeRng|)
                               (|RightModule| 6) (|LeftModule| 6)
                               (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|AbelianMonoid|) (|AbelianSemiGroup|)
                               (|Monad|) (|SetCategory|)
                               (|CoercibleTo| 7) (|BasicType|)
                               (|CoercibleTo| 39) (|unitsKnown|))
                            (|makeByteWordVec2| 39
                                '(0 6 0 9 2 6 0 0 0 10 1 6 12 0 13 1 6
                                  15 0 16 2 8 0 0 0 17 2 8 0 0 0 18 2 0
                                  0 0 6 19 2 0 15 0 0 1 1 0 15 0 1 0 4
                                  12 1 2 0 12 0 0 1 1 3 33 30 1 0 1 33
                                  1 0 3 30 1 0 0 0 1 0 4 29 1 0 4 12 1
                                  1 3 32 30 1 0 1 32 1 1 3 6 0 1 2 3 32
                                  0 30 1 1 1 32 0 1 1 4 12 0 1 0 2 25 1
                                  2 0 0 0 23 1 1 3 6 0 1 1 4 26 0 1 1 3
                                  6 30 1 0 1 6 1 1 3 26 0 1 0 3 15 1 2
                                  3 0 34 30 1 1 1 0 34 1 1 4 12 0 1 0 3
                                  23 1 0 3 15 1 2 0 0 0 23 1 0 3 15 1 0
                                  3 15 1 0 3 15 1 0 4 29 1 0 4 12 1 1 3
                                  32 30 1 0 1 32 1 1 3 6 0 1 2 3 32 0
                                  30 1 1 1 32 0 1 1 4 12 0 1 0 2 25 1 2
                                  0 0 0 23 1 1 3 6 0 1 1 4 26 0 1 1 3 6
                                  30 1 0 1 6 1 1 3 26 0 1 0 3 15 1 1 0
                                  38 0 1 0 3 15 1 0 3 15 1 0 3 15 1 1 0
                                  37 0 1 0 3 15 1 2 1 6 0 35 1 2 3 34 0
                                  30 1 2 3 32 30 30 1 1 1 34 0 1 1 1 32
                                  30 1 1 1 34 0 1 1 1 0 34 1 1 3 31 30
                                  1 0 1 31 1 2 0 0 0 0 1 0 3 15 1 1 0 0
                                  5 22 1 0 5 0 21 1 0 39 0 1 0 1 30 1 0
                                  4 27 1 3 0 0 0 0 0 1 0 3 15 1 2 1 0
                                  32 0 1 2 0 0 0 0 1 0 3 15 1 0 3 15 1
                                  0 3 15 1 0 0 0 1 2 0 15 0 0 1 1 0 0 0
                                  1 2 0 0 0 0 1 2 0 0 0 0 1 2 0 0 0 23
                                  24 2 0 0 6 0 1 2 0 0 0 6 19 2 0 0 0 0
                                  20 2 0 0 35 0 1 2 0 0 36 0 1 2 0 0 23
                                  0 1)))))
          '|lookupComplete|)) 
