

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ __ASeq_6;
extern OBJ _ASeq_38(OBJ);extern OBJ __ASeq_38;
extern OBJ _ASeq_40(OBJ,OBJ);extern OBJ __ASeq_40;
extern OBJ _ASeq_41(OBJ,OBJ);extern OBJ __ASeq_41;
extern OBJ _ASeq_42(OBJ,OBJ);extern OBJ __ASeq_42;
extern OBJ _ASeq_43(OBJ,OBJ,OBJ);extern OBJ __ASeq_43;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;
extern OBJ _ASet_4(OBJ);OBJ __ASet_4; /* {} */
extern OBJ _ASet_5(OBJ,OBJ,OBJ);OBJ __ASet_5; /* incl */
extern OBJ _ASet_6(OBJ,OBJ);OBJ __ASet_6; /* % */
extern OBJ _ASet_7(OBJ,OBJ,OBJ);OBJ __ASet_7; /* %,1 */
extern OBJ _ASet_8(OBJ,OBJ,OBJ,OBJ);OBJ __ASet_8; /* %,2 */
extern OBJ _ASet_9(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASet_9; /* %,3 */
extern OBJ _ASet_10(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASet_10; /* %,4 */
extern OBJ _ASet_11(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASet_11; /* %,5 */
extern OBJ _ASet_12(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASet_12; /* %,6 */
extern OBJ _ASet_13(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ASet_13; /* %,7 */
extern OBJ _ASet_15(OBJ,OBJ,OBJ);OBJ __ASet_15; /* excl */
extern OBJ _ASet_16(OBJ,OBJ,OBJ,OBJ);OBJ __ASet_16; /* .. */
extern OBJ _ASet_17(OBJ,OBJ,OBJ,OBJ);OBJ __ASet_17; /* iter */
extern OBJ _ASet_18(OBJ,OBJ,OBJ);OBJ __ASet_18; /* + */
extern OBJ _ASet_19(OBJ,OBJ,OBJ);OBJ __ASet_19; /* - */
extern OBJ _ASet_20(OBJ,OBJ,OBJ);OBJ __ASet_20; /* * */
extern OBJ _ASet_21(OBJ,OBJ);OBJ __ASet_21; /* arb */
extern OBJ _ASet_22(OBJ,OBJ);OBJ __ASet_22; /* {}? */
extern OBJ _ASet_23(OBJ,OBJ,OBJ);OBJ __ASet_23; /* in */
extern OBJ _ASet_24(OBJ,OBJ);OBJ __ASet_24; /* # */
extern OBJ _ASet_25(OBJ,OBJ);OBJ __ASet_25; /* min */
extern OBJ _ASet_26(OBJ,OBJ);OBJ __ASet_26; /* max */
extern OBJ _ASet_27(OBJ,OBJ,OBJ);OBJ __ASet_27; /* exist? */
extern OBJ _ASet_28(OBJ,OBJ,OBJ);OBJ __ASet_28; /* find? */
extern OBJ _ASet_29(OBJ,OBJ,OBJ);OBJ __ASet_29; /* forall? */
extern OBJ _ASet_30(OBJ,OBJ,OBJ);OBJ __ASet_30; /* = */
extern OBJ _ASet_31(OBJ,OBJ,OBJ);OBJ __ASet_31; /* <= */
extern OBJ _ASet_32(OBJ,OBJ,OBJ);OBJ __ASet_32; /* < */
extern OBJ _ASet_33(OBJ,OBJ,OBJ);OBJ __ASet_33; /* {<} */
extern OBJ _ASet_34(OBJ,OBJ);OBJ __ASet_34; /* abs */
extern OBJ _ASet_35(OBJ,OBJ);OBJ __ASet_35; /* rep */
extern OBJ _ASet_37(OBJ,OBJ);OBJ __ASet_37; /* abs? */
extern OBJ _ASet_39(OBJ,OBJ,OBJ);OBJ __ASet_39; /* insert */
extern OBJ _ASet_40(OBJ,OBJ,OBJ);OBJ __ASet_40; /* delete */
extern OBJ _ASet_41(OBJ,OBJ,OBJ);OBJ __ASet_41; /* union */
extern OBJ _ASet_42(OBJ,OBJ,OBJ);OBJ __ASet_42; /* diff */
extern OBJ _ASet_43(OBJ,OBJ,OBJ);OBJ __ASet_43; /* isect */
extern OBJ _ASet_44(OBJ,OBJ,OBJ);OBJ __ASet_44; /* search */
extern OBJ _ASet_45(OBJ,OBJ,OBJ);OBJ __ASet_45; /* subset */
extern OBJ _ASet_46(OBJ,OBJ,OBJ);OBJ __ASet_46; /* equal */
extern OBJ _ASet_47(OBJ,OBJ,OBJ);OBJ __ASet_47; /* propersubset */

extern OBJ _ASet_4(OBJ x1) /* {} */
{OBJ r;
 FRCLS(x1,1);
 r=__ASeq_6;
 return r;}

extern OBJ _ASet_5(OBJ x1,OBJ x2,OBJ x3) /* incl */
{OBJ r;
 r=_ASet_39(x1,x2,x3);
 return r;}

extern OBJ _ASet_6(OBJ x1,OBJ x2) /* % */
{OBJ r;
 FRCLS(x1,1);
 PRD1(2,r);FLD1(r,1)=x2;FLD1(r,2)=__ASeq_6;
 return r;}

extern OBJ _ASet_7(OBJ x1,OBJ x2,OBJ x3) /* %,1 */
{OBJ r;
 {OBJ x4;
  PRD1(2,x4);FLD1(x4,1)=x2;FLD1(x4,2)=__ASeq_6;
  r=_ASet_39(x1,x3,x4);}
 return r;}

extern OBJ _ASet_8(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* %,2 */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x5;OBJ x6;
  PRD1(2,x5);FLD1(x5,1)=x2;FLD1(x5,2)=__ASeq_6;
  x6=_ASet_39(x1,x3,x5);
  r=_ASet_39(x1,x4,x6);}
 return r;}

extern OBJ _ASet_9(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* %,3 */
{OBJ r;
 CPCLS(x1,2);
 {OBJ x6;OBJ x7;OBJ x8;
  PRD1(2,x6);FLD1(x6,1)=x2;FLD1(x6,2)=__ASeq_6;
  x7=_ASet_39(x1,x3,x6);
  x8=_ASet_39(x1,x4,x7);
  r=_ASet_39(x1,x5,x8);}
 return r;}

extern OBJ _ASet_10(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* %,4 */
{OBJ r;
 CPCLS(x1,3);
 {OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  PRD1(2,x7);FLD1(x7,1)=x2;FLD1(x7,2)=__ASeq_6;
  x8=_ASet_39(x1,x3,x7);
  x9=_ASet_39(x1,x4,x8);
  x10=_ASet_39(x1,x5,x9);
  r=_ASet_39(x1,x6,x10);}
 return r;}

extern OBJ _ASet_11(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* %,5 */
{OBJ r;
 CPCLS(x1,4);
 {OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;
  PRD1(2,x8);FLD1(x8,1)=x2;FLD1(x8,2)=__ASeq_6;
  x9=_ASet_39(x1,x3,x8);
  x10=_ASet_39(x1,x4,x9);
  x11=_ASet_39(x1,x5,x10);
  x12=_ASet_39(x1,x6,x11);
  r=_ASet_39(x1,x7,x12);}
 return r;}

extern OBJ _ASet_12(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* %,6 */
{OBJ r;
 CPCLS(x1,5);
 {OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;OBJ x14;
  PRD1(2,x9);FLD1(x9,1)=x2;FLD1(x9,2)=__ASeq_6;
  x10=_ASet_39(x1,x3,x9);
  x11=_ASet_39(x1,x4,x10);
  x12=_ASet_39(x1,x5,x11);
  x13=_ASet_39(x1,x6,x12);
  x14=_ASet_39(x1,x7,x13);
  r=_ASet_39(x1,x8,x14);}
 return r;}

extern OBJ _ASet_13(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8,OBJ x9) /* %,7 */
{OBJ r;
 CPCLS(x1,6);
 {OBJ x10;OBJ x11;OBJ x12;OBJ x13;OBJ x14;OBJ x15;OBJ x16;
  PRD1(2,x10);FLD1(x10,1)=x2;FLD1(x10,2)=__ASeq_6;
  x11=_ASet_39(x1,x3,x10);
  x12=_ASet_39(x1,x4,x11);
  x13=_ASet_39(x1,x5,x12);
  x14=_ASet_39(x1,x6,x13);
  x15=_ASet_39(x1,x7,x14);
  x16=_ASet_39(x1,x8,x15);
  r=_ASet_39(x1,x9,x16);}
 return r;}

extern OBJ _ASet_15(OBJ x1,OBJ x2,OBJ x3) /* excl */
{OBJ r;
 r=_ASet_40(x1,x2,x3);
 return r;}

extern OBJ _ASet_16(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* .. */
{OBJ r;
 {OBJ x5;
  ANat_81(x2,x3,x5);
  if(ISTGPRM(x5,1)){
   FRCLS(x1,1);
   FRCLS(x4,1);
   r=__ASeq_6;
  }else{
   CPCLS(x1,1);
   CPCLS(x4,1);
   {OBJ x6;OBJ x7;OBJ x8;
    x6=(*(OBJ(*)(OBJ,OBJ))METHOD(x4,1))(x4,x2);
    ANat_2(x2,x7);
    x8=_ASet_16(x1,x7,x3,x4);
    r=_ASet_39(x1,x6,x8);}}}
 return r;}

extern OBJ _ASet_17(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* iter */
{OBJ r;
 COPY(x2,1);
 CPCLS(x4,1);
 {OBJ x5;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x4,1))(x4,x2);
  if(ISTGPRM(x5,1)){
   CPCLS(x1,1);
   COPY(x2,1);
   CPCLS(x3,1);
   {OBJ x9;OBJ x10;
    x9=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x2);
    x10=_ASet_17(x1,x9,x3,x4);
    r=_ASet_39(x1,x2,x10);}
  }else{
   FRCLS(x1,1);
   FREE(x2,1);
   FRCLS(x3,1);
   FRCLS(x4,1);
   r=__ASeq_6;}}
 return r;}

extern OBJ _ASet_18(OBJ x1,OBJ x2,OBJ x3) /* + */
{OBJ r;
 r=_ASet_41(x1,x2,x3);
 return r;}

extern OBJ _ASet_19(OBJ x1,OBJ x2,OBJ x3) /* - */
{OBJ r;
 r=_ASet_42(x1,x2,x3);
 return r;}

extern OBJ _ASet_20(OBJ x1,OBJ x2,OBJ x3) /* * */
{OBJ r;
 r=_ASet_43(x1,x2,x3);
 return r;}

extern OBJ _ASet_21(OBJ x1,OBJ x2) /* arb */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("arb\'Set: arb applied to empty set");
 }else{
  {OBJ x11=FLD1(x2,1);
   if(EXPRD(x2,1)){
    r=x11;
    FREE(FLD1(x2,2),1);DSPRDF(x2);
   }else{
    COPY(x11,1);
    r=x11;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _ASet_22(OBJ x1,OBJ x2) /* {}? */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  r=__ABUILTIN_5;
 }else{
  if(EXPRD(x2,1)){
   DSPRD(x2);
  }else{
   DCPRD(x2,1);}
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _ASet_23(OBJ x1,OBJ x2,OBJ x3) /* in */
{OBJ r;
 r=_ASet_44(x1,x2,x3);
 return r;}

extern OBJ _ASet_24(OBJ x1,OBJ x2) /* # */
{OBJ r;
 FRCLS(x1,1);
 r=_ASeq_52(x2,__ANat_5);
 return r;}

extern OBJ _ASet_25(OBJ x1,OBJ x2) /* min */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("min\'Set: applied to empty set");
 }else{
  {OBJ x11=FLD1(x2,1);
   if(EXPRD(x2,1)){
    r=x11;
    FREE(FLD1(x2,2),1);DSPRDF(x2);
   }else{
    COPY(x11,1);
    r=x11;
    FRPRD(x2,1);}}}
 return r;}

extern OBJ _ASet_26(OBJ x1,OBJ x2) /* max */
{OBJ r;
 FRCLS(x1,1);
 if(ISPRM(x2)){
  HLT("max\'Set: applied to empty set");
 }else{
  r=_ASeq_38(x2);}
 return r;}

extern OBJ _ASet_27(OBJ x1,OBJ x2,OBJ x3) /* exist? */
{OBJ r;
 FRCLS(x1,1);
 r=_ASeq_40(x2,x3);
 return r;}

extern OBJ _ASet_28(OBJ x1,OBJ x2,OBJ x3) /* find? */
{OBJ r;
 FRCLS(x1,1);
 r=_ASeq_41(x2,x3);
 return r;}

extern OBJ _ASet_29(OBJ x1,OBJ x2,OBJ x3) /* forall? */
{OBJ r;
 FRCLS(x1,1);
 r=_ASeq_42(x2,x3);
 return r;}

extern OBJ _ASet_30(OBJ x1,OBJ x2,OBJ x3) /* = */
{OBJ r;
 r=_ASet_46(x1,x2,x3);
 return r;}

extern OBJ _ASet_31(OBJ x1,OBJ x2,OBJ x3) /* <= */
{OBJ r;
 r=_ASet_45(x1,x2,x3);
 return r;}

extern OBJ _ASet_32(OBJ x1,OBJ x2,OBJ x3) /* < */
{OBJ r;
 r=_ASet_47(x1,x2,x3);
 return r;}

extern OBJ _ASet_33(OBJ x1,OBJ x2,OBJ x3) /* {<} */
{OBJ r;
 r=_ASeq_43(x1,x2,x3);
 return r;}

extern OBJ _ASet_34(OBJ x1,OBJ x2) /* abs */
{OBJ r;
 FRCLS(x1,1);
 r=x2;
 return r;}

extern OBJ _ASet_35(OBJ x1,OBJ x2) /* rep */
{OBJ r;
 FRCLS(x1,1);
 r=x2;
 return r;}

extern OBJ _ASet_37(OBJ x1,OBJ x2) /* abs? */
{OBJ r;
 FRCLS(x1,1);
 FREE(x2,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _ASet_39(register OBJ x1,register OBJ x2,register OBJ x3) /* insert */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   PRD1(2,*p1);FLD1(*p1,1)=x2;FLD1(*p1,2)=__ASeq_6;
  }else{
   {OBJ x24=FLD1(x3,1);OBJ x25=FLD1(x3,2);
    COPY(x24,2);COPY(x25,1);
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x27;
     x27=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x24);
     if(ISTGPRM(x27,1)){
      FRCLS(x1,1);
      FREE(x24,1);
      FREE(x25,1);
      PRD1(2,*p1);FLD1(*p1,1)=x2;FLD1(*p1,2)=x3;
     }else{
      CPCLS(x1,1);
      COPY(x2,1);
      COPY(x24,1);
      {OBJ x28;
       x28=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x24,x2);
       if(ISTGPRM(x28,1)){
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	{
	 PRD1(2,*p1);FLD1(*p1,1)=x24;
	 x3=x25;p1=&FLD1(*p1,2);continue;}
       }else{
	FRCLS(x1,1);
	FREE(x2,1);
	FREE(x24,1);
	FREE(x25,1);
	*p1=x3;}}}}}}
  break;}
 return r;}

extern OBJ _ASet_40(register OBJ x1,register OBJ x2,register OBJ x3) /* delete */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   FREE(x2,1);
   *p1=__ASeq_6;
  }else{
   {OBJ x24=FLD1(x3,1);OBJ x25=FLD1(x3,2);
    COPY(x24,2);COPY(x25,1);
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x27;
     x27=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x24);
     if(ISTGPRM(x27,1)){
      FRCLS(x1,1);
      FREE(x2,1);
      FREE(x24,1);
      FREE(x25,1);
      *p1=x3;
     }else{
      if(EXPRD(x3,1)){
       DSPRD(x3);
      }else{
       DCPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x2,1);
      COPY(x24,1);
      {OBJ x28;
       x28=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x24,x2);
       if(ISTGPRM(x28,1)){
	{
	 PRD1(2,*p1);FLD1(*p1,1)=x24;
	 x3=x25;p1=&FLD1(*p1,2);continue;}
       }else{
	*p1=x25;
	FRCLS(x1,1);
	FREE(x2,1);
	FREE(x24,1);}}}}}}
  break;}
 return r;}

