

#include "BUILTIN.h"
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;

#include "Nat.h"

#include "NatConv.h"

#include "Denotation.h"
extern OBJ __ALexem_25;
extern OBJ __ALexem_26;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASeqCompare_2(OBJ,OBJ,OBJ);extern OBJ __ASeqCompare_2;
extern OBJ _ASeqCompare_3(OBJ,OBJ,OBJ);extern OBJ __ASeqCompare_3;
extern OBJ _ASeqConv_3(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ASeqConv_3;

#include "Char.h"
extern OBJ __ARelCmp_7;

#include "Int.h"

#include "Real.h"
OBJ __AFct_2; /* noFct */
extern OBJ _AFct_3(OBJ);OBJ __AFct_3; /* noFct? */
extern OBJ _AFct_4(OBJ);OBJ __AFct_4; /* var */
extern OBJ _AFct_5(OBJ);OBJ __AFct_5; /* var? */
extern OBJ _AFct_6(OBJ);OBJ __AFct_6; /* id */
extern OBJ _AFct_7(OBJ);OBJ __AFct_7; /* nonCartVar */
extern OBJ _AFct_8(OBJ);OBJ __AFct_8; /* nonCartVar? */
extern OBJ _AFct_10(OBJ,OBJ);OBJ __AFct_10; /* funct */
extern OBJ _AFct_11(OBJ);OBJ __AFct_11; /* funct? */
extern OBJ _AFct_12(OBJ);OBJ __AFct_12; /* res */
extern OBJ _AFct_13(OBJ);OBJ __AFct_13; /* arg */
extern OBJ _AFct_14(OBJ);OBJ __AFct_14; /* cart */
extern OBJ _AFct_15(OBJ);OBJ __AFct_15; /* cart? */
extern OBJ _AFct_16(OBJ);OBJ __AFct_16; /* elems */
extern OBJ _AFct_17(OBJ);OBJ __AFct_17; /* sort */
extern OBJ _AFct_18(OBJ);OBJ __AFct_18; /* sort? */
extern OBJ _AFct_19(OBJ);OBJ __AFct_19; /* object */
extern OBJ _AFct_21(OBJ,OBJ,OBJ);OBJ __AFct_21; /* = */
extern OBJ _AFct_22(OBJ,OBJ,OBJ);OBJ __AFct_22; /* < */
extern OBJ _AFct_23(OBJ,OBJ);OBJ __AFct_23; /* ` */
OBJ __AFct_24; /* anyFct */
extern OBJ _AFct_44(OBJ);OBJ __AFct_44; /* flatCart */
extern OBJ _AFct_45(OBJ,OBJ,OBJ);OBJ __AFct_45; /* `,1 */
OBJ __AFct_46; /* `,1'46 */
OBJ __AFct_47; /* `,1'47 */
OBJ __AFct_48; /* `,1'48 */
OBJ __AFct_49; /* `,1'49 */
OBJ __AFct_50; /* `,1'50 */
OBJ __AFct_51; /* `,1'51 */
OBJ __AFct_52; /* `,1'52 */
OBJ __AFct_53; /* flatCart'53 */

extern OBJ _AFct_3(OBJ x1) /* noFct? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_4(OBJ x1) /* var */
{OBJ r;
 PRDF(1,4,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AFct_5(OBJ x1) /* var? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,4))){
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_6(OBJ x1) /* id */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,4)||ISTGPRD(x1,3))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRD(x1);
   }else{
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("Fct at <unknown> : undefined selection id\'Fct:fct->nat");}
 return r;}

