

#include "BUILTIN.h"
extern OBJ _ADArrayReduce_6(OBJ,OBJ,OBJ);extern OBJ __ADArrayReduce_6;
extern OBJ _AImpExpEntry_6(OBJ);extern OBJ __AImpExpEntry_6;
extern OBJ _AImpExpEntry_10(OBJ);extern OBJ __AImpExpEntry_10;
extern OBJ _AImpExpEntry_92(OBJ);extern OBJ __AImpExpEntry_92;
extern OBJ _AImpExpEntry_128(OBJ);extern OBJ __AImpExpEntry_128;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _ASeq_40(OBJ,OBJ);extern OBJ __ASeq_40;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;

#include "Nat.h"
extern OBJ _ADArray_20(OBJ,OBJ);extern OBJ __ADArray_20;
extern OBJ _AAnalyzedGlobSig_8(OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_8;
extern OBJ _AAnalyzedGlobSig_12(OBJ);extern OBJ __AAnalyzedGlobSig_12;
extern OBJ _AAnalyzedGlobSig_56(OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_56;
extern OBJ _AAnalyzedGlobSig_65(OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_65;
extern OBJ _AName_11(OBJ);extern OBJ __AName_11;
extern OBJ _AName_12(OBJ);extern OBJ __AName_12;
extern OBJ _AName_31(OBJ,OBJ);extern OBJ __AName_31;

#include "Array.h"
extern OBJ __AOcPos_35;
extern OBJ _AImpDecl4SigAna_4(OBJ,OBJ,OBJ);extern OBJ __AImpDecl4SigAna_4;
extern OBJ _AImpDecl4SigAna_50(OBJ,OBJ);extern OBJ __AImpDecl4SigAna_50;
extern OBJ _AName4SigAna_5(OBJ,OBJ);extern OBJ __AName4SigAna_5;
extern OBJ _AName4SigAna_31(OBJ,OBJ);extern OBJ __AName4SigAna_31;
extern OBJ _AName4SigAna_59(OBJ,OBJ);extern OBJ __AName4SigAna_59;
extern OBJ __AOption_5;
extern OBJ __APair_2;
extern OBJ _APair_4(OBJ);extern OBJ __APair_4;
extern OBJ _APair_5(OBJ);extern OBJ __APair_5;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ARep_27(OBJ,OBJ);extern OBJ __ARep_27;
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;

#include "Bitset.h"

#include "Char.h"
extern OBJ __AObjects_30;
extern OBJ _ASeqFilter_2(OBJ,OBJ);extern OBJ __ASeqFilter_2;
extern OBJ _AGlobSig_46(OBJ);extern OBJ __AGlobSig_46;
extern OBJ _AGlobSig_55(OBJ);extern OBJ __AGlobSig_55;
extern OBJ _AGlobSig_56(OBJ);extern OBJ __AGlobSig_56;
extern OBJ _ASeqIndex_2(OBJ,OBJ);extern OBJ __ASeqIndex_2;
extern OBJ __AGlobSigImpl_22;
extern OBJ _ASeqZip_4(OBJ,OBJ,OBJ);extern OBJ __ASeqZip_4;

#include "Denotation.h"
extern OBJ _AMap_22(OBJ,OBJ);extern OBJ __AMap_22;

#include "NatConv.h"

#include "Real.h"
extern OBJ _AAnalyzedGlobSigH_1(OBJ,OBJ);extern OBJ __AAnalyzedGlobSigH_1;

#include "Int.h"
extern OBJ _AAGSig_1(OBJ);OBJ __AAGSig_1; /* getInternalNames */
extern OBJ _AAGSig_2(OBJ);OBJ __AAGSig_2; /* getExternalNames */
extern OBJ _AAGSig_3(OBJ);OBJ __AAGSig_3; /* getStructs */
extern OBJ _AAGSig_4(OBJ);OBJ __AAGSig_4; /* getLaws */
extern OBJ _AAGSig_5(OBJ,OBJ);OBJ __AAGSig_5; /* paramNo */
extern OBJ _AAGSig_6(OBJ);OBJ __AAGSig_6; /* structPos */
extern OBJ _AAGSig_7(OBJ,OBJ);OBJ __AAGSig_7; /* importPos */
extern OBJ _AAGSig_8(OBJ,OBJ);OBJ __AAGSig_8; /* formalParams */
extern OBJ _AAGSig_9(OBJ,OBJ);OBJ __AAGSig_9; /* parameter? */
extern OBJ _AAGSig_10(OBJ,OBJ);OBJ __AAGSig_10; /* impl */
extern TUP2 _AAGSig_11(OBJ,OBJ);OBJ __AAGSig_11; /* fct */
extern OBJ _AAGSig_12(OBJ,OBJ);OBJ __AAGSig_12; /* freeType */
extern OBJ _AAGSig_13(OBJ,OBJ);OBJ __AAGSig_13; /* isApplied? */
extern OBJ _AAGSig_14(OBJ,OBJ);OBJ __AAGSig_14; /* uninst? */
extern OBJ _AAGSig_15(OBJ,OBJ,OBJ);OBJ __AAGSig_15; /* inPragma? */
extern OBJ _AAGSig_23(OBJ,OBJ);OBJ __AAGSig_23; /* fctFormal */
extern OBJ _AAGSig_25(OBJ,OBJ);OBJ __AAGSig_25; /* formalParamNameFct */
extern OBJ _AAGSig_26(OBJ,OBJ,OBJ);OBJ __AAGSig_26; /* getInternalNames'26 */
extern OBJ _AAGSig_27(OBJ,OBJ,OBJ);OBJ __AAGSig_27; /* getExternalNames'27 */
extern OBJ _AAGSig_28(OBJ,OBJ,OBJ,OBJ);OBJ __AAGSig_28; /* getExternalNames'28 */
extern OBJ _AAGSig_29(OBJ,OBJ,OBJ);OBJ __AAGSig_29; /* getExternalNames'29 */
extern OBJ _AAGSig_30(OBJ,OBJ,OBJ);OBJ __AAGSig_30; /* getStructs'30 */
OBJ __AAGSig_31; /* importPos'31 */
OBJ __AAGSig_32; /* formalParamNameFct'32 */
extern TUP2 _AAGSig_33(OBJ,OBJ,OBJ);OBJ __AAGSig_33; /* formalParamNameFct'33 */
extern OBJ _AAGSig_34(OBJ);OBJ __AAGSig_34; /* isApplied?'34 */
extern OBJ _AAGSig_35(OBJ,OBJ);OBJ __AAGSig_35; /* isApplied?'35 */
extern OBJ _AAGSig_36(OBJ,OBJ);OBJ __AAGSig_36; /* inPragma?'36 */
extern OBJ _AAGSig_37(OBJ,OBJ);OBJ __AAGSig_37; /* inPragma?'37 */
extern OBJ _AAGSig_38(OBJ,OBJ);OBJ __AAGSig_38; /* inPragma?'38 */
extern OBJ _AAGSig_39(OBJ,OBJ,OBJ);OBJ __AAGSig_39; /* inPragma?'39 */

extern OBJ _AAGSig_1(OBJ x1) /* getInternalNames */
{OBJ r;
 CPCLS(__AAGSig_26,1);
 {OBJ x2;
  x2=_AGlobSig_56(x1);
  r=_ADArrayReduce_6(__AAGSig_26,__ASeq_6,x2);}
 return r;}

extern OBJ _AAGSig_2(OBJ x1) /* getExternalNames */
{OBJ r;
 CPCLS(__AAGSig_29,1);
 {OBJ x2;
  x2=_AGlobSig_55(x1);
  r=_ADArrayReduce_6(__AAGSig_29,__ASeq_6,x2);}
 return r;}

extern OBJ _AAGSig_3(OBJ x1) /* getStructs */
{OBJ r;
 CPCLS(__AAGSig_30,1);
 {OBJ x2;
  x2=_AGlobSig_55(x1);
  r=_ADArrayReduce_6(__AAGSig_30,__ASeq_6,x2);}
 return r;}

extern OBJ _AAGSig_4(OBJ x1) /* getLaws */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,2))){
  {OBJ x13=FLD(x1,12);
   if(EXPRD(x1,1)){
    FLD(x1,12)=NIL;DSPRD(x1);
   }else{
    COPY(x13,1);
    FRPRD(x1,1);}
   CPCLS(__ARep_27,1);
   {OBJ x16;
    x16=x13;
    r=_AMap_22(__ARep_27,x16);}}
 }else{
  HLT("GlobSig at <unknown> : undefined selection laws\'GlobSig:globSig->map");}
 return r;}

