

#include "BUILTIN.h"

#include "Nat.h"

#include "Bitset.h"

#define __ABitset_Aforall__L34 __ABitset_34
#define _ABitset_Aforall__L34 _ABitset_34
#define ABitset_34 ABitset_Aforall__L34
extern OBJ __ABitset_Aforall__L34;
extern OBJ _ABitset_Aforall__L34(OBJ,OBJ);
OBJ __ABitset_SOC; /* {} */
extern OBJ _ABitset_Aincl(OBJ,OBJ);OBJ __ABitset_Aincl; /* incl */
extern OBJ _ABitset_S5(OBJ);OBJ __ABitset_S5; /* % */
extern OBJ _ABitset_S5_O1(OBJ,OBJ);OBJ __ABitset_S5_O1; /* %,1 */
extern OBJ _ABitset_S5_O2(OBJ,OBJ,OBJ);OBJ __ABitset_S5_O2; /* %,2 */
extern OBJ _ABitset_S5_O3(OBJ,OBJ,OBJ,OBJ);OBJ __ABitset_S5_O3; /* %,3 */
extern OBJ _ABitset_S5_O4(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABitset_S5_O4; /* %,4 */
extern OBJ _ABitset_S5_O5(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABitset_S5_O5; /* %,5 */
extern OBJ _ABitset_S5_O6(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABitset_S5_O6; /* %,6 */
extern OBJ _ABitset_S5_O7(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ABitset_S5_O7; /* %,7 */
extern OBJ _ABitset_Aexcl(OBJ,OBJ);OBJ __ABitset_Aexcl; /* excl */
extern OBJ _ABitset_Sdd(OBJ,OBJ,OBJ);OBJ __ABitset_Sdd; /* .. */
extern OBJ _ABitset_Aiter(OBJ,OBJ,OBJ);OBJ __ABitset_Aiter; /* iter */
extern OBJ _ABitset_Sp(OBJ,OBJ);OBJ __ABitset_Sp; /* + */
extern OBJ _ABitset_Sm(OBJ,OBJ);OBJ __ABitset_Sm; /* - */
extern OBJ _ABitset_S8(OBJ,OBJ);OBJ __ABitset_S8; /* * */
extern OBJ _ABitset_Aarb(OBJ);OBJ __ABitset_Aarb; /* arb */
extern OBJ _ABitset_SOC_(OBJ);OBJ __ABitset_SOC_; /* {}? */
extern OBJ _ABitset_Ain(OBJ,OBJ);OBJ __ABitset_Ain; /* in */
extern OBJ _ABitset_S3(OBJ);OBJ __ABitset_S3; /* # */
extern OBJ _ABitset_Aexist_(OBJ,OBJ);OBJ __ABitset_Aexist_; /* exist? */
extern OBJ _ABitset_Afind_(OBJ,OBJ);OBJ __ABitset_Afind_; /* find? */
extern OBJ _ABitset_Aforall_(OBJ,OBJ);OBJ __ABitset_Aforall_; /* forall? */
extern OBJ _ABitset_Se(OBJ,OBJ);OBJ __ABitset_Se; /* = */
extern OBJ _ABitset_Sle(OBJ,OBJ);OBJ __ABitset_Sle; /* <= */
extern OBJ _ABitset_Sl(OBJ,OBJ);OBJ __ABitset_Sl; /* < */
extern OBJ _ABitset_SOlC(OBJ,OBJ);OBJ __ABitset_SOlC; /* {<} */
extern OBJ _ABitset_Aproduct(OBJ,OBJ);OBJ __ABitset_Aproduct; /* product */
extern OBJ _ABitset_Aproduct_(OBJ);OBJ __ABitset_Aproduct_; /* product? */
extern OBJ _ABitset_Ab(OBJ);OBJ __ABitset_Ab; /* b */
extern OBJ _ABitset_Aa(OBJ);OBJ __ABitset_Aa; /* a */
extern OBJ _ABitset_Aforall__L34(OBJ,OBJ);OBJ __ABitset_Aforall__L34; /* forall?'34 */

#include "Bitset.hc.c"

extern OBJ _ABitset_S5(OBJ x1) /* % */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 ABitset_Aincl(x1,__ABitset_SOC,r);
 return r;}

extern OBJ _ABitset_S5_O1(OBJ x1,OBJ x2) /* %,1 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x3;
  ABitset_Aincl(x1,__ABitset_SOC,x3);
  ABitset_Aincl(x2,x3,r);}
 return r;}

extern OBJ _ABitset_S5_O2(OBJ x1,OBJ x2,OBJ x3) /* %,2 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x4;OBJ x5;
  ABitset_Aincl(x1,__ABitset_SOC,x4);
  ABitset_Aincl(x2,x4,x5);
  ABitset_Aincl(x3,x5,r);}
 return r;}

extern OBJ _ABitset_S5_O3(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* %,3 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x5;OBJ x6;OBJ x7;
  ABitset_Aincl(x1,__ABitset_SOC,x5);
  ABitset_Aincl(x2,x5,x6);
  ABitset_Aincl(x3,x6,x7);
  ABitset_Aincl(x4,x7,r);}
 return r;}

extern OBJ _ABitset_S5_O4(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* %,4 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x9;
  ABitset_Aincl(x1,__ABitset_SOC,x6);
  ABitset_Aincl(x2,x6,x7);
  ABitset_Aincl(x3,x7,x8);
  ABitset_Aincl(x4,x8,x9);
  ABitset_Aincl(x5,x9,r);}
 return r;}

extern OBJ _ABitset_S5_O5(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* %,5 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x7;OBJ x8;OBJ x9;OBJ x10;OBJ x11;
  ABitset_Aincl(x1,__ABitset_SOC,x7);
  ABitset_Aincl(x2,x7,x8);
  ABitset_Aincl(x3,x8,x9);
  ABitset_Aincl(x4,x9,x10);
  ABitset_Aincl(x5,x10,x11);
  ABitset_Aincl(x6,x11,r);}
 return r;}

extern OBJ _ABitset_S5_O6(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* %,6 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;
  ABitset_Aincl(x1,__ABitset_SOC,x8);
  ABitset_Aincl(x2,x8,x9);
  ABitset_Aincl(x3,x9,x10);
  ABitset_Aincl(x4,x10,x11);
  ABitset_Aincl(x5,x11,x12);
  ABitset_Aincl(x6,x12,x13);
  ABitset_Aincl(x7,x13,r);}
 return r;}

extern OBJ _ABitset_S5_O7(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* %,7 */
{OBJ r;
 CPPRD(__ABitset_SOC,1);
 {OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;OBJ x14;OBJ x15;
  ABitset_Aincl(x1,__ABitset_SOC,x9);
  ABitset_Aincl(x2,x9,x10);
  ABitset_Aincl(x3,x10,x11);
  ABitset_Aincl(x4,x11,x12);
  ABitset_Aincl(x5,x12,x13);
  ABitset_Aincl(x6,x13,x14);
  ABitset_Aincl(x7,x14,x15);
  ABitset_Aincl(x8,x15,r);}
 return r;}

extern OBJ _ABitset_Sdd(OBJ x1,OBJ x2,OBJ x3) /* .. */
{OBJ r;
 {OBJ x4;
  ANat_81(x1,x2,x4);
  if(ISTGPRM(x4,1)){
   FRCLS(x3,1);
   CPPRD(__ABitset_SOC,1);
   r=__ABitset_SOC;
  }else{
   CPCLS(x3,1);
   {OBJ x5;OBJ x6;OBJ x7;
    x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x1);
    ANat_2(x1,x6);
    ABitset_Sdd(x6,x2,x3,x7);
    ABitset_Aincl(x5,x7,r);}}}
 return r;}

extern OBJ _ABitset_Aiter(OBJ x1,OBJ x2,OBJ x3) /* iter */
{OBJ r;
 CPCLS(x3,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x1);
  if(ISTGPRM(x4,1)){
   CPCLS(x2,1);
   {OBJ x8;OBJ x9;
    x8=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x1);
    ABitset_Aiter(x8,x2,x3,x9);
    ABitset_Aincl(x1,x9,r);}
  }else{
   FRCLS(x2,1);
   FRCLS(x3,1);
   CPPRD(__ABitset_SOC,1);
   r=__ABitset_SOC;}}
 return r;}