extern OBJ _AFct_7(OBJ x1) /* nonCartVar */
{OBJ r;
 PRDF(1,3,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AFct_8(OBJ x1) /* nonCartVar? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,3))){
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_10(OBJ x1,OBJ x2) /* funct */
{OBJ r;
 PRD(2,2,r);FLD(r,1)=x1;FLD(r,2)=x2;
 return r;}

extern OBJ _AFct_11(OBJ x1) /* funct? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,2))){
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_12(OBJ x1) /* res */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,2))){
  {OBJ x3=FLD(x1,2);
   if(EXPRD(x1,1)){
    r=x3;
    FREE(FLD(x1,1),1);DSPRDF(x1);
   }else{
    COPY(x3,1);
    r=x3;
    FRPRD(x1,1);}}
 }else{
  HLT("Fct at <unknown> : undefined selection res\'Fct:fct->fct");}
 return r;}

extern OBJ _AFct_13(OBJ x1) /* arg */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,2))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    FREE(FLD(x1,2),1);DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("Fct at <unknown> : undefined selection arg\'Fct:fct->fct");}
 return r;}

extern OBJ _AFct_14(OBJ x1) /* cart */
{OBJ r;
 PRD(1,1,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AFct_15(OBJ x1) /* cart? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  if(EXPRD(x1,1)){
   FREE(FLD(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_16(OBJ x1) /* elems */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("Fct at <unknown> : undefined selection elems\'Fct:fct->seq");}
 return r;}

extern OBJ _AFct_17(OBJ x1) /* sort */
{OBJ r;
 PRD(1,0,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AFct_18(OBJ x1) /* sort? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,0))){
  if(EXPRD(x1,1)){
   FREE(FLD(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AFct_19(OBJ x1) /* object */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,0))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("Fct at <unknown> : undefined selection object\'Fct:fct->obj");}
 return r;}

extern OBJ _AFct_21(OBJ x1,OBJ x2,OBJ x3) /* = */
{OBJ r;
 if(ISPRD(x2)&&(ISTGPRD(x2,2))){
  {OBJ x133=FLD(x2,1);OBJ x134=FLD(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x133,1);COPY(x134,1);
    FRPRD(x2,1);}
   if(ISPRD(x3)&&(ISTGPRD(x3,2))){
    {OBJ x142=FLD(x3,1);OBJ x143=FLD(x3,2);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x142,1);COPY(x143,1);
      FRPRD(x3,1);}
     CPCLS(__AFct_21,1);
     {OBJ x144;OBJ x145;
      x144=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFct_21,1))(__AFct_21,x1);
      CPCLS(x144,1);
      x145=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x144,2))(x144,x133,x142);
      if(ISTGPRM(x145,1)){
       r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x144,2))(x144,x134,x143);
      }else{
       FREE(x134,1);
       FREE(x143,1);
       FRCLS(x144,1);
       r=__ABUILTIN_3;}}}
   }else{
    FRCLS(x1,1);
    FREE(x3,1);
    FREE(x133,1);
    FREE(x134,1);
    r=__ABUILTIN_3;}}
 }else{
  if(ISPRD(x2)&&(ISTGPRD(x2,1))){
   {OBJ x146=FLD(x2,1);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     COPY(x146,1);
     FRPRD(x2,1);}
    if(ISPRD(x3)&&(ISTGPRD(x3,1))){
     {OBJ x147=FLD(x3,1);
      if(EXPRD(x3,1)){
       DSPRDF(x3);
      }else{
       COPY(x147,1);
       FRPRD(x3,1);}
      CPCLS(__AFct_21,1);
      {OBJ x148;
       x148=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFct_21,1))(__AFct_21,x1);
       r=_ASeqCompare_3(x148,x146,x147);}}
    }else{
     FRCLS(x1,1);
     FREE(x3,1);
     FREE(x146,1);
     r=__ABUILTIN_3;}}
  }else{
   if(ISPRD(x2)&&(ISTGPRD(x2,0))){
    {OBJ x149=FLD(x2,1);
     if(EXPRD(x2,1)){
      DSPRDF(x2);
     }else{
      COPY(x149,1);
      FRPRD(x2,1);}
     if(ISPRD(x3)&&(ISTGPRD(x3,0))){
      {OBJ x150=FLD(x3,1);
       if(EXPRD(x3,1)){
	DSPRDF(x3);
       }else{
	COPY(x150,1);
	FRPRD(x3,1);}
       r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x149,x150);}
     }else{
      FRCLS(x1,1);
      FREE(x3,1);
      FREE(x149,1);
      r=__ABUILTIN_3;}}
   }else{
    if(ISPRD(x2)&&(ISTGPRD(x2,3))){
     {OBJ x151=FLD(x2,1);
      if(EXPRD(x2,1)){
       DSPRDF(x2);
      }else{
       FRPRD(x2,1);}
      FRCLS(x1,1);
      if(ISPRD(x3)&&(ISTGPRD(x3,3))){
       {OBJ x152=FLD(x3,1);
	if(EXPRD(x3,1)){
	 DSPRDF(x3);
	}else{
	 FRPRD(x3,1);}
	ANat_76(x151,x152,r);}
      }else{
       FREE(x3,1);
       r=__ABUILTIN_3;}}
    }else{
     FRCLS(x1,1);
     {OBJ x154;OBJ x156;
      if(ISPRM(x2)){
       x154=__ABUILTIN_3;
      }else{
       x154=__ABUILTIN_5;}
      if(ISTGPRM(x154,1)){
       if(ISPRD(x3)&&(ISTGPRD(x3,4))){
	x156=__ABUILTIN_5;
       }else{
	x156=__ABUILTIN_3;}
      }else{
       x156=__ABUILTIN_3;}
      if(ISTGPRM(x156,1)){
       if(ISPRM(x2)){
	HLT("Fct at <unknown> : undefined selection id\'Fct:fct->nat");
       }else{
	{OBJ x157=FLD(x2,1);
	 if(EXPRD(x2,1)){
	  DSPRDF(x2);
	 }else{
	  FRPRD(x2,1);}
	 {OBJ x160;
	  if(ISPRD(x3)&&(ISTGPRD(x3,4)||ISTGPRD(x3,3))){
	   {OBJ x158=FLD(x3,1);
	    if(EXPRD(x3,1)){
	     x160=x158;
	     DSPRD(x3);
	    }else{
	     x160=x158;
	     FRPRD(x3,1);}}
	  }else{
	   HLT("Fct at <unknown> : undefined selection id\'Fct:fct->nat");}
	  ANat_76(x157,x160,r);}}}
      }else{
       FREE(x2,1);
       FREE(x3,1);
       r=__ABUILTIN_3;}}}}}}
 return r;}