extern OBJ _AAGSig_5(OBJ x1,OBJ x2) /* paramNo */
{OBJ r;
 FREE(x1,1);
 {OBJ x7;
  if(ISPRD(x2)&&(ISTGPRD(x2,4))){
   {OBJ x5=FLD(x2,3);
    if(EXPRD(x2,1)){
     x7=x5;
     DSPRDF(x2);
    }else{
     x7=x5;
     FRPRD(x2,1);}}
  }else{
   if(ISPRD(x2)&&(ISTGPRD(x2,7))){
    {OBJ x6=FLD(x2,1);
     if(EXPRD(x2,1)){
      x7=x6;
      DSPRDF(x2);
     }else{
      x7=x6;
      FRPRD(x2,1);}}
   }else{
    HLT("Name at <unknown> : undefined selection no\'Name:name->nat");}}
  ANat_4(x7,r);}
 return r;}

extern OBJ _AAGSig_6(OBJ x1) /* structPos */
{OBJ r;
 COPY(__AOcPos_35,1);
 FREE(x1,1);
 r=__AOcPos_35;
 return r;}

extern OBJ _AAGSig_7(OBJ x1,OBJ x2) /* importPos */
{OBJ r;
 COPY(__AAGSig_31,1);
 FREE(x1,1);
 r=__AAGSig_31;
 return r;}