extern OBJ _ASet_41(register OBJ x1,register OBJ x2,register OBJ x3) /* union */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    *p1=__ASeq_6;
   }else{
    *p1=x3;}
  }else{
   {OBJ x74=FLD1(x2,1);OBJ x75=FLD1(x2,2);
    COPY(x74,1);COPY(x75,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x74,1);
     FREE(x75,1);
     *p1=x2;
    }else{
     {OBJ x76=FLD1(x3,1);OBJ x77=FLD1(x3,2);
      COPY(x76,2);COPY(x77,1);
      CPCLS(x1,1);
      COPY(x74,1);
      {OBJ x80;
       x80=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x74,x76);
       if(ISTGPRM(x80,1)){
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x76,1);
	FREE(x77,1);
	{
	 PRD1(2,*p1);FLD1(*p1,1)=x74;
	 x2=x75;p1=&FLD1(*p1,2);continue;}
       }else{
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	CPCLS(x1,1);
	COPY(x74,1);
	COPY(x76,1);
	{OBJ x82;
	 x82=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x76,x74);
	 if(ISTGPRM(x82,1)){
	  FREE(x74,1);
	  FREE(x75,1);
	  {
	   PRD1(2,*p1);FLD1(*p1,1)=x76;
	   x3=x77;p1=&FLD1(*p1,2);continue;}
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  FREE(x76,1);
	  {
	   PRD1(2,*p1);FLD1(*p1,1)=x74;
	   x2=x75;x3=x77;p1=&FLD1(*p1,2);continue;}}}}}}}}}
  break;}
 return r;}