extern OBJ _AFct_22(register OBJ x1,register OBJ x2,register OBJ x3) /* < */
{OBJ r;
 for(;;){
  if(ISPRM(x2)){
   HLT("Fct at <39,12-60,29> : missing else in <\'Fct:(obj**obj->bool)->fct**fct->bool");
  }else{
   switch(TGPRD(x2)){
    case 1:
     {OBJ x176=FLD(x2,1);
      if(EXPRD(x2,1)){
       DSPRDF(x2);
      }else{
       COPY(x176,1);
       FRPRD(x2,1);}
      if(ISPRD(x3)&&(ISTGPRD(x3,0))){
       if(EXPRD(x3,1)){
	FREE(FLD(x3,1),1);DSPRDF(x3);
       }else{
	DCPRD(x3,1);}
       FRCLS(x1,1);
       FREE(x176,1);
       r=__ABUILTIN_3;
      }else{
       if(ISPRD(x3)&&(ISTGPRD(x3,1))){
	{OBJ x178=FLD(x3,1);
	 if(EXPRD(x3,1)){
	  COPY(x178,1);
	  DSPRDF(x3);
	 }else{
	  COPY(x178,2);
	  FRPRD(x3,1);}
	 COPY(x176,1);
	 {OBJ x179;OBJ x180;OBJ x181;
	  x179=_ASeq_52(x178,__ANat_5);
	  x180=_ASeq_52(x176,__ANat_5);
	  ANat_80(x180,x179,x181);
	  if(ISTGPRM(x181,1)){
	   FRCLS(x1,1);
	   FREE(x176,1);
	   FREE(x178,1);
	   r=__ABUILTIN_5;
	  }else{
	   CPCLS(__AFct_22,1);
	   CPCLS(__ARelCmp_7,1);
	   {OBJ x182;OBJ x183;
	    x182=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFct_22,1))(__AFct_22,x1);
	    x183=_ASeqCompare_2(x182,x176,x178);
	    r=(*(OBJ(*)(OBJ,OBJ))METHOD(__ARelCmp_7,1))(__ARelCmp_7,x183);}}}}
       }else{
	FRCLS(x1,1);
	FREE(x3,1);
	FREE(x176,1);
	r=__ABUILTIN_5;}}}break;
    case 2:
     {OBJ x184=FLD(x2,1);OBJ x185=FLD(x2,2);
      if(EXPRD(x2,1)){
       DSPRDF(x2);
      }else{
       COPY(x184,1);COPY(x185,1);
       FRPRD(x2,1);}
      if(ISPRD(x3)&&(ISTGPRD(x3,1)||ISTGPRD(x3,0))){
       if(EXPRD(x3,1)){
	DSPRD(x3);
       }else{
	DCPRD(x3,1);}
       FRCLS(x1,1);
       FREE(x184,1);
       FREE(x185,1);
       r=__ABUILTIN_3;
      }else{
       if(ISPRD(x3)&&(ISTGPRD(x3,2))){
	{OBJ x188=FLD(x3,1);OBJ x189=FLD(x3,2);
	 if(EXPRD(x3,1)){
	  COPY(x188,1);
	  DSPRDF(x3);
	 }else{
	  COPY(x188,2);COPY(x189,1);
	  FRPRD(x3,1);}
	 CPCLS(x1,1);
	 COPY(x184,1);
	 {OBJ x190;
	  x190=_AFct_22(x1,x184,x188);
	  if(ISTGPRM(x190,1)){
	   FRCLS(x1,1);
	   FREE(x184,1);
	   FREE(x185,1);
	   FREE(x188,1);
	   FREE(x189,1);
	   r=__ABUILTIN_5;
	  }else{
	   CPCLS(x1,1);
	   {OBJ x191;
	    x191=_AFct_22(x1,x188,x184);
	    if(ISTGPRM(x191,1)){
	     FRCLS(x1,1);
	     FREE(x185,1);
	     FREE(x189,1);
	     r=__ABUILTIN_3;
	    }else{
	     x2=x185;x3=x189;continue;}}}}}
       }else{
	FRCLS(x1,1);
	FREE(x3,1);
	FREE(x184,1);
	FREE(x185,1);
	r=__ABUILTIN_3;}}}break;
    case 3:
     {OBJ x192=FLD(x2,1);
      if(EXPRD(x2,1)){
       DSPRDF(x2);
      }else{
       FRPRD(x2,1);}
      FRCLS(x1,1);
      if(ISPRD(x3)&&(ISTGPRD(x3,4))){
       if(EXPRD(x3,1)){
	DSPRDF(x3);
       }else{
	DCPRD(x3,1);}
       r=__ABUILTIN_5;
      }else{
       if(ISPRD(x3)&&(ISTGPRD(x3,3))){
	{OBJ x194=FLD(x3,1);
	 if(EXPRD(x3,1)){
	  DSPRDF(x3);
	 }else{
	  FRPRD(x3,1);}
	 ANat_80(x192,x194,r);}
       }else{
	FREE(x3,1);
	r=__ABUILTIN_3;}}}break;
    case 4:
     if(EXPRD(x2,1)){
      DSPRDF(x2);
     }else{
      DCPRD(x2,1);}
     FRCLS(x1,1);
     FREE(x3,1);
     r=__ABUILTIN_3;break;
    default: 
     {OBJ x174=FLD(x2,1);
      if(EXPRD(x2,1)){
       DSPRDF(x2);
      }else{
       COPY(x174,1);
       FRPRD(x2,1);}
      if(ISPRD(x3)&&(ISTGPRD(x3,0))){
       {OBJ x175=FLD(x3,1);
	if(EXPRD(x3,1)){
	 DSPRDF(x3);
	}else{
	 COPY(x175,1);
	 FRPRD(x3,1);}
	r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x174,x175);}
      }else{
       FRCLS(x1,1);
       FREE(x3,1);
       FREE(x174,1);
       r=__ABUILTIN_5;}}}}
  break;}
 return r;}

