

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ __ADArray_12;
extern OBJ _ADArray_14(OBJ,OBJ,OBJ);extern OBJ __ADArray_14;
extern OBJ _ADArray_15(OBJ,OBJ,OBJ);extern OBJ __ADArray_15;
extern OBJ _ADArray_16(OBJ,OBJ,OBJ);extern OBJ __ADArray_16;
extern OBJ _ADArray_20(OBJ,OBJ);extern OBJ __ADArray_20;
extern OBJ _ADArray_21(OBJ,OBJ);extern OBJ __ADArray_21;
extern OBJ _ADArray_23(OBJ);extern OBJ __ADArray_23;

#include "Char.h"

#include "Bitset.h"

#include "Array.h"

#include "NatConv.h"
extern OBJ _ADArrayReduce_5(OBJ,OBJ,OBJ);extern OBJ __ADArrayReduce_5;
extern OBJ _ADArrayReduce_6(OBJ,OBJ,OBJ);extern OBJ __ADArrayReduce_6;

#include "Denotation.h"

#include "Int.h"

#include "Real.h"
extern OBJ _ATable_2(OBJ);OBJ __ATable_2; /* asTable */
extern OBJ _ATable_3(OBJ);OBJ __ATable_3; /* asTable? */
extern OBJ _ATable_4(OBJ);OBJ __ATable_4; /* asDArray */
extern OBJ _ATable_6(OBJ);OBJ __ATable_6; /* {} */
extern OBJ _ATable_7(OBJ);OBJ __ATable_7; /* {}? */
extern TUP2 _ATable_8(OBJ,OBJ);OBJ __ATable_8; /* incl */
extern OBJ _ATable_9(OBJ);OBJ __ATable_9; /* toStatic */
OBJ __ATable_10; /* {},1 */
extern OBJ _ATable_11(OBJ,OBJ,OBJ);OBJ __ATable_11; /* def */
extern OBJ _ATable_12(OBJ,OBJ);OBJ __ATable_12; /* + */
extern OBJ _ATable_13(OBJ,OBJ);OBJ __ATable_13; /* !? */
extern OBJ _ATable_14(OBJ,OBJ);OBJ __ATable_14; /* ! */
extern OBJ _ATable_15(OBJ,OBJ,OBJ);OBJ __ATable_15; /* upd */
extern OBJ _ATable_16(OBJ,OBJ,OBJ);OBJ __ATable_16; /* upd,1 */
extern OBJ _ATable_17(OBJ,OBJ,OBJ);OBJ __ATable_17; /* ` */
extern OBJ _ATable_21(OBJ,OBJ,OBJ);OBJ __ATable_21; /* `_dArray */
OBJ __ATable_22; /* `_dArray'22 */
OBJ __ATable_23; /* `_dArray'23 */
extern OBJ _ATable_24(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ATable_24; /* `_dArray'24 */
OBJ __ATable_25; /* `_dArray'25 */
OBJ __ATable_26; /* `'26 */

extern OBJ _ATable_2(OBJ x1) /* asTable */
{OBJ r;
 r=x1;
 return r;}

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

extern OBJ _ATable_4(OBJ x1) /* asDArray */
{OBJ r;
 r=x1;
 return r;}

extern OBJ _ATable_6(OBJ x1) /* {} */
{OBJ r;
 CPPRD(__ATable_10,1);
 r=__ATable_10;
 return r;}

extern OBJ _ATable_7(OBJ x1) /* {}? */
{OBJ r;
 r=_ADArray_23(x1);
 return r;}

extern TUP2 _ATable_8(OBJ x1,OBJ x2) /* incl */
{TUP2 r;
 {OBJ x5=FLD1(x2,3);
  {OBJ x6;OBJ x7;OBJ x8;OBJ x9;
   x6=x5;
   ANat_76(x6,__ANat_5,x7);
   if(ISTGPRM(x7,1)){
    r.c1=__ANat_8;
   }else{
    r.c1=x6;}
   r.c2=_ADArray_15(x2,r.c1,x1);}}
 return r;}
extern OBJ _ATable_8_c(OBJ x1,OBJ x2) /* incl */
{OBJ r;
 {TUP2 t=_ATable_8(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _ATable_9(OBJ x1) /* toStatic */
{OBJ r;
 r=x1;
 return r;}

extern OBJ _ATable_11(OBJ x1,OBJ x2,OBJ x3) /* def */
{OBJ r;
 r=_ADArray_15(x3,x1,x2);
 return r;}

extern OBJ _ATable_12(OBJ x1,OBJ x2) /* + */
{OBJ r;
 CPCLS(__ADArray_14,1);
 r=_ADArrayReduce_6(__ADArray_14,x1,x2);
 return r;}

extern OBJ _ATable_13(OBJ x1,OBJ x2) /* !? */
{OBJ r;
 r=_ADArray_21(x2,x1);
 return r;}

extern OBJ _ATable_14(OBJ x1,OBJ x2) /* ! */
{OBJ r;
 r=_ADArray_20(x2,x1);
 return r;}

extern OBJ _ATable_15(OBJ x1,OBJ x2,OBJ x3) /* upd */
{OBJ r;
 r=_ADArray_15(x3,x1,x2);
 return r;}

extern OBJ _ATable_16(OBJ x1,OBJ x2,OBJ x3) /* upd,1 */
{OBJ r;
 r=_ADArray_16(x1,x2,x3);
 return r;}

extern OBJ _ATable_17(OBJ x1,OBJ x2,OBJ x3) /* ` */
{OBJ r;
 CPCLS(__ATable_24,1);
 CPPRD(__ATable_25,1);
 CPPRD(__ATable_26,1);
 CPPRD(x1,1);
 {OBJ x4;OBJ x5;OBJ x6;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ATable_24,2))(__ATable_24,x1,x2);
  x5=_ADArrayReduce_5(x4,__ATable_25,x3);
  ADenotation_4(__ATable_26,x5,x6);
  ADenotation_4(x1,x6,r);}
 return r;}

extern OBJ _ATable_21(OBJ x1,OBJ x2,OBJ x3) /* `_dArray */
{OBJ r;
 CPCLS(__ATable_24,1);
 CPPRD(__ATable_25,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ATable_24,2))(__ATable_24,x1,x2);
  r=_ADArrayReduce_5(x4,__ATable_25,x3);}
 return r;}

