

#include "BUILTIN.h"
extern OBJ _APredicate_2(OBJ);OBJ __APredicate_2; /* true */
extern OBJ _APredicate_3(OBJ);OBJ __APredicate_3; /* false */
extern OBJ _APredicate_4(OBJ,OBJ);OBJ __APredicate_4; /* ~ */
extern OBJ _APredicate_5(OBJ,OBJ,OBJ);OBJ __APredicate_5; /* and */
extern OBJ _APredicate_6(OBJ,OBJ,OBJ);OBJ __APredicate_6; /* or */
extern OBJ _APredicate_7(OBJ,OBJ);OBJ __APredicate_7; /* equiv */
extern OBJ _APredicate_8(OBJ,OBJ);OBJ __APredicate_8; /* unequiv */
extern OBJ _APredicate_9(OBJ,OBJ,OBJ);OBJ __APredicate_9; /* % */
extern OBJ _APredicate_10(OBJ,OBJ,OBJ,OBJ);OBJ __APredicate_10; /* :: */
extern OBJ _APredicate_11(OBJ,OBJ,OBJ,OBJ);OBJ __APredicate_11; /* ::,1 */
extern OBJ _APredicate_12(OBJ);OBJ __APredicate_12; /* true'12 */
extern OBJ _APredicate_13(OBJ);OBJ __APredicate_13; /* false'13 */
extern OBJ _APredicate_14(OBJ,OBJ);OBJ __APredicate_14; /* ~'14 */
extern OBJ _APredicate_15(OBJ,OBJ,OBJ);OBJ __APredicate_15; /* and'15 */
extern OBJ _APredicate_16(OBJ,OBJ,OBJ);OBJ __APredicate_16; /* or'16 */
extern OBJ _APredicate_17(OBJ,OBJ);OBJ __APredicate_17; /* equiv'17 */
extern OBJ _APredicate_18(OBJ,OBJ);OBJ __APredicate_18; /* unequiv'18 */

extern OBJ _APredicate_2(OBJ x1) /* true */
{OBJ r;
 r=_APredicate_12(x1);
 return r;}

extern OBJ _APredicate_3(OBJ x1) /* false */
{OBJ r;
 r=_APredicate_13(x1);
 return r;}

extern OBJ _APredicate_4(OBJ x1,OBJ x2) /* ~ */
{OBJ r;
 CPCLS(__APredicate_14,1);
 {OBJ x3;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__APredicate_14,1))(__APredicate_14,x1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x2);}
 return r;}

extern OBJ _APredicate_5(OBJ x1,OBJ x2,OBJ x3) /* and */
{OBJ r;
 CPCLS(__APredicate_15,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__APredicate_15,2))(__APredicate_15,x1,x2);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(x4,1))(x4,x3);}
 return r;}

extern OBJ _APredicate_6(OBJ x1,OBJ x2,OBJ x3) /* or */
{OBJ r;
 CPCLS(__APredicate_16,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__APredicate_16,2))(__APredicate_16,x1,x2);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(x4,1))(x4,x3);}
 return r;}

extern OBJ _APredicate_7(OBJ x1,OBJ x2) /* equiv */
{OBJ r;
 r=_APredicate_17(x1,x2);
 return r;}

extern OBJ _APredicate_8(OBJ x1,OBJ x2) /* unequiv */
{OBJ r;
 r=_APredicate_18(x1,x2);
 return r;}

extern OBJ _APredicate_9(OBJ x1,OBJ x2,OBJ x3) /* % */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  if(ISTGPRM(x4,1)){
   r=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  }else{
   FRCLS(x1,1);
   FREE(x3,1);
   r=__ABUILTIN_3;}}
 return r;}

extern OBJ _APredicate_10(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* :: */
{OBJ r;
 CPCLS(x1,1);
 COPY(x3,1);
 {OBJ x5;OBJ x6;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  if(ISTGPRM(x5,1)){
   CPCLS(x1,1);
   COPY(x4,1);
   x6=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x4);
  }else{
   x6=__ABUILTIN_3;}
  if(ISTGPRM(x6,1)){
   FRCLS(x1,1);
   FRCLS(x2,1);
   FREE(x3,1);
   FREE(x4,1);
   r=__ABUILTIN_5;
  }else{
   if(ISTGPRM(x5,1)){
    FRCLS(x1,1);
    FRCLS(x2,1);
    FREE(x3,1);
    FREE(x4,1);
    r=__ABUILTIN_3;
   }else{
    COPY(x4,1);
    {OBJ x7;
     x7=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x4);
     if(ISTGPRM(x7,1)){
      FRCLS(x2,1);
      FREE(x3,1);
      FREE(x4,1);
      r=__ABUILTIN_3;
     }else{
      r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x3,x4);}}}}}
 return r;}