extern OBJ _AAGSig_8(OBJ x1,OBJ x2) /* formalParams */
{OBJ r;
 {OBJ x3;
  x3=_AAGSig_25(x1,x2);
  {OBJ x4=FLD1(x3,1);
   if(EXPRD(x3,1)){
    r=x4;
    FREE(FLD1(x3,2),1);DSPRDF(x3);
   }else{
    COPY(x4,1);
    r=x4;
    FRPRD(x3,1);}}}
 return r;}

extern OBJ _AAGSig_9(OBJ x1,OBJ x2) /* parameter? */
{OBJ r;
 {OBJ x4;OBJ x12;
  if(ISPRD(x2)&&(ISTGPRD(x2,7))){
   x4=__ABUILTIN_5;
  }else{
   x4=__ABUILTIN_3;}
  if(ISTGPRM(x4,1)){
   x12=__ABUILTIN_5;
  }else{
   if(ISPRM(x2)){
    x12=__ABUILTIN_5;
   }else{
    if(ISPRD(x2)&&(ISTGPRD(x2,6)||ISTGPRD(x2,3))){
     x12=__ABUILTIN_5;
    }else{
     x12=__ABUILTIN_3;}}}
  if(ISTGPRM(x12,1)){
   FREE(x1,1);
   FREE(x2,1);
   r=__ABUILTIN_3;
  }else{
   r=_AAnalyzedGlobSig_65(x1,x2);}}
 return r;}

extern OBJ _AAGSig_10(OBJ x1,OBJ x2) /* impl */
{OBJ r;
 COPY(x2,1);
 {OBJ x3;
  x3=_AAnalyzedGlobSig_12(x2);
  if(ISTGPRM(x3,1)){
   FREE(x1,1);
   FREE(x2,1);
   r=__AGlobSigImpl_22;
  }else{
   if(ISPRD(x2)&&(ISTGPRD(x2,1))){
    r=_AAnalyzedGlobSig_56(x1,x2);
   }else{
    HLT("AGSig at <140,12-141,62> : missing else in impl\'AGSig:globSig**name->impl");}}}
 return r;}

extern TUP2 _AAGSig_11(OBJ x1,OBJ x2) /* fct */
{TUP2 r;
 if(ISPRD(x2)&&(ISTGPRD(x2,7)||ISTGPRD(x2,1))){
  r.c1=_AAnalyzedGlobSigH_1(x1,x2);
  r.c2=__AOption_5;
 }else{
  COPY(x1,1);
  COPY(x2,1);
  {OBJ x27;
   x27=_AAGSig_9(x1,x2);
   if(ISTGPRM(x27,1)){
    r.c1=_AAGSig_23(x1,x2);
    r.c2=__AOption_5;
   }else{
    COPY(x2,1);
    {OBJ x29;
     x29=_AAnalyzedGlobSig_12(x2);
     if(ISTGPRM(x29,1)){
      COPY(x1,1);
      COPY(x2,1);
      {
       r.c1=_AAnalyzedGlobSigH_1(x1,x2);
       PRD1(1,r.c2);
       FLD1(r.c2,1)=_AName4SigAna_5(x1,x2);}
     }else{
      HLT("AGSig at <152,12-153,52> : missing else in fct\'AGSig:globSig**name->fct**option");}}}}}
 return r;}