extern OBJ _ATable_24(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* `_dArray'24 */
{OBJ r;
 CPPRD(__ATable_22,1);
 CPPRD(__ATable_23,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;OBJ x11;
  ANatConv_1(x3,x6);
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x4);
  ADenotation_4(__ATable_22,x5,x8);
  ADenotation_4(x7,x8,x9);
  ADenotation_4(__ATable_23,x9,x10);
  ADenotation_4(x6,x10,x11);
  ADenotation_4(x1,x11,r);}
 return r;}


init_ATable()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_ADArray();
 init_ANatMap();
 init_AOption();
 init_APair();
 init_ASeq();
 init_AString();
 init_AChar();
 init_ASet();
 init_ABitset();
 init_AArray();
 init_ANatConv();
 init_ADArrayReduce();
 init_ASetConv();
 init_ADenotation();
 init_AInt();
 init_AReal();
 init_ASeqConv();
 DEN("table:\n",__ATable_26);
 DEN("",__ATable_25);
 CLS(5,_ATable_24,__ATable_24);
 DEN(":",__ATable_23);
 DEN("\n",__ATable_22);
 CLS(3,_ATable_21,__ATable_21);
 CLS(3,_ATable_17,__ATable_17);
 CLS(3,_ATable_16,__ATable_16);
 CLS(3,_ATable_15,__ATable_15);
 CLS(2,_ATable_14,__ATable_14);
 CLS(2,_ATable_13,__ATable_13);
 CLS(2,_ATable_12,__ATable_12);
 CLS(3,_ATable_11,__ATable_11);
 CLS(1,_ATable_9,__ATable_9);
 CLS(2,_ATable_8_c,__ATable_8);
 CLS(1,_ATable_7,__ATable_7);
 CLS(1,_ATable_6,__ATable_6);
 CLS(1,_ATable_4,__ATable_4);
 CLS(1,_ATable_3,__ATable_3);
 CLS(1,_ATable_2,__ATable_2);
 CPPRD(__ADArray_12,1);
 __ATable_10=__ADArray_12;}