extern OBJ _AFct_23(OBJ x1,OBJ x2) /* ` */
{OBJ r;
 r=_AFct_45(x1,__ABUILTIN_3,x2);
 return r;}

extern OBJ _AFct_44(register OBJ x1) /* flatCart */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRD(x1)&&(ISTGPRD(x1,1))){
   {OBJ x93=FLD(x1,1);FLAG x_x1=EXPRD(x1,1);
    if(x_x1){
    }else{
     COPY(x93,1);}
    if(ISPRM(x93)){
     if(x_x1){
      DSPRDF(x1);
     }else{
      FRPRD(x1,1);}
     COPY(__AFct_53,1);
     *p1=__AFct_53;
    }else{
     {OBJ x94=FLD1(x93,1);OBJ x95=FLD1(x93,2);FLAG x_x93=EXPRD(x93,1);
      if(x_x93){
      }else{
       COPY(x94,1);COPY(x95,1);}
      {OBJ x97;
       if(x_x1){
	RPRD(x1,x97);FLD(x97,1)=x95;
       }else{
	FRPRD(x1,1);PRD(1,1,x97);FLD(x97,1)=x95;}
       if(ISPRD(x94)&&(ISTGPRD(x94,1))){
	{OBJ x98=FLD(x94,1);
	 if(EXPRD(x94,1)){
	  if(x_x93){
	   DSPRDF(x93);
	  }else{
	   FRPRD(x93,1);}
	  DSPRDF(x94);
	 }else{
	  COPY(x98,1);
	  if(x_x93){
	   DSPRDF(x93);
	  }else{
	   FRPRD(x93,1);}
	  FRPRD(x94,1);}
	 CPCLS(__AFct_44,1);
	 {OBJ x99;OBJ x100;
	  x99=_ASeqMap_3(__AFct_44,x98);
	  x100=_AFct_44(x97);
	  if(ISPRD(x100)&&(ISTGPRD(x100,1))){
	   {OBJ x101=FLD(x100,1);
	    if(EXPRD(x100,1)){
	     {
	      RPRD(x100,*p1);
	      FLD(*p1,1)=_ASeq_26(x99,x101);}
	    }else{
	     COPY(x101,1);
	     {
	      FRPRD(x100,1);PRD(1,1,*p1);
	      FLD(*p1,1)=_ASeq_26(x99,x101);}}}
	  }else{
	   HLT("Fct at <unknown> : undefined selection elems\'Fct:fct->seq");}}}
       }else{
	{OBJ x103;OBJ x104;
	 x103=_AFct_44(x94);
	 x104=_AFct_44(x97);
	 if(ISPRD(x104)&&(ISTGPRD(x104,1))){
	  {OBJ x105=FLD(x104,1);
	   if(EXPRD(x104,1)){
	    {OBJ x106;
	     if(x_x93){
	      RSOME(x93,x106);FLD1(x106,1)=x103;FLD1(x106,2)=x105;
	     }else{
	      FRPRD(x93,1);PRD1(2,x106);FLD1(x106,1)=x103;FLD1(x106,2)=x105;}
	     RPRD(x104,*p1);FLD(*p1,1)=x106;}
	   }else{
	    COPY(x105,1);
	    {OBJ x106;
	     if(x_x93){
	      RSOME(x93,x106);FLD1(x106,1)=x103;FLD1(x106,2)=x105;
	     }else{
	      FRPRD(x93,1);PRD1(2,x106);FLD1(x106,1)=x103;FLD1(x106,2)=x105;}
	     FRPRD(x104,1);PRD(1,1,*p1);FLD(*p1,1)=x106;}}}
	 }else{
	  HLT("Fct at <unknown> : undefined selection elems\'Fct:fct->seq");}}}}}}}
  }else{
   if(ISPRD(x1)&&(ISTGPRD(x1,2))){
    {OBJ x107=FLD(x1,1);OBJ x108=FLD(x1,2);
     if(EXPRD(x1,1)){
      {OBJ x110;
       x110=_AFct_44(x107);
       RPRD(x1,*p1);FLD(*p1,1)=x110;
       x1=x108;p1=&FLD(*p1,2);continue;}
     }else{
      COPY(x107,1);COPY(x108,1);
      {OBJ x110;
       x110=_AFct_44(x107);
       FRPRD(x1,1);PRD(2,2,*p1);FLD(*p1,1)=x110;
       x1=x108;p1=&FLD(*p1,2);continue;}}}
   }else{
    *p1=x1;}}
  break;}
 return r;}