extern OBJ _AAGSig_11_c(OBJ x1,OBJ x2) /* fct */
{OBJ r;
 {TUP2 t=_AAGSig_11(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AAGSig_12(OBJ x1,OBJ x2) /* freeType */
{OBJ r;
 if(ISPRD(x2)&&(ISTGPRD(x2,1))){
  {OBJ x24=FLD(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    FRPRD(x2,1);}
   COPY(x1,1);
   {OBJ x25;OBJ x26;OBJ x27;
    x25=_AGlobSig_56(x1);
    x26=_AName4SigAna_59(x1,x24);
    x27=_ADArray_20(x25,x26);
    if(ISTGPRD(x27,0)){
     {OBJ x32=FLD(x27,5);
      if(EXPRD(x27,1)){
       r=x32;
       FLD(x27,5)=NIL;DSPRD(x27);
      }else{
       COPY(x32,1);
       r=x32;
       FRPRD(x27,1);}}
    }else{
     HLT("DeclEntry at <unknown> : undefined selection type\'DeclEntry:declE->impl");}}}
 }else{
  COPY(x2,1);
  {OBJ x33;OBJ x34;OBJ x35;OBJ x36;OBJ x37;OBJ x38;
   x33=_AGlobSig_55(x1);
   x34=_AName_12(x2);
   x35=_AName_11(x2);
   x36=_ADArray_20(x33,x34);
   x37=_AImpExpEntry_92(x36);
   x38=_ADArray_20(x37,x35);
   if(ISTGPRD(x38,0)){
    {OBJ x41=FLD(x38,3);
     if(EXPRD(x38,1)){
      r=x41;
      FLD(x38,3)=NIL;DSPRD(x38);
     }else{
      COPY(x41,1);
      r=x41;
      FRPRD(x38,1);}}
   }else{
    HLT("ImpExpEntry at <unknown> : undefined selection type\'ImpExpEntry:impDeclE->impl");}}}
 return r;}

extern OBJ _AAGSig_13(OBJ x1,OBJ x2) /* isApplied? */
{OBJ r;
 if(ISPRD(x2)&&(ISTGPRD(x2,1))){
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  FREE(x1,1);
  r=__ABUILTIN_5;
 }else{
  COPY(x1,1);
  COPY(x2,1);
  {OBJ x20;
   x20=_AName4SigAna_31(x2,x1);
   if(ISPRD(x2)&&(ISTGPRD(x2,2))){
    {OBJ x23=FLD(x2,3);
     CPCLS(__AAGSig_34,1);
     CPCLS(__AAGSig_35,1);
     CPCLS(__AImpExpEntry_6,1);
     {OBJ x24;OBJ x25;OBJ x26;OBJ x27;
      x24=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_35,1))(__AAGSig_35,x23);
      x25=_ASeqFilter_2(__AAGSig_34,x20);
      COPY(x25,1);
      x26=_ASeqMap_3(__AImpExpEntry_6,x25);
      x27=_ASeq_40(x24,x26);
      if(ISTGPRM(x27,1)){
       FREE(x1,1);
       if(EXPRD(x2,1)){
	DSPRDF(x2);
       }else{
	DCPRD(x2,1);}
       FREE(x25,1);
       r=__ABUILTIN_5;
      }else{
       {OBJ x28;OBJ x29;
	x28=_AName_12(x2);
	x29=_AImpDecl4SigAna_50(x1,x28);
	if(ISTGPRM(x29,1)){
	 FREE(x25,1);
	 r=__ABUILTIN_3;
	}else{
	 {OBJ x30;
	  ANat_76(x23,__AObjects_30,x30);
	  if(ISTGPRM(x30,1)){
	   if(ISPRM(x25)){
	    r=__ABUILTIN_3;
	   }else{
	    if(EXPRD(x25,1)){
	     DSPRD(x25);
	    }else{
	     DCPRD(x25,1);}
	    r=__ABUILTIN_5;}
	  }else{
	   FREE(x25,1);
	   r=__ABUILTIN_3;}}}}}}}
   }else{
    HLT("Name at <unknown> : undefined selection inst\'Name:name->inst");}}}
 return r;}

extern OBJ _AAGSig_14(OBJ x1,OBJ x2) /* uninst? */
{OBJ r;
 if(ISPRD(x2)&&(ISTGPRD(x2,1))){
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  FREE(x1,1);
  r=__ABUILTIN_3;
 }else{
  if(ISPRD(x2)&&(ISTGPRD(x2,2))){
   {OBJ x25=FLD(x2,3);
    COPY(x1,1);
    {OBJ x26;OBJ x27;
     x26=_AName_12(x2);
     x27=_AImpDecl4SigAna_50(x1,x26);
     if(ISTGPRM(x27,1)){
      FREE(x1,1);
      r=__ABUILTIN_3;
     }else{
      {OBJ x28;
       ANat_76(x25,__AObjects_30,x28);
       if(ISTGPRM(x28,1)){
	FREE(x1,1);
	r=__ABUILTIN_3;
       }else{
	r=_AImpDecl4SigAna_4(x1,x26,x25);}}}}}
  }else{
   FREE(x1,1);
   FREE(x2,1);
   r=__ABUILTIN_3;}}
 return r;}

extern OBJ _AAGSig_15(OBJ x1,OBJ x2,OBJ x3) /* inPragma? */
{OBJ r;
 CPCLS(__AAGSig_37,1);
 CPCLS(__AAGSig_38,1);
 CPCLS(__AAGSig_39,1);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  x4=_AGlobSig_46(x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_37,1))(__AAGSig_37,x3);
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_38,1))(__AAGSig_38,x1);
  x7=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AAGSig_39,2))(__AAGSig_39,x5,x6);
  r=_ASeq_40(x7,x4);}
 return r;}