extern OBJ _ASet_42(register OBJ x1,register OBJ x2,register OBJ x3) /* diff */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    *p1=__ASeq_6;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    *p1=__ASeq_6;}
  }else{
   {OBJ x68=FLD1(x2,1);OBJ x69=FLD1(x2,2);
    COPY(x68,1);COPY(x69,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x68,1);
     FREE(x69,1);
     *p1=x2;
    }else{
     {OBJ x70=FLD1(x3,1);OBJ x71=FLD1(x3,2);
      COPY(x70,2);COPY(x71,1);
      CPCLS(x1,1);
      COPY(x68,1);
      {OBJ x74;
       x74=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x68,x70);
       if(ISTGPRM(x74,1)){
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x70,1);
	FREE(x71,1);
	{
	 PRD1(2,*p1);FLD1(*p1,1)=x68;
	 x2=x69;p1=&FLD1(*p1,2);continue;}
       }else{
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	CPCLS(x1,1);
	{OBJ x76;
	 x76=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x70,x68);
	 if(ISTGPRM(x76,1)){
	  FREE(x69,1);
	  x3=x71;continue;
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  x2=x69;x3=x71;continue;}}}}}}}}
  break;}
 return r;}

extern OBJ _ASet_43(register OBJ x1,register OBJ x2,register OBJ x3) /* isect */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    *p1=__ASeq_6;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    *p1=__ASeq_6;}
  }else{
   {OBJ x68=FLD1(x2,1);OBJ x69=FLD1(x2,2);
    COPY(x68,1);COPY(x69,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     if(EXPRD(x2,1)){
      DSPRD(x2);
     }else{
      DCPRD(x2,1);}
     FREE(x68,1);
     FREE(x69,1);
     *p1=__ASeq_6;
    }else{
     {OBJ x70=FLD1(x3,1);OBJ x71=FLD1(x3,2);
      COPY(x70,2);COPY(x71,1);
      CPCLS(x1,1);
      COPY(x68,1);
      {OBJ x74;
       x74=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x68,x70);
       if(ISTGPRM(x74,1)){
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x68,1);
	FREE(x70,1);
	FREE(x71,1);
	x2=x69;continue;
       }else{
	if(EXPRD(x3,1)){
	 DSPRD(x3);
	}else{
	 DCPRD(x3,1);}
	CPCLS(x1,1);
	COPY(x68,1);
	{OBJ x75;
	 x75=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x70,x68);
	 if(ISTGPRM(x75,1)){
	  FREE(x68,1);
	  FREE(x69,1);
	  x3=x71;continue;
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  {
	   PRD1(2,*p1);FLD1(*p1,1)=x68;
	   x2=x69;x3=x71;p1=&FLD1(*p1,2);continue;}}}}}}}}}
  break;}
 return r;}