extern OBJ _ABitset_Aforall_(OBJ x1,OBJ x2) /* forall? */
{OBJ r;
 CPCLS(__ABitset_Aforall__L34,1);
 {OBJ x3;OBJ x4;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__ABitset_Aforall__L34,1))(__ABitset_Aforall__L34,x1);
  ABitset_Aexist_(x3,x2,x4);
  if(ISTGPRM(x4,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

extern OBJ _ABitset_Aproduct(OBJ x1,OBJ x2) /* product */
{OBJ r;
 PRD1F(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _ABitset_Aproduct_(OBJ x1) /* product? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _ABitset_Ab(OBJ x1) /* b */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   DSPRDF(x1);
  }else{
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _ABitset_Aa(OBJ x1) /* a */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   DSPRDF(x1);
  }else{
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _ABitset_Aforall__L34(OBJ x1,OBJ x2) /* forall?'34 */
{OBJ r;
 {OBJ x3;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  if(ISTGPRM(x3,1)){
   r=__ABUILTIN_3;
  }else{
   r=__ABUILTIN_5;}}
 return r;}

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

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

static OBJ _mt_4_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4);
 return r;}

static OBJ _mt_5_0_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5);
 return r;}

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

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

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

init_ABitset()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_AOption();
 CLS(1,_ABitset_31,__ABitset_31);
 CLS(2,_ABitset_30,__ABitset_30);
 CLS(2,_ABitset_29,__ABitset_29);
 CLS(2,_ABitset_28,__ABitset_28);
 CLS(2,_ABitset_27,__ABitset_27);
 CLS(2,_ABitset_26,__ABitset_26);
 CLS(2,_ABitset_25,__ABitset_25);
 CLS(2,_ABitset_24,__ABitset_24);
 CLS(2,_ABitset_23,__ABitset_23);
 CLS(1,_ABitset_22,__ABitset_22);
 CLS(2,_ABitset_21,__ABitset_21);
 CLS(1,_ABitset_20,__ABitset_20);
 CLS(1,_ABitset_19,__ABitset_19);
 CLS(2,_ABitset_18,__ABitset_18);
 CLS(2,_ABitset_17,__ABitset_17);
 CLS(2,_ABitset_16,__ABitset_16);
 CLS(3,_ABitset_15,__ABitset_15);
 CLS(3,_ABitset_14,__ABitset_14);
 CLS(2,_ABitset_13,__ABitset_13);
 CLS(8,_ABitset_11,__ABitset_11);
 CLS(7,_ABitset_10,__ABitset_10);
 CLS(6,_ABitset_9,__ABitset_9);
 CLS(5,_ABitset_8,__ABitset_8);
 CLS(4,_ABitset_7,__ABitset_7);
 CLS(3,_ABitset_6,__ABitset_6);
 CLS(2,_ABitset_5,__ABitset_5);
 CLS(1,_ABitset_4,__ABitset_4);
 CLS(2,_ABitset_3,__ABitset_3);
 CLS(2,_ABitset_34,__ABitset_34);
 CLS(1,_ABitset_33,__ABitset_33);
 CLS(1,_ABitset_32,__ABitset_32);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);
 MTH(5,0,5,_mt_5_0_5);LZYMTH(5,0,5,_mt_5_0_5);
 MTH(6,0,6,_mt_6_0_6);LZYMTH(6,0,6,_mt_6_0_6);
 MTH(7,0,7,_mt_7_0_7);LZYMTH(7,0,7,_mt_7_0_7);
 MTH(8,0,8,_mt_8_0_8);LZYMTH(8,0,8,_mt_8_0_8);
 init_const_ABitset();}