extern OBJ _AAGSig_23(OBJ x1,OBJ x2) /* fctFormal */
{OBJ r;
 {OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  if(ISPRD(x2)&&(ISTGPRD(x2,4))){
   {OBJ x5=FLD(x2,3);
    x7=x5;
    COPY(x1,1);}
  }else{
   if(ISPRD(x2)&&(ISTGPRD(x2,7))){
    {OBJ x6=FLD(x2,1);
     x7=x6;
     COPY(x1,1);}
   }else{
    HLT("Name at <unknown> : undefined selection no\'Name:name->nat");}}
  x8=_AAnalyzedGlobSig_8(x1,x2);
  ANat_4(x7,x9);
  x10=_AAGSig_25(x1,x8);
  {OBJ x12=FLD1(x10,2);
   if(EXPRD(x10,1)){
    FREE(FLD1(x10,1),1);DSPRDF(x10);
   }else{
    COPY(x12,1);
    FRPRD(x10,1);}
   {OBJ x13;OBJ x14;
    x13=x12;
    x14=_ASeqIndex_2(x13,x9);
    if(ISPRM(x14)){
     HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
    }else{
     {OBJ x15=FLD1(x14,1);
      if(EXPRD(x14,1)){
       r=x15;
       DSPRDF(x14);
      }else{
       COPY(x15,1);
       r=x15;
       FRPRD(x14,1);}}}}}}
 return r;}