extern OBJ _APredicate_11(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* ::,1 */
{OBJ r;
 COPY(x3,1);
 COPY(x4,1);
 {OBJ x5;
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x3,x4);
  if(ISTGPRM(x5,1)){
   FRCLS(x2,1);
   FREE(x3,1);
   FREE(x4,1);
   r=__ABUILTIN_5;
  }else{
   r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x3,x4);}}
 return r;}

extern OBJ _APredicate_12(OBJ x1) /* true'12 */
{OBJ r;
 FREE(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _APredicate_13(OBJ x1) /* false'13 */
{OBJ r;
 FREE(x1,1);
 r=__ABUILTIN_3;
 return r;}

extern OBJ _APredicate_14(OBJ x1,OBJ x2) /* ~'14 */
{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;}

extern OBJ _APredicate_15(OBJ x1,OBJ x2,OBJ x3) /* and'15 */
{OBJ r;
 COPY(x3,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  if(ISTGPRM(x4,1)){
   r=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x3);
  }else{
   FRCLS(x2,1);
   FREE(x3,1);
   r=__ABUILTIN_3;}}
 return r;}

extern OBJ _APredicate_16(OBJ x1,OBJ x2,OBJ x3) /* or'16 */
{OBJ r;
 COPY(x3,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  if(ISTGPRM(x4,1)){
   FRCLS(x2,1);
   FREE(x3,1);
   r=__ABUILTIN_5;
  }else{
   r=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x3);}}
 return r;}

extern OBJ _APredicate_17(OBJ x1,OBJ x2) /* equiv'17 */
{OBJ r;
 FREE(x1,1);
 FREE(x2,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _APredicate_18(OBJ x1,OBJ x2) /* unequiv'18 */
{OBJ r;
 FREE(x1,1);
 FREE(x2,1);
 r=__ABUILTIN_3;
 return r;}

static OBJ _mt_1_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 return r;}
static OBJ _mt_1_0_1_l(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 COPY(r,1);LZYCLS(t,r);
 return r;}

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

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

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

static OBJ _mt_3_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,1);
 FLDCLS(r,1)=t1;
 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_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3);
 return r;}

static OBJ _mt_3_1_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1,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_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_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_4_2_2(OBJ t,OBJ t1,OBJ t2) 
{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,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1,t2);
 return r;}

init_APredicate()
{
 static int visited=0; if(visited) return; visited=1;
 CLS(2,_APredicate_18,__APredicate_18);
 CLS(2,_APredicate_17,__APredicate_17);
 CLS(3,_APredicate_16,__APredicate_16);
 CLS(3,_APredicate_15,__APredicate_15);
 CLS(2,_APredicate_14,__APredicate_14);
 CLS(1,_APredicate_13,__APredicate_13);
 CLS(1,_APredicate_12,__APredicate_12);
 CLS(4,_APredicate_11,__APredicate_11);
 CLS(4,_APredicate_10,__APredicate_10);
 CLS(3,_APredicate_9,__APredicate_9);
 CLS(2,_APredicate_8,__APredicate_8);
 CLS(2,_APredicate_7,__APredicate_7);
 CLS(3,_APredicate_6,__APredicate_6);
 CLS(3,_APredicate_5,__APredicate_5);
 CLS(2,_APredicate_4,__APredicate_4);
 CLS(1,_APredicate_3,__APredicate_3);
 CLS(1,_APredicate_2,__APredicate_2);
 MTH(1,0,1,_mt_1_0_1);LZYMTH(1,0,1,_mt_1_0_1_l);
 MTH(2,0,1,_mt_2_0_1);LZYMTH(2,0,1,_mt_2_0_1);
 MTH(2,0,2,_mt_2_0_2);LZYMTH(2,0,2,_mt_2_0_2);
 MTH(2,1,1,_mt_2_1_1);LZYMTH(2,1,1,_mt_2_1_1_l);
 MTH(3,0,1,_mt_3_0_1);LZYMTH(3,0,1,_mt_3_0_1);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,0,3,_mt_3_0_3);LZYMTH(3,0,3,_mt_3_0_3);
 MTH(3,1,2,_mt_3_1_2);LZYMTH(3,1,2,_mt_3_1_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);
 MTH(4,0,2,_mt_4_0_2);LZYMTH(4,0,2,_mt_4_0_2);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);
 MTH(4,2,2,_mt_4_2_2);LZYMTH(4,2,2,_mt_4_2_2);}

