

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _AOrderingByInjection_3(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_3; /* < */
extern OBJ _AOrderingByInjection_4(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_4; /* > */
extern OBJ _AOrderingByInjection_5(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_5; /* <= */
extern OBJ _AOrderingByInjection_6(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_6; /* >= */
extern OBJ _AOrderingByInjection_7(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_7; /* = */
extern OBJ _AOrderingByInjection_8(OBJ,OBJ,OBJ);OBJ __AOrderingByInjection_8; /* |= */

extern OBJ _AOrderingByInjection_3(OBJ x1,OBJ x2,OBJ x3) /* < */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_80(x4,x5,r);}
 return r;}

extern OBJ _AOrderingByInjection_4(OBJ x1,OBJ x2,OBJ x3) /* > */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_81(x4,x5,r);}
 return r;}

extern OBJ _AOrderingByInjection_5(OBJ x1,OBJ x2,OBJ x3) /* <= */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_78(x4,x5,r);}
 return r;}

extern OBJ _AOrderingByInjection_6(OBJ x1,OBJ x2,OBJ x3) /* >= */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_79(x4,x5,r);}
 return r;}

extern OBJ _AOrderingByInjection_7(OBJ x1,OBJ x2,OBJ x3) /* = */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_76(x4,x5,r);}
 return r;}

extern OBJ _AOrderingByInjection_8(OBJ x1,OBJ x2,OBJ x3) /* |= */
{OBJ r;
 CPCLS(x1,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x3);
  ANat_77(x4,x5,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_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;}

init_AOrderingByInjection()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 CLS(3,_AOrderingByInjection_8,__AOrderingByInjection_8);
 CLS(3,_AOrderingByInjection_7,__AOrderingByInjection_7);
 CLS(3,_AOrderingByInjection_6,__AOrderingByInjection_6);
 CLS(3,_AOrderingByInjection_5,__AOrderingByInjection_5);
 CLS(3,_AOrderingByInjection_4,__AOrderingByInjection_4);
 CLS(3,_AOrderingByInjection_3,__AOrderingByInjection_3);
 MTH(3,0,1,_mt_3_0_1);LZYMTH(3,0,1,_mt_3_0_1);
 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);}