extern OBJ _AAGSig_25(OBJ x1,OBJ x2) /* formalParamNameFct */
{OBJ r;
 {OBJ x3;OBJ x4;
  x3=_AGlobSig_55(x1);
  x4=_ADArray_20(x3,x2);
  if(ISTGPRD(x4,1)||ISTGPRD(x4,2)||ISTGPRD(x4,0)){
   if(EXPRD(x4,1)){
    DSPRD(x4);
   }else{
    DCPRD(x4,1);}
   CPPRD(__AAGSig_32,1);
   r=__AAGSig_32;
  }else{
   {OBJ x119;
    {OBJ x113=FLD(x4,4);
     if(EXPRD(x4,1)){
      x119=x113;
      FLD(x4,4)=NIL;DSPRD(x4);
     }else{
      CPPRD(x113,1);
      x119=x113;
      FRPRD(x4,1);}}
    {OBJ x120=FLD1(x119,1);OBJ x121=FLD1(x119,2);
     if(EXPRD(x119,1)){
      CPCLS(__AAGSig_33,1);
      CPPRD(__APair_2,1);
      CPCLS(__APair_4,1);
      CPCLS(__APair_5,1);
      {OBJ x122;OBJ x123;TUP2 x125;OBJ x127;
       x122=_ASeqZip_4(__APair_2,x120,x121);
       x123=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_33,1))(__AAGSig_33,x2);
       x125=_ASeqMapEnv_4(x123,__ANat_8,x122);
       COPY(x125.c2,1);
       x127=_ASeqMap_3(__APair_5,x125.c2);
       RSOME(x119,r);FLD1(r,1)=x127;
       FLD1(r,2)=_ASeqMap_3(__APair_4,x125.c2);}
     }else{
      COPY(x120,1);COPY(x121,1);
      CPCLS(__AAGSig_33,1);
      CPPRD(__APair_2,1);
      CPCLS(__APair_4,1);
      CPCLS(__APair_5,1);
      {OBJ x122;OBJ x123;TUP2 x125;OBJ x127;
       x122=_ASeqZip_4(__APair_2,x120,x121);
       x123=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_33,1))(__AAGSig_33,x2);
       x125=_ASeqMapEnv_4(x123,__ANat_8,x122);
       COPY(x125.c2,1);
       x127=_ASeqMap_3(__APair_5,x125.c2);
       FRPRD(x119,1);PRD1(2,r);FLD1(r,1)=x127;
       FLD1(r,2)=_ASeqMap_3(__APair_4,x125.c2);}}}}}}
 return r;}

extern OBJ _AAGSig_26(OBJ x1,OBJ x2,OBJ x3) /* getInternalNames'26 */
{OBJ r;
 if(ISTGPRD(x2,3)){
  if(EXPRD(x2,1)){
   FRPRD(FLD(x2,2),1);DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  r=x3;
 }else{
  FRPRD(x2,1);
  {OBJ x10;
   PRDF(1,1,x10);FLD(x10,1)=x1;
   PRD1(2,r);FLD1(r,1)=x10;FLD1(r,2)=x3;}}
 return r;}

extern OBJ _AAGSig_27(OBJ x1,OBJ x2,OBJ x3) /* getExternalNames'27 */
{OBJ r;
 {OBJ x4=FLD1(x3,1);
  if(EXPRD(x3,1)){
   FRPRD(FLD1(x3,3),1);DSPRDF(x3);
  }else{
   FRPRD(x3,1);}
  {OBJ x7;
   x7=x4;
   PRD(3,2,r);FLD(r,1)=x1;FLD(r,2)=x2;FLD(r,3)=x7;}}
 return r;}

extern OBJ _AAGSig_28(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* getExternalNames'28 */
{OBJ r;
 CPCLS(__AAGSig_27,1);
 CPCLS(__AImpExpEntry_128,1);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x8;
  x5=_AImpExpEntry_10(x3);
  x6=_ASeqFilter_2(__AImpExpEntry_128,x5);
  x7=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AAGSig_27,2))(__AAGSig_27,x1,x2);
  x8=_ASeqMap_3(x7,x6);
  r=_ASeq_26(x8,x4);}
 return r;}

extern OBJ _AAGSig_29(OBJ x1,OBJ x2,OBJ x3) /* getExternalNames'29 */
{OBJ r;
 CPCLS(__AAGSig_28,1);
 {OBJ x4;OBJ x5;
  x4=_AImpExpEntry_92(x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_28,1))(__AAGSig_28,x1);
  r=_ADArrayReduce_6(x5,x3,x4);}
 return r;}

extern OBJ _AAGSig_30(OBJ x1,OBJ x2,OBJ x3) /* getStructs'30 */
{OBJ r;
 FRPRD(x2,1);
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x3;
 return r;}