extern OBJ _AFct_45(OBJ x1,OBJ x2,OBJ x3) /* `,1 */
{OBJ r;
 if(ISPRM(x3)){
  FRCLS(x1,1);
  CPPRD(__AFct_52,1);
  r=__AFct_52;
 }else{
  switch(TGPRD(x3)){
   case 3:
    {OBJ x209=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      FRPRD(x3,1);}
     FRCLS(x1,1);
     CPPRD(__AFct_49,1);
     CPPRD(__AFct_50,1);
     {OBJ x210;OBJ x211;
      ANatConv_1(x209,x210);
      ADenotation_4(x210,__AFct_49,x211);
      ADenotation_4(__AFct_50,x211,r);}}break;
   case 4:
    {OBJ x212=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      FRPRD(x3,1);}
     FRCLS(x1,1);
     CPPRD(__AFct_49,1);
     CPPRD(__AFct_51,1);
     {OBJ x213;OBJ x214;
      ANatConv_1(x212,x213);
      ADenotation_4(x213,__AFct_49,x214);
      ADenotation_4(__AFct_51,x214,r);}}break;
   case 2:
    {OBJ x215=FLD(x3,1);OBJ x216=FLD(x3,2);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x215,1);COPY(x216,1);
      FRPRD(x3,1);}
     if(ISTGPRM(x2,1)){
      {OBJ x221;OBJ x218;OBJ x222;OBJ x223;OBJ x224;OBJ x225;
       if(ISPRD(x215)&&(ISTGPRD(x215,2))){
	CPCLS(x1,1);
	CPPRD(__AFct_47,1);
	CPPRD(__AFct_49,1);
	CPPRD(__ALexem_25,1);
	x221=__ABUILTIN_5;
       }else{
	CPCLS(x1,1);
	CPPRD(__AFct_47,1);
	CPPRD(__AFct_49,1);
	CPPRD(__ALexem_25,1);
	x221=__ABUILTIN_3;}
       x218=_AFct_45(x1,__ABUILTIN_3,x216);
       ADenotation_4(x218,__AFct_49,x222);
       x223=_AFct_45(x1,x221,x215);
       ADenotation_4(__ALexem_25,x222,x224);
       ADenotation_4(x223,x224,x225);
       ADenotation_4(__AFct_47,x225,r);}
     }else{
      {OBJ x230;OBJ x227;OBJ x231;OBJ x232;OBJ x233;OBJ x234;
       if(ISPRD(x215)&&(ISTGPRD(x215,2))){
	CPCLS(x1,1);
	CPPRD(__AFct_48,2);
	CPPRD(__ALexem_25,1);
	x230=__ABUILTIN_5;
       }else{
	CPCLS(x1,1);
	CPPRD(__AFct_48,2);
	CPPRD(__ALexem_25,1);
	x230=__ABUILTIN_3;}
       x227=_AFct_45(x1,__ABUILTIN_3,x216);
       ADenotation_4(x227,__AFct_48,x231);
       x232=_AFct_45(x1,x230,x215);
       ADenotation_4(__ALexem_25,x231,x233);
       ADenotation_4(x232,x233,x234);
       ADenotation_4(__AFct_48,x234,r);}}}break;
   case 0:
    {OBJ x235=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x235,1);
      FRPRD(x3,1);}
     r=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x235);}break;
   default: 
    {OBJ x199=FLD(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x199,1);
      FRPRD(x3,1);}
     if(ISPRM(x199)){
      FRCLS(x1,1);
      CPPRD(__AFct_46,1);
      r=__AFct_46;
     }else{
      CPCLS(__AFct_45,1);
      {OBJ x202;
       x202=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AFct_45,2))(__AFct_45,x1,__ABUILTIN_5);
       if(ISTGPRM(x2,1)){
	CPPRD(__AFct_47,1);
	CPPRD(__AFct_48,2);
	CPPRD(__AFct_49,1);
	CPPRD(__ALexem_26,1);
	{OBJ x204;OBJ x205;
	 x204=_ASeqConv_3(__AFct_48,__ALexem_26,__AFct_48,x202,x199);
	 ADenotation_4(x204,__AFct_49,x205);
	 ADenotation_4(__AFct_47,x205,r);}
       }else{
	CPPRD(__AFct_48,4);
	CPPRD(__ALexem_26,1);
	{OBJ x207;OBJ x208;
	 x207=_ASeqConv_3(__AFct_48,__ALexem_26,__AFct_48,x202,x199);
	 ADenotation_4(x207,__AFct_48,x208);
	 ADenotation_4(__AFct_48,x208,r);}}}}}}}
 return r;}




