
(/VERSIONCHECK 2) 

(DEFPARAMETER |IntegralDomain;AL| 'NIL) 

(DEFUN |IntegralDomain| ()
  (LET (#:G3068)
    (COND (|IntegralDomain;AL|)
          (T (SETQ |IntegralDomain;AL| (|IntegralDomain;|)))))) 

(DEFUN |IntegralDomain;| ()
  (PROG (#1=#:G3066)
    (RETURN
     (PROG1
         (LETT #1#
               (|Join| (|CommutativeRing|) (|Algebra| '$) (|EntireRing|)
                       (|mkCategory| '|domain|
                                     '(((|exquo| ((|Union| $ "failed") $ $)) T)
                                       ((|unitNormal|
                                         ((|Record| (|:| |unit| $)
                                                    (|:| |canonical| $)
                                                    (|:| |associate| $))
                                          $))
                                        T)
                                       ((|unitCanonical| ($ $)) T)
                                       ((|associates?| ((|Boolean|) $ $)) T)
                                       ((|unit?| ((|Boolean|) $)) T))
                                     NIL '((|Boolean|)) NIL))
               |IntegralDomain|)
       (SETELT #1# 0 '(|IntegralDomain|)))))) 

(MAKEPROP '|IntegralDomain| 'NILADIC T) 