extern OBJ _ASet_44(register OBJ x1,register OBJ x2,register OBJ x3) /* search */
{OBJ r;
 for(;;){
  if(ISPRM(x3)){
   FRCLS(x1,1);
   FREE(x2,1);
   r=__ABUILTIN_3;
  }else{
   {OBJ x23=FLD1(x3,1);OBJ x24=FLD1(x3,2);
    if(EXPRD(x3,1)){
     COPY(x23,1);
     DSPRDF(x3);
    }else{
     COPY(x23,2);COPY(x24,1);
     FRPRD(x3,1);}
    CPCLS(x1,1);
    COPY(x2,1);
    {OBJ x26;
     x26=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x2,x23);
     if(ISTGPRM(x26,1)){
      FRCLS(x1,1);
      FREE(x2,1);
      FREE(x23,1);
      FREE(x24,1);
      r=__ABUILTIN_3;
     }else{
      CPCLS(x1,1);
      COPY(x2,1);
      {OBJ x27;
       x27=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x23,x2);
       if(ISTGPRM(x27,1)){
	x3=x24;continue;
       }else{
	FRCLS(x1,1);
	FREE(x2,1);
	FREE(x24,1);
	r=__ABUILTIN_5;}}}}}}
  break;}
 return r;}

extern OBJ _ASet_45(register OBJ x1,register OBJ x2,register OBJ x3) /* subset */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    r=__ABUILTIN_5;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    r=__ABUILTIN_5;}
  }else{
   {OBJ x65=FLD1(x2,1);OBJ x66=FLD1(x2,2);
    COPY(x65,1);COPY(x66,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     if(EXPRD(x2,1)){
      DSPRD(x2);
     }else{
      DCPRD(x2,1);}
     FREE(x65,1);
     FREE(x66,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x67=FLD1(x3,1);OBJ x68=FLD1(x3,2);
      if(EXPRD(x3,1)){
       COPY(x67,1);
       DSPRDF(x3);
      }else{
       COPY(x67,2);COPY(x68,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x65,1);
      {OBJ x71;
       x71=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x65,x67);
       if(ISTGPRM(x71,1)){
	FRCLS(x1,1);
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x65,1);
	FREE(x66,1);
	FREE(x67,1);
	FREE(x68,1);
	r=__ABUILTIN_3;
       }else{
	CPCLS(x1,1);
	{OBJ x72;
	 x72=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x67,x65);
	 if(ISTGPRM(x72,1)){
	  FREE(x66,1);
	  x3=x68;continue;
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  x2=x66;x3=x68;continue;}}}}}}}}
  break;}
 return r;}