init_AFct()
{
 static int visited=0; if(visited) return; visited=1;
 init_ASeq();
 init_ANat();
 init_AOption();
 init_ANatConv();
 init_ADenotation();
 init_ALexem();
 init_ASeqMap();
 init_ASeqReduce();
 init_ASeqCompare();
 init_ASeqConv();
 init_AString();
 init_AChar();
 init_ARelCmp();
 init_AInt();
 init_AReal();
 CLS(2,_AFct_23,__AFct_23);
 CLS(3,_AFct_22,__AFct_22);
 CLS(3,_AFct_21,__AFct_21);
 DEN("no Fct",__AFct_52);
 DEN("var(",__AFct_51);
 CLS(1,_AFct_19,__AFct_19);
 DEN("nonCartVar(",__AFct_50);
 CLS(1,_AFct_18,__AFct_18);
 DEN(")",__AFct_49);
 CLS(1,_AFct_17,__AFct_17);
 DEN("",__AFct_48);
 CLS(1,_AFct_16,__AFct_16);
 DEN("(",__AFct_47);
 CLS(1,_AFct_15,__AFct_15);
 DEN("()",__AFct_46);
 CLS(1,_AFct_14,__AFct_14);
 CLS(1,_AFct_13,__AFct_13);
 CLS(3,_AFct_45,__AFct_45);
 CLS(1,_AFct_12,__AFct_12);
 CLS(1,_AFct_44,__AFct_44);
 CLS(1,_AFct_11,__AFct_11);
 CLS(2,_AFct_10,__AFct_10);
 CLS(1,_AFct_8,__AFct_8);
 CLS(1,_AFct_7,__AFct_7);
 CLS(1,_AFct_6,__AFct_6);
 CLS(1,_AFct_5,__AFct_5);
 CLS(1,_AFct_4,__AFct_4);
 CLS(1,_AFct_3,__AFct_3);
 PRM1(__AFct_2);
 PRDF(1,4,__AFct_24);FLD(__AFct_24,1)=__ANat_55;
 PRDF(1,1,__AFct_53);FLD(__AFct_53,1)=__ASeq_6;}