extern TUP2 _AAGSig_33(OBJ x1,OBJ x2,OBJ x3) /* formalParamNameFct'33 */
{TUP2 r;
 {OBJ x4;
  ANat_2(x2,x4);
  {OBJ x16=FLD1(x3,1);OBJ x17=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
   if(x_x3){
   }else{
    CPPRD(x16,1);COPY(x17,1);}
   {OBJ x18=FLD1(x16,1);
    if(EXPRD(x16,1)){
     r.c1=x4;
     FREE(FLD1(x16,2),1);DSPRDF(x16);
    }else{
     r.c1=x4;
     FRPRD(x16,1);}
    {OBJ x20;
     PRDF(3,4,x20);FLD(x20,1)=x1;FLD(x20,2)=x18;FLD(x20,3)=x2;
     if(x_x3){
      RSOME(x3,r.c2);FLD1(r.c2,1)=x20;
     }else{
      FRPRD(x3,1);PRD1(2,r.c2);FLD1(r.c2,1)=x20;FLD1(r.c2,2)=x17;}}}}}
 return r;}
extern OBJ _AAGSig_33_c(OBJ x1,OBJ x2,OBJ x3) /* formalParamNameFct'33 */
{OBJ r;
 {TUP2 t=_AAGSig_33(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AAGSig_34(OBJ x1) /* isApplied?'34 */
{OBJ r;
 r=_AImpExpEntry_128(x1);
 return r;}

extern OBJ _AAGSig_35(OBJ x1,OBJ x2) /* isApplied?'35 */
{OBJ r;
 ANat_76(x1,x2,r);
 return r;}

extern OBJ _AAGSig_36(OBJ x1,OBJ x2) /* inPragma?'36 */
{OBJ r;
 r=_AName_31(x2,x1);
 return r;}

extern OBJ _AAGSig_37(OBJ x1,OBJ x2) /* inPragma?'37 */
{OBJ r;
 if(ISTGPRD(x2,0)){
  {OBJ x14=FLD(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x14,1);
    FRPRD(x2,1);}
   CPCLS(__AAGSig_36,1);
   {OBJ x15;
    x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__AAGSig_36,1))(__AAGSig_36,x1);
    r=_ASeq_40(x15,x14);}}
 }else{
  if(EXPRD(x2,1)){
   DSPRD(x2);
  }else{
   DCPRD(x2,1);}
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AAGSig_38(OBJ x1,OBJ x2) /* inPragma?'38 */
{OBJ r;
 if(ISTGPRD(x2,1)){
  {OBJ x16=FLD(x2,1);
   if(EXPRD(x2,1)){
    FREE(FLD(x2,2),1);DSPRDF(x2);
   }else{
    CPPRD(x16,1);
    FRPRD(x2,1);}
   {OBJ x19=FLD1(x16,2);
    if(EXPRD(x16,1)){
     DSPRDF(x16);
    }else{
     CPPRD(x19,1);
     FRPRD(x16,1);}
    ADenotation_21(x19,x1,r);}}
 }else{
  if(EXPRD(x2,1)){
   FREE(FLD(x2,1),1);DSPRDF(x2);
  }else{
   DCPRD(x2,1);}
  FRPRD(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AAGSig_39(OBJ x1,OBJ x2,OBJ x3) /* inPragma?'39 */
{OBJ r;
 COPY(x3,1);
 {OBJ x4;OBJ x5;
  x4=_ASeq_52(x3,__ANat_5);
  ANat_81(x4,__ANat_8,x5);
  if(ISTGPRM(x5,1)){
   {OBJ x8;OBJ x9;
    if(ISPRM(x3)){
     HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
    }else{
     {OBJ x6=FLD1(x3,1);
      CPPRD(x6,1);
      x8=x6;}}
    x9=(*(OBJ(*)(OBJ,OBJ))METHOD(x2,1))(x2,x8);
    if(ISTGPRM(x9,1)){
     {OBJ x12;OBJ x15;
      if(ISPRM(x3)){
       HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
      }else{
       {OBJ x11=FLD1(x3,2);
	if(EXPRD(x3,1)){
	 x12=x11;
	 FRPRD(FLD1(x3,1),1);DSPRDF(x3);
	}else{
	 COPY(x11,1);
	 x12=x11;
	 FRPRD(x3,1);}}}
      if(ISPRM(x12)){
       HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
      }else{
       {OBJ x13=FLD1(x12,1);
	if(EXPRD(x12,1)){
	 x15=x13;
	 FREE(FLD1(x12,2),1);DSPRDF(x12);
	}else{
	 CPPRD(x13,1);
	 x15=x13;
	 FRPRD(x12,1);}}}
      r=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x15);}
    }else{
     FRCLS(x1,1);
     FREE(x3,1);
     r=__ABUILTIN_3;}}
  }else{
   FRCLS(x1,1);
   FRCLS(x2,1);
   FREE(x3,1);
   r=__ABUILTIN_3;}}
 return r;}



init_AAGSig()
{
 static int visited=0; if(visited) return; visited=1;
 init_ALexem();
 init_ADeclEntry();
 init_ADArrayReduce();
 init_APartNameEntry();
 init_AImpExpEntry();
 init_APragma();
 init_ASeq();
 init_AAttributes();
 init_ANat();
 init_ADArray();
 init_AAnalyzedGlobSig();
 init_ANatMap();
 init_AName();
 init_AArray();
 init_AOcPos();
 init_APartName();
 init_AFct();
 init_AImpDecl4SigAna();
 init_AImpl();
 init_AName4SigAna();
 init_AOption();
 init_ACompose();
 init_APair();
 init_ASeqMap();
 init_ARep();
 init_ASeqMapEnv();
 init_ABitset();
 init_ASeqReduce();
 init_AChar();
 init_AMapReduce();
 init_AObjects();
 init_ASeqFilter();
 init_AGlobSig();
 init_ASeqIndex();
 init_AGlobPragma();
 init_ASeqOfSeq();
 init_AGlobSigImpl();
 init_ASeqZip();
 init_APatterns();
 init_ADenotation();
 init_AMap();
 init_ANatConv();
 init_AOcError();
 init_ATableFun2();
 init_ACom();
 init_AReal();
 init_AVoid();
 init_AMaps4SigAna();
 init_AString();
 init_ATree();
 init_AOcOptions();
 init_AAbsyFun3();
 init_AStream();
 init_AAnalyzedGlobSigH();
 init_AFile();
 init_AGlobSigToText();
 init_AInt();
 init_AMySeqFun1();
 init_ASet();
 init_ASetByBST();
 init_ATable();
 init_ABSTree();
 init_AUniqueTable();
 CLS(3,_AAGSig_30,__AAGSig_30);
 CLS(3,_AAGSig_29,__AAGSig_29);
 CLS(4,_AAGSig_28,__AAGSig_28);
 CLS(3,_AAGSig_27,__AAGSig_27);
 CLS(3,_AAGSig_26,__AAGSig_26);
 CLS(2,_AAGSig_25,__AAGSig_25);
 CLS(2,_AAGSig_23,__AAGSig_23);
 CLS(3,_AAGSig_15,__AAGSig_15);
 CLS(2,_AAGSig_14,__AAGSig_14);
 CLS(2,_AAGSig_13,__AAGSig_13);
 CLS(2,_AAGSig_12,__AAGSig_12);
 CLS(2,_AAGSig_11_c,__AAGSig_11);
 CLS(2,_AAGSig_10,__AAGSig_10);
 CLS(2,_AAGSig_9,__AAGSig_9);
 CLS(2,_AAGSig_8,__AAGSig_8);
 CLS(3,_AAGSig_39,__AAGSig_39);
 CLS(2,_AAGSig_7,__AAGSig_7);
 CLS(2,_AAGSig_38,__AAGSig_38);
 CLS(1,_AAGSig_6,__AAGSig_6);
 CLS(2,_AAGSig_37,__AAGSig_37);
 CLS(2,_AAGSig_5,__AAGSig_5);
 CLS(2,_AAGSig_36,__AAGSig_36);
 CLS(1,_AAGSig_4,__AAGSig_4);
 CLS(2,_AAGSig_35,__AAGSig_35);
 CLS(1,_AAGSig_3,__AAGSig_3);
 CLS(1,_AAGSig_34,__AAGSig_34);
 CLS(1,_AAGSig_2,__AAGSig_2);
 CLS(3,_AAGSig_33_c,__AAGSig_33);
 CLS(1,_AAGSig_1,__AAGSig_1);
 COPY(__AOcPos_35,1);
 PRD1(2,__AAGSig_31);FLD1(__AAGSig_31,1)=__AOcPos_35;FLD1(__AAGSig_31,2)=__ASeq_6;
 PRD1F(2,__AAGSig_32);FLD1(__AAGSig_32,1)=__ASeq_6;FLD1(__AAGSig_32,2)=__ASeq_6;}