extern OBJ _ASet_46(register OBJ x1,register OBJ x2,register OBJ x3) /* equal */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    r=__ABUILTIN_5;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    r=__ABUILTIN_3;}
  }else{
   {OBJ x65=FLD1(x2,1);OBJ x66=FLD1(x2,2);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x65,1);COPY(x66,1);
     FRPRD(x2,1);}
    if(ISPRM(x3)){
     FRCLS(x1,1);
     FREE(x65,1);
     FREE(x66,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x67=FLD1(x3,1);OBJ x68=FLD1(x3,2);
      if(EXPRD(x3,1)){
       COPY(x67,1);
       DSPRDF(x3);
      }else{
       COPY(x67,2);COPY(x68,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x65,1);
      {OBJ x71;
       x71=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x65,x67);
       if(ISTGPRM(x71,1)){
	FRCLS(x1,1);
	FREE(x65,1);
	FREE(x66,1);
	FREE(x67,1);
	FREE(x68,1);
	r=__ABUILTIN_3;
       }else{
	CPCLS(x1,1);
	{OBJ x72;
	 x72=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x67,x65);
	 if(ISTGPRM(x72,1)){
	  FRCLS(x1,1);
	  FREE(x66,1);
	  FREE(x68,1);
	  r=__ABUILTIN_3;
	 }else{
	  x2=x66;x3=x68;continue;}}}}}}}}
  break;}
 return r;}

