--* From BMT%WATSON.vnet.ibm.com@yktvmh.watson.ibm.com  Mon Feb  7 06:16:14 1994
--* Received: from yktvmh.watson.ibm.com by leonardo.watson.ibm.com (AIX 3.2/UCB 5.64/4.03)
--*           id AA20911; Mon, 7 Feb 1994 06:16:14 -0500
--* Received: from watson.vnet.ibm.com by yktvmh.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 9742; Mon, 07 Feb 94 06:22:02 EST
--* Received: from YKTVMH by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.BMT.NOTE.VAGENT2.5376.Feb.07.06:22:01.-0500>
--*           for asbugs@watson; Mon, 07 Feb 94 06:22:02 -0500
--* Received: from YKTVMH by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id 5374; Mon, 7 Feb 1994 06:22:01 EST
--* Received: from cyst.watson.ibm.com by yktvmh.watson.ibm.com (IBM VM SMTP V2R3)
--*    with TCP; Mon, 07 Feb 94 06:21:59 EST
--* Received: from spadserv.watson.ibm.com by cyst.watson.ibm.com (AIX 3.2/UCB 5.64/900528)
--*   id AA103654; Mon, 7 Feb 1994 06:22:24 -0500
--* Received: by spadserv.watson.ibm.com (AIX 3.2/UCB 5.64/900524)
--*           id AA01786; Mon, 7 Feb 1994 06:20:05 -0500
--* Date: Mon, 7 Feb 1994 06:20:05 -0500
--* From: bmt@spadserv.watson.ibm.com
--* X-External-Networks: yes
--* Message-Id: <9402071120.AA01786@spadserv.watson.ibm.com>
--* To: asbugs@watson.ibm.com
--* Subject: [1] asharp -L/asharp/version/current/lib/libaxiom -llanglib=lang.aso -lcliquelib=axclique.aso poly.asa [poly.asa][34.0 (current)]

--@ Fixed  by:  SSD   Fri Jun 3 12:38:59 EDT 1994 
--@ Tested by:  none 
--@ Summary:    The file compiles cleanly using v0.35.4. 
-- PI: trying to compile I get an error msg: "Not suitable meanings for op. has"-- and a segmentation violation (bug in error msg printing?)


(|Sequence| (|Import| NIL |langlib|) (|Import| NIL |cliquelib|)
    (|Export|
        (|Declare| |Polynomial|
            (|Apply| -> (|Declare| |#1| |Ring|)
                     (|With| NIL
                             (|Sequence|
                                 (|Apply| |PolynomialCategory| |#1|
                                          (|Apply| |IndexedExponents|
                                           |Symbol|)
                                          |Symbol|)
                                 (|If| (|Test|
                                        (|Apply| |has| |#1|
                                         (|Apply| |Algebra|
                                          (|Apply| |Fraction|
                                           |Integer|))))
                                       (|Declare| |integrate|
                                        (|Apply| ->
                                         (|Comma| % |Symbol|) %))
                                       NIL)))))
        NIL NIL)
    (|Export|
        (|Declare| |SparseMultivariatePolynomial|
            (|Apply| ->
                     (|Comma| (|Declare| |#1| |Ring|)
                              (|Declare| |#2| |OrderedSet|))
                     (|Apply| |PolynomialCategory| |#1|
                              (|Apply| |IndexedExponents| |#2|) |#2|)))
        NIL NIL)
    (|Export|
        (|Declare| |IndexedExponents|
            (|Apply| -> (|Declare| |#1| |OrderedSet|)
                     (|With| NIL
                             (|Sequence| |OrderedAbelianMonoidSup|
                                 (|Apply| |IndexedDirectProductCategory|
                                          |NonNegativeInteger| |#1|)))))
        NIL NIL)
    (|Define|
        (|Declare| |IndexedDirectProductCategory|
            (|Apply| ->
                     (|Comma| (|Declare| |#1| |SetCategory|)
                              (|Declare| |#2| |OrderedSet|))
                     |Category|))
        (|Lambda|
            (|Comma| (|Declare| |#1| |SetCategory|)
                     (|Declare| |#2| |OrderedSet|))
            |Category|
            (|Label| |IndexedDirectProductCategory|
                     (|With| NIL
                             (|Sequence| |SetCategory|
                                 (|Declare| |map|
                                     (|Apply| ->
                                      (|Comma|
                                       (|Apply| -> (|Comma| |#1|) |#1|)
                                       %)
                                      %))
                                 (|Declare| |monomial|
                                     (|Apply| -> (|Comma| |#1| |#2|) %))
                                 (|Declare| |leadingCoefficient|
                                     (|Apply| -> (|Comma| %) |#1|))
                                 (|Declare| |leadingSupport|
                                     (|Apply| -> (|Comma| %) |#2|))
                                 (|Declare| |reductum|
                                     (|Apply| -> (|Comma| %) %))))))))
 