extern OBJ _ASet_47(register OBJ x1,register OBJ x2,register OBJ x3) /* propersubset */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   if(ISPRM(x3)){
    r=__ABUILTIN_3;
   }else{
    if(EXPRD(x3,1)){
     DSPRD(x3);
    }else{
     DCPRD(x3,1);}
    r=__ABUILTIN_5;}
  }else{
   {OBJ x65=FLD1(x2,1);OBJ x66=FLD1(x2,2);
    COPY(x65,1);COPY(x66,1);
    if(ISPRM(x3)){
     FRCLS(x1,1);
     if(EXPRD(x2,1)){
      DSPRD(x2);
     }else{
      DCPRD(x2,1);}
     FREE(x65,1);
     FREE(x66,1);
     r=__ABUILTIN_3;
    }else{
     {OBJ x67=FLD1(x3,1);OBJ x68=FLD1(x3,2);
      if(EXPRD(x3,1)){
       COPY(x67,1);
       DSPRDF(x3);
      }else{
       COPY(x67,2);COPY(x68,1);
       FRPRD(x3,1);}
      CPCLS(x1,1);
      COPY(x65,1);
      {OBJ x71;
       x71=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x65,x67);
       if(ISTGPRM(x71,1)){
	FRCLS(x1,1);
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	FREE(x65,1);
	FREE(x66,1);
	FREE(x67,1);
	FREE(x68,1);
	r=__ABUILTIN_3;
       }else{
	CPCLS(x1,1);
	{OBJ x72;
	 x72=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x67,x65);
	 if(ISTGPRM(x72,1)){
	  FREE(x66,1);
	  r=_ASet_45(x1,x2,x68);
	 }else{
	  if(EXPRD(x2,1)){
	   DSPRD(x2);
	  }else{
	   DCPRD(x2,1);}
	  x2=x66;x3=x68;continue;}}}}}}}}
  break;}
 return r;}

static OBJ _mt_4_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_4_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_4_1_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  COPY(FLDCLS(r,1),1);}
 INCCLS(r,1,2);
 FLDCLS(r,2)=t1;
 FLDCLS(r,3)=t2;
 return r;}

static OBJ _mt_4_1_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3);
 return r;}

static OBJ _mt_4_3_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 return r;}
static OBJ _mt_4_3_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

static OBJ _mt_5_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_5_1_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4);
 return r;}

static OBJ _mt_6_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_6_1_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5);
 return r;}

static OBJ _mt_7_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_7_1_6(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6);
 return r;}

static OBJ _mt_8_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_8_1_7(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6,t7);
 return r;}

static OBJ _mt_9_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 return r;}

static OBJ _mt_9_0_9(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8,OBJ t9) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8,t9);
 return r;}

static OBJ _mt_9_1_8(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,t2,t3,t4,t5,t6,t7,t8);
 return r;}

init_ASet()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_ASeq();
 init_AOption();
 CLS(3,_ASet_31,__ASet_31);
 CLS(3,_ASet_30,__ASet_30);
 CLS(3,_ASet_29,__ASet_29);
 CLS(3,_ASet_28,__ASet_28);
 CLS(3,_ASet_27,__ASet_27);
 CLS(2,_ASet_26,__ASet_26);
 CLS(2,_ASet_25,__ASet_25);
 CLS(2,_ASet_24,__ASet_24);
 CLS(3,_ASet_23,__ASet_23);
 CLS(2,_ASet_22,__ASet_22);
 CLS(2,_ASet_21,__ASet_21);
 CLS(3,_ASet_20,__ASet_20);
 CLS(3,_ASet_19,__ASet_19);
 CLS(3,_ASet_18,__ASet_18);
 CLS(4,_ASet_17,__ASet_17);
 CLS(4,_ASet_16,__ASet_16);
 CLS(3,_ASet_15,__ASet_15);
 CLS(3,_ASet_47,__ASet_47);
 CLS(3,_ASet_46,__ASet_46);
 CLS(9,_ASet_13,__ASet_13);
 CLS(3,_ASet_45,__ASet_45);
 CLS(8,_ASet_12,__ASet_12);
 CLS(3,_ASet_44,__ASet_44);
 CLS(7,_ASet_11,__ASet_11);
 CLS(3,_ASet_43,__ASet_43);
 CLS(6,_ASet_10,__ASet_10);
 CLS(3,_ASet_42,__ASet_42);
 CLS(5,_ASet_9,__ASet_9);
 CLS(3,_ASet_41,__ASet_41);
 CLS(4,_ASet_8,__ASet_8);
 CLS(3,_ASet_40,__ASet_40);
 CLS(3,_ASet_7,__ASet_7);
 CLS(3,_ASet_39,__ASet_39);
 CLS(2,_ASet_6,__ASet_6);
 CLS(2,_ASet_37,__ASet_37);
 CLS(3,_ASet_5,__ASet_5);
 CLS(1,_ASet_4,__ASet_4);
 CLS(2,_ASet_35,__ASet_35);
 CLS(2,_ASet_34,__ASet_34);
 CLS(3,_ASet_33,__ASet_33);
 CLS(3,_ASet_32,__ASet_32);
 MTH(4,0,1,_mt_4_0_1);LZYMTH(4,0,1,_mt_4_0_1);
 MTH(4,0,3,_mt_4_0_3);LZYMTH(4,0,3,_mt_4_0_3);
 MTH(4,1,2,_mt_4_1_2);LZYMTH(4,1,2,_mt_4_1_2);
 MTH(4,1,3,_mt_4_1_3);LZYMTH(4,1,3,_mt_4_1_3);
 MTH(4,3,1,_mt_4_3_1);LZYMTH(4,3,1,_mt_4_3_1_l);
 MTH(5,0,1,_mt_5_0_1);LZYMTH(5,0,1,_mt_5_0_1);
 MTH(5,1,4,_mt_5_1_4);LZYMTH(5,1,4,_mt_5_1_4);
 MTH(6,0,1,_mt_6_0_1);LZYMTH(6,0,1,_mt_6_0_1);
 MTH(6,1,5,_mt_6_1_5);LZYMTH(6,1,5,_mt_6_1_5);
 MTH(7,0,1,_mt_7_0_1);LZYMTH(7,0,1,_mt_7_0_1);
 MTH(7,1,6,_mt_7_1_6);LZYMTH(7,1,6,_mt_7_1_6);
 MTH(8,0,1,_mt_8_0_1);LZYMTH(8,0,1,_mt_8_0_1);
 MTH(8,1,7,_mt_8_1_7);LZYMTH(8,1,7,_mt_8_1_7);
 MTH(9,0,1,_mt_9_0_1);LZYMTH(9,0,1,_mt_9_0_1);
 MTH(9,0,9,_mt_9_0_9);LZYMTH(9,0,9,_mt_9_0_9);
 MTH(9,1,8,_mt_9_1_8);LZYMTH(9,1,8,_mt_9_1_8);}

