

#include "BUILTIN.h"
extern OBJ _AImpDecl4SigAna_57(OBJ,OBJ);extern OBJ __AImpDecl4SigAna_57;
extern OBJ __AOcError_12;
extern OBJ __AOcError_15;
extern OBJ _AOcError_17(OBJ,OBJ,OBJ,OBJ);extern OBJ __AOcError_17;
extern OBJ _AOcError_19(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AOcError_19;
extern OBJ _AOcError_21(OBJ,OBJ);extern OBJ __AOcError_21;
extern OBJ _AOcError_22(OBJ);extern OBJ __AOcError_22;
extern OBJ _APartName_31(OBJ);extern OBJ __APartName_31;
extern OBJ _AImpl_198(OBJ,OBJ);extern OBJ __AImpl_198;
extern OBJ __AAnalyzedGlobSig_23;
extern OBJ _AAnalyzedGlobSig_56(OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_56;
extern OBJ _AAnalyzedGlobSig_57(OBJ,OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_57;

#include "Array.h"
extern OBJ __AName_3;
extern OBJ __AName_4;
extern OBJ __AName_6;
extern OBJ _ASeqReduce_4(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_4;
extern OBJ __AGlobSigImpl_7;
extern OBJ __AGlobSigImpl_8;
extern OBJ __AGlobSigImpl_10;
extern OBJ __AGlobSigImpl_18;
extern OBJ __AGlobSigImpl_19;
extern OBJ __AGlobSigImpl_20;
extern OBJ __AGlobSigImpl_21;
extern OBJ __AGlobSigImpl_23;
extern OBJ __AGlobSigImpl_27;
extern OBJ _ASeqCompare_3(OBJ,OBJ,OBJ);extern OBJ __ASeqCompare_3;
extern OBJ __ARepSet_2;
extern OBJ _ARepSet_6(OBJ,OBJ);extern OBJ __ARepSet_6;
extern OBJ _ARepSet_10(OBJ,OBJ);extern OBJ __ARepSet_10;
extern OBJ _ARepSet_11(OBJ);extern OBJ __ARepSet_11;
extern OBJ __AKnowledge_2;
extern OBJ _AKnowledge_3(OBJ,OBJ,OBJ);extern OBJ __AKnowledge_3;
extern OBJ _AKnowledge_4(OBJ,OBJ,OBJ);extern OBJ __AKnowledge_4;
extern OBJ _AKnowledge_11(OBJ);extern OBJ __AKnowledge_11;
extern TUP2 _ASubstitution_4(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ASubstitution_4;

#include "Nat.h"
extern OBJ _ARep_119(OBJ);extern OBJ __ARep_119;
extern OBJ __ACandidates_18;
extern TUP2 _ACandidates_20(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ACandidates_20;
extern TUP2 _ACandidates_23(OBJ,OBJ,OBJ);extern OBJ __ACandidates_23;
extern TUP2 _ACandidates_28(OBJ);extern OBJ __ACandidates_28;
extern OBJ _ACandidates_30(OBJ,OBJ);extern OBJ __ACandidates_30;
extern OBJ __ADataDefAnalysis_4;
extern OBJ __ADataDefAnalysis_5;
extern TUP5 _ATypeIndepExprAnalysis_1(OBJ,OBJ);extern OBJ __ATypeIndepExprAnalysis_1;
extern OBJ __ATypeIndepExprAnalysis_2;
extern OBJ _AOcPos_34(OBJ);extern OBJ __AOcPos_34;
extern TUP3 _ATypeDepExprAnalysis_1(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ATypeDepExprAnalysis_1;
extern TUP4 _ATypeDepExprAnalysis_2(OBJ,OBJ,OBJ,OBJ);extern OBJ __ATypeDepExprAnalysis_2;
extern TUP3 _ATypeDepExprAnalysis_8(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __ATypeDepExprAnalysis_8;
extern OBJ __ASeq_6;
extern OBJ _ASeq_23(OBJ,OBJ);extern OBJ __ASeq_23;
extern OBJ _ALhsAnalysis_1(OBJ);extern OBJ __ALhsAnalysis_1;
extern TUP4 _ALhsAnalysis_2(OBJ,OBJ);extern OBJ __ALhsAnalysis_2;
extern TUP2 _ALhsAnalysis_3(OBJ,OBJ,OBJ,OBJ);extern OBJ __ALhsAnalysis_3;
extern TUP6 _ALhsAnalysis_4(OBJ,OBJ,OBJ,OBJ);extern OBJ __ALhsAnalysis_4;
extern OBJ _ADEBUG_2(OBJ,OBJ,OBJ);extern OBJ __ADEBUG_2;
extern OBJ _ADEBUG_10(OBJ);extern OBJ __ADEBUG_10;

#include "Char.h"

#include "Int.h"

#include "Denotation.h"

#include "Bitset.h"
extern OBJ _AAnalyzedGlobSigH_2(OBJ,OBJ);extern OBJ __AAnalyzedGlobSigH_2;
extern OBJ _AAnalyzedGlobSigH_9(OBJ,OBJ,OBJ);extern OBJ __AAnalyzedGlobSigH_9;
extern OBJ _AFunDefAnalysis_1(OBJ);OBJ __AFunDefAnalysis_1; /* target */
extern TUP2 _AFunDefAnalysis_2(OBJ,OBJ);OBJ __AFunDefAnalysis_2; /* analyzeFunDef */
extern TUP5 _AFunDefAnalysis_3(OBJ,OBJ);OBJ __AFunDefAnalysis_3; /* typeIndepAna */
extern TUP2 _AFunDefAnalysis_4(OBJ,OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_4; /* typeDepAna */
extern OBJ _AFunDefAnalysis_5(OBJ,OBJ);OBJ __AFunDefAnalysis_5; /* identFunctions */
extern OBJ _AFunDefAnalysis_6(OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_6; /* betterEq */
extern OBJ _AFunDefAnalysis_7(OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_7; /* eq */
extern TUP6 _AFunDefAnalysis_8(OBJ,OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_8; /* substitute */
extern TUP2 _AFunDefAnalysis_9(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_9; /* include */
extern TUP2 _AFunDefAnalysis_10(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_10; /* extendImpl */
extern TUP2 _AFunDefAnalysis_11(OBJ,OBJ);OBJ __AFunDefAnalysis_11; /* build */
OBJ __AFunDefAnalysis_12; /* build'12 */
extern OBJ _AFunDefAnalysis_13(OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_13; /* build'13 */
extern OBJ _AFunDefAnalysis_14(OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_14; /* build'14 */
extern OBJ _AFunDefAnalysis_15(OBJ,OBJ);OBJ __AFunDefAnalysis_15; /* build'15 */
extern OBJ _AFunDefAnalysis_16(OBJ,OBJ);OBJ __AFunDefAnalysis_16; /* typeIndepAna'16 */
extern TUP4 _AFunDefAnalysis_17(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_17; /* typeDepAna'17 */
OBJ __AFunDefAnalysis_18; /* analyzeFunDef'18 */
extern OBJ _AFunDefAnalysis_19(OBJ);OBJ __AFunDefAnalysis_19; /* analyzeFunDef'19 */
extern OBJ _AFunDefAnalysis_20(OBJ,OBJ,OBJ);OBJ __AFunDefAnalysis_20; /* analyzeFunDef'20 */

extern OBJ _AFunDefAnalysis_1(OBJ x1) /* target */
{OBJ r;
 {OBJ x14=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x14,1);
   FRPRD(x1,1);}
  r=_ALhsAnalysis_1(x14);}
 return r;}

extern TUP2 _AFunDefAnalysis_2(OBJ x1,OBJ x2) /* analyzeFunDef */
{TUP2 r;
 CPCLS(__APartName_31,1);
 COPY(x2,1);
 {OBJ x3;TUP5 x5;OBJ x10;
  x3=_AImpl_198(__APartName_31,x1);
  x5=_AFunDefAnalysis_3(x3,x2);
  CPPRD(x5.c5,1);
  x10=_AOcError_22(x5.c5);
  if(ISTGPRM(x10,1)){
   COPY(x2,1);
   CPPRD(x5.c1,1);
   {TUP2 x63;
    x63=_AFunDefAnalysis_4(x5.c1,x2,x5.c2,x5.c3);
    if(ISTGPRD(x63.c1,2)){
     {OBJ x65=FLD(x63.c1,1);
      if(EXPRD(x63.c1,1)){
       DSPRDF(x63.c1);
      }else{
       CPPRD(x65,1);
       FRPRD(x63.c1,1);}
      FRPRD(x5.c1,1);
      FRPRD(x5.c4,1);
      r.c2=_AOcError_21(x5.c5,x65);
      r.c1=x2;}
    }else{
     COPY(x2,2);
     CPCLS(__AFunDefAnalysis_6,1);
     CPCLS(__AFunDefAnalysis_19,1);
     {OBJ x67;OBJ x68;OBJ x69;TUP6 x71;OBJ x77;OBJ x78;OBJ x80;OBJ x79;OBJ x81;
      x67=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_6,1))(__AFunDefAnalysis_6,x2);
      x68=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_19,1))(__AFunDefAnalysis_19,__ABUILTIN_20);
      x69=_ACandidates_30(x67,x63.c1);
      x71=_AFunDefAnalysis_8(x5.c1,x69,x2,x5.c4);
      CPPRD(x71.c6,1);
      x77=_AOcError_22(x71.c6);
      x78=_AOcError_21(x5.c5,x71.c6);
      if(ISTGPRM(x77,1)){
       COPY(x71.c1,1);
       CPCLS(__AFunDefAnalysis_20,1);
       x80=__ABUILTIN_3;
      }else{
       COPY(x71.c1,1);
       CPCLS(__AFunDefAnalysis_20,1);
       x80=__ABUILTIN_5;}
      x79=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AFunDefAnalysis_20,2))(__AFunDefAnalysis_20,x2,x71.c1);
      x81=_ADEBUG_2(x68,x79,x71.c1);
      if(ISTGPRM(x80,1)){
       r.c1=x71.c3;r.c2=x78;
       FRPRD(x71.c2,1);
       FRPRD(x71.c4,1);
       FREE(x81,1);
      }else{
       {OBJ x82;TUP2 x85;
	ANat_61(x63.c2,x71.c5,x82);
	x85=_AFunDefAnalysis_9(x71.c3,x81,x71.c2,x71.c4,x82);r.c1=x85.c1;
	r.c2=_AOcError_21(x78,x85.c2);}}}}}
  }else{
   r.c2=x5.c5;
   FRPRD(x5.c1,1);
   FREE(x5.c2,1);
   FRPRD(x5.c4,1);
   r.c1=x2;}}
 return r;}
extern OBJ _AFunDefAnalysis_2_c(OBJ x1,OBJ x2) /* analyzeFunDef */
{OBJ r;
 {TUP2 t=_AFunDefAnalysis_2(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP5 _AFunDefAnalysis_3(OBJ x1,OBJ x2) /* typeIndepAna */
{TUP5 r;
 {OBJ x35=FLD1(x1,1);OBJ x36=FLD1(x1,2);OBJ x37;FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
   CPPRD(x35,1);
  }else{
   x37=FLD1(x1,3);CPPRD(x35,2);CPPRD(x36,1);COPY(x37,1);}
  CPCLS(__AFunDefAnalysis_16,1);
  CPPRD(__AOcError_15,1);
  CPPRD(__ARepSet_2,1);
  {TUP4 x40;TUP5 x44;OBJ x49;OBJ x50;OBJ x51;OBJ x54;
   x40=_ALhsAnalysis_2(x35,x2);
   FRPRD(x40.c1,1);
   CPPRD(x40.c2,1);
   x44=_ATypeIndepExprAnalysis_1(x36,__ARepSet_2);r.c4=x44.c4;
   FRPRD(x44.c2,1);
   CPPRD(x44.c3,1);
   x49=_AOcError_21(x44.c5,x40.c4);
   x50=_ARepSet_6(x40.c3,x44.c3);
   x51=_ARepSet_10(x40.c2,x44.c3);
   if(x_x1){
    RSOME(x1,r.c1);FLD1(r.c1,2)=x44.c1;
   }else{
    FRPRD(x1,1);PRD1(3,r.c1);FLD1(r.c1,1)=x35;FLD1(r.c1,2)=x44.c1;FLD1(r.c1,3)=x37;}
   x54=_ASeqReduce_4(__AFunDefAnalysis_16,__AOcError_15,x51);
   r.c5=_AOcError_21(x49,x54);
   {TUP2 t=_AFunDefAnalysis_11(x40.c2,x50);
    r.c2=t.c1;
    r.c3=t.c2;}}}
 return r;}
extern OBJ _AFunDefAnalysis_3_c(OBJ x1,OBJ x2) /* typeIndepAna */
{OBJ r;
 {TUP5 t=_AFunDefAnalysis_3(x1,x2);
  PRD1(5,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;
  FLD1(r,5)=t.c5;}
 return r;}

extern TUP2 _AFunDefAnalysis_4(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* typeDepAna */
{TUP2 r;
 COPY(x3,1);
 {OBJ x17;
  x17=_AKnowledge_11(x3);
  {OBJ x36=FLD1(x1,1);OBJ x37=FLD1(x1,2);OBJ x38=FLD1(x1,3);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    CPPRD(x36,1);CPPRD(x37,1);COPY(x38,1);
    FRPRD(x1,1);}
   COPY(x2,5);
   COPY(x3,1);
   CPCLS(__AFunDefAnalysis_17,1);
   {OBJ x40;TUP2 x41;TUP3 x44;TUP3 x48;TUP2 x52;TUP2 x56;
    x40=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_17,1))(__AFunDefAnalysis_17,x2);
    x41=_ALhsAnalysis_3(x36,x2,x3,__ANat_5);
    x44=_ATypeDepExprAnalysis_8(x2,x17,x41.c1,x3,x41.c2);
    x48=_ATypeDepExprAnalysis_1(x37,x2,x44.c2,x4,x44.c3);r.c2=x48.c2;
    x52=_ACandidates_20(__ACandidates_18,x2,x38,x48.c3,x40,x44.c1,x48.c1);
    x56=_ACandidates_23(x2,x52.c2,x52.c1);r.c1=x56.c1;}}}
 return r;}
extern OBJ _AFunDefAnalysis_4_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* typeDepAna */
{OBJ r;
 {TUP2 t=_AFunDefAnalysis_4(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AFunDefAnalysis_5(OBJ x1,OBJ x2) /* identFunctions */
{OBJ r;
 CPCLS(__AFunDefAnalysis_6,1);
 {OBJ x3;
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_6,1))(__AFunDefAnalysis_6,x1);
  r=_ACandidates_30(x3,x2);}
 return r;}

extern OBJ _AFunDefAnalysis_6(OBJ x1,OBJ x2,OBJ x3) /* betterEq */
{OBJ r;
 CPCLS(__AName_3,2);
 COPY(x2,1);
 COPY(x3,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_3,1))(__AName_3,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_3,1))(__AName_3,x3);
  if(ISTGPRM(x4,1)){
   FREE(x1,1);
   if(ISTGPRM(x5,1)){
    CPCLS(__AName_4,2);
    {OBJ x6;OBJ x7;
     x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_4,1))(__AName_4,x2);
     x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_4,1))(__AName_4,x3);
     ANat_76(x6,x7,r);}
   }else{
    FREE(x2,1);
    FREE(x3,1);
    r=__ABUILTIN_3;}
  }else{
   if(ISTGPRM(x5,1)){
    FREE(x1,1);
    FREE(x2,1);
    FREE(x3,1);
    r=__ABUILTIN_5;
   }else{
    r=_AFunDefAnalysis_7(x1,x2,x3);}}}
 return r;}

extern OBJ _AFunDefAnalysis_7(OBJ x1,OBJ x2,OBJ x3) /* eq */
{OBJ r;
 CPCLS(__AName_6,2);
 COPY(x2,1);
 COPY(x3,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_6,1))(__AName_6,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AName_6,1))(__AName_6,x3);
  if(ISTGPRM(x4,1)){
   FREE(x1,1);
   FREE(x2,1);
   FREE(x3,1);
   r=__ABUILTIN_3;
  }else{
   if(ISTGPRM(x5,1)){
    FREE(x1,1);
    FREE(x2,1);
    FREE(x3,1);
    r=__ABUILTIN_3;
   }else{
    COPY(x2,1);
    COPY(x3,1);
    {OBJ x6;
     x6=_AImpDecl4SigAna_57(x2,x3);
     if(ISTGPRM(x6,1)){
      if(ISPRD(x2)&&(ISTGPRD(x2,1))){
       if(EXPRD(x2,1)){
	DSPRDF(x2);
       }else{
	DCPRD(x2,1);}
       FREE(x1,1);
       FREE(x3,1);
       r=__ABUILTIN_5;
      }else{
       COPY(x1,2);
       CPCLS(__AFunDefAnalysis_7,1);
       {OBJ x13;OBJ x14;OBJ x15;
	x13=_AAnalyzedGlobSigH_2(x1,x3);
	x14=_AAnalyzedGlobSigH_2(x1,x2);
	x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_7,1))(__AFunDefAnalysis_7,x1);
	r=_ASeqCompare_3(x15,x14,x13);}}
     }else{
      FREE(x1,1);
      FREE(x2,1);
      FREE(x3,1);
      r=__ABUILTIN_3;}}}}}
 return r;}

extern TUP6 _AFunDefAnalysis_8(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* substitute */
{TUP6 r;
 {OBJ x35=FLD1(x1,1);OBJ x36=FLD1(x1,2);OBJ x37;
  if(EXPRD(x1,1)){
   CPCLS(__AGlobSigImpl_27,1);
   {TUP2 x38;TUP6 x42;TUP4 x48;
    x38=_ACandidates_28(x2);
    x42=_ALhsAnalysis_4(x35,x38.c1,x3,x4);r.c1=x42.c1;r.c5=x42.c5;
    x48=_ATypeDepExprAnalysis_2(x36,x38.c2,x42.c3,r.c5);r.c3=x48.c2;
    r.c6=_AOcError_21(x42.c6,x48.c4);
    r.c4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AGlobSigImpl_27,2))(__AGlobSigImpl_27,x42.c4,x48.c3);
    RSOME(x1,r.c2);FLD1(r.c2,1)=x42.c2;FLD1(r.c2,2)=x48.c1;}
  }else{
   x37=FLD1(x1,3);CPPRD(x35,1);CPPRD(x36,1);COPY(x37,1);
   CPCLS(__AGlobSigImpl_27,1);
   {TUP2 x38;TUP6 x42;TUP4 x48;
    x38=_ACandidates_28(x2);
    x42=_ALhsAnalysis_4(x35,x38.c1,x3,x4);r.c1=x42.c1;r.c5=x42.c5;
    x48=_ATypeDepExprAnalysis_2(x36,x38.c2,x42.c3,r.c5);r.c3=x48.c2;
    r.c6=_AOcError_21(x42.c6,x48.c4);
    r.c4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AGlobSigImpl_27,2))(__AGlobSigImpl_27,x42.c4,x48.c3);
    FRPRD(x1,1);PRD1(3,r.c2);FLD1(r.c2,1)=x42.c2;FLD1(r.c2,2)=x48.c1;FLD1(r.c2,3)=x37;}}}
 return r;}
extern OBJ _AFunDefAnalysis_8_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* substitute */
{OBJ r;
 {TUP6 t=_AFunDefAnalysis_8(x1,x2,x3,x4);
  PRD1(6,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;
  FLD1(r,5)=t.c5;
  FLD1(r,6)=t.c6;}
 return r;}

extern TUP2 _AFunDefAnalysis_9(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* include */
{TUP2 r;
 COPY(x1,2);
 COPY(x2,2);
 {OBJ x6;TUP2 x8;
  x6=_AAnalyzedGlobSig_56(x1,x2);
  x8=_AFunDefAnalysis_10(x1,x2,x6,x3,x4,x5);r.c2=x8.c2;
  r.c1=_AAnalyzedGlobSig_57(x1,x2,x8.c1);}
 return r;}
extern OBJ _AFunDefAnalysis_9_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* include */
{OBJ r;
 {TUP2 t=_AFunDefAnalysis_9(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AFunDefAnalysis_10(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* extendImpl */
{TUP2 r;
 CPCLS(__AGlobSigImpl_21,1);
 COPY(x3,1);
 {OBJ x7;
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_21,1))(__AGlobSigImpl_21,x3);
  if(ISTGPRM(x7,1)){
   FREE(x3,1);
   FRPRD(x5,1);
   {OBJ x20;
    x20=_AAnalyzedGlobSigH_9(x1,__AAnalyzedGlobSig_23,x2);
    {OBJ x24=FLD1(x4,3);
     if(EXPRD(x4,1)){
      FLD1(x4,3)=NIL;DSPRD(x4);
     }else{
      COPY(x24,1);
      FRPRD(x4,1);}
     CPPRD(__ADataDefAnalysis_4,1);
     r.c2=_AOcError_17(__AOcError_12,__ADataDefAnalysis_4,x20,x24);
     r.c1=__AGlobSigImpl_20;}}
  }else{
   COPY(x3,1);
   CPCLS(__AGlobSigImpl_18,1);
   {OBJ x26;
    x26=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_18,1))(__AGlobSigImpl_18,x3);
    if(ISTGPRM(x26,1)){
     FRPRD(x5,1);
     CPCLS(__AGlobSigImpl_19,1);
     {OBJ x39;OBJ x40;
      x39=_AAnalyzedGlobSigH_9(x1,__AAnalyzedGlobSig_23,x2);
      x40=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_19,1))(__AGlobSigImpl_19,x3);
      {OBJ x46=FLD1(x4,3);
       if(EXPRD(x4,1)){
	FLD1(x4,3)=NIL;DSPRD(x4);
       }else{
	COPY(x46,1);
	FRPRD(x4,1);}
       COPY(x40,1);
       CPPRD(__ADataDefAnalysis_5,1);
       {OBJ x47;
	x47=_AOcPos_34(x40);
	PRD(1,2,r.c1);FLD(r.c1,1)=x40;
	r.c2=_AOcError_19(__AOcError_12,__ADataDefAnalysis_5,x39,x47,x46);}}}
    }else{
     FREE(x1,1);
     FREE(x2,1);
     COPY(x3,1);
     CPCLS(__AGlobSigImpl_10,1);
     {OBJ x50;
      x50=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_10,1))(__AGlobSigImpl_10,x3);
      if(ISTGPRM(x50,1)){
       COPY(x3,1);
       CPPRD(__AOcError_15,1);
       CPCLS(__AGlobSigImpl_7,1);
       CPCLS(__AGlobSigImpl_8,1);
       CPCLS(__AGlobSigImpl_27,1);
       {OBJ x51;OBJ x52;OBJ x53;OBJ x54;
	x51=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_8,1))(__AGlobSigImpl_8,x3);
	x52=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_7,1))(__AGlobSigImpl_7,x3);
	x53=_ASeq_23(x51,x4);
	x54=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AGlobSigImpl_27,2))(__AGlobSigImpl_27,x52,x5);
	PRD(3,4,r.c1);FLD(r.c1,1)=x53;FLD(r.c1,2)=x54;FLD(r.c1,3)=x6;
	r.c2=__AOcError_15;}
      }else{
       CPCLS(__AGlobSigImpl_23,1);
       {OBJ x56;
	x56=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigImpl_23,1))(__AGlobSigImpl_23,x3);
	if(ISTGPRM(x56,1)){
	 CPPRD(__AOcError_15,1);
	 {OBJ x57;
	  PRD1(2,x57);FLD1(x57,1)=x4;FLD1(x57,2)=__ASeq_6;
	  PRD(3,4,r.c1);FLD(r.c1,1)=x57;FLD(r.c1,2)=x5;FLD(r.c1,3)=x6;
	  r.c2=__AOcError_15;}
	}else{
	 HLT("FunDefAnalysis at <186,5-14> : missing else in extendImpl\'FunDefAnalysis:globSig**name**impl**eq**locSig**nat->impl**err");}}}}}}}}
 return r;}
extern OBJ _AFunDefAnalysis_10_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* extendImpl */
{OBJ r;
 {TUP2 t=_AFunDefAnalysis_10(x1,x2,x3,x4,x5,x6);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _AFunDefAnalysis_11(OBJ x1,OBJ x2) /* build */
{TUP2 r;
 CPPRD(__AFunDefAnalysis_12,1);
 CPCLS(__AFunDefAnalysis_15,2);
 CPCLS(__AKnowledge_3,1);
 CPCLS(__AKnowledge_4,1);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;
  x3=_ARepSet_11(x1);
  x4=_ARepSet_11(x2);
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AFunDefAnalysis_15,3))(__AFunDefAnalysis_15,__AKnowledge_4,x4,__AFunDefAnalysis_12);
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AFunDefAnalysis_15,3))(__AFunDefAnalysis_15,__AKnowledge_3,x3,x5);
  {OBJ x13=FLD1(x6,1);OBJ x14=FLD1(x6,2);
   if(EXPRD(x6,1)){
    r.c2=x13;r.c1=x14;
    DSPRDF(x6);
   }else{
    COPY(x14,1);
    r.c2=x13;r.c1=x14;
    FRPRD(x6,1);}}}
 return r;}
extern OBJ _AFunDefAnalysis_11_c(OBJ x1,OBJ x2) /* build */
{OBJ r;
 {TUP2 t=_AFunDefAnalysis_11(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AFunDefAnalysis_13(OBJ x1,OBJ x2,OBJ x3) /* build'13 */
{OBJ r;
 {OBJ x12=FLD1(x3,1);OBJ x13=FLD1(x3,2);
  if(EXPRD(x3,1)){
   {OBJ x14;
    x14=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(x1,3))(x1,x2,x12,x13);
    RSOME(x3,r);FLD1(r,2)=x14;
    ANat_2(x12,FLD1(r,1));}
  }else{
   COPY(x13,1);
   {OBJ x14;
    x14=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(x1,3))(x1,x2,x12,x13);
    FRPRD(x3,1);PRD1(2,r);FLD1(r,2)=x14;
    ANat_2(x12,FLD1(r,1));}}}
 return r;}

extern OBJ _AFunDefAnalysis_14(OBJ x1,OBJ x2,OBJ x3) /* build'14 */
{OBJ r;
 CPCLS(__AFunDefAnalysis_13,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AFunDefAnalysis_13,1))(__AFunDefAnalysis_13,x1);
  r=_ASeqReduce_4(x4,x3,x2);}
 return r;}

extern OBJ _AFunDefAnalysis_15(OBJ x1,OBJ x2) /* build'15 */
{OBJ r;
 CPCLS(__AFunDefAnalysis_14,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AFunDefAnalysis_14,2))(__AFunDefAnalysis_14,x1,x2);
 return r;}

extern OBJ _AFunDefAnalysis_16(OBJ x1,OBJ x2) /* typeIndepAna'16 */
{OBJ r;
 {OBJ x18=FLD1(x1,1);OBJ x19=FLD1(x1,2);OBJ x20=FLD1(x1,3);
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   CPPRD(x18,1);COPY(x19,1);COPY(x20,1);
   FRPRD(x1,1);}
  CPPRD(__ATypeIndepExprAnalysis_2,1);
  {OBJ x21;OBJ x22;OBJ x23;
   x21=_AOcPos_34(x19);
   x22=_ARep_119(x18);
   x23=_AOcError_19(__AOcError_12,__ATypeIndepExprAnalysis_2,x22,x21,x20);
   r=_AOcError_21(x23,x2);}}
 return r;}

extern TUP4 _AFunDefAnalysis_17(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* typeDepAna'17 */
{TUP4 r;
 COPY(x2,1);
 COPY(x3,1);
 CPPRD(x4,1);
 {TUP2 x7;
  x7=_ASubstitution_4(x1,x2,x3,x4,x5);
  if(ISPRM(x7.c1)){
   COPY(x2,1);
   CPPRD(x4,1);
   {OBJ x18;
    PRD(3,8,x18);FLD(x18,1)=x2;FLD(x18,2)=x3;FLD(x18,3)=x4;
    PRD1(2,r.c2);FLD1(r.c2,1)=x4;FLD1(r.c2,2)=__ASeq_6;
    PRD1(2,r.c4);FLD1(r.c4,1)=x18;FLD1(r.c4,2)=__ASeq_6;
    r.c1=x2;r.c3=x5;}
  }else{
   r.c2=x7.c1;r.c3=x7.c2;
   FREE(x3,1);
   FRPRD(x4,1);
   r.c1=x2;r.c4=__ASeq_6;}}
 return r;}
extern OBJ _AFunDefAnalysis_17_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* typeDepAna'17 */
{OBJ r;
 {TUP4 t=_AFunDefAnalysis_17(x1,x2,x3,x4,x5);
  PRD1(4,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;}
 return r;}

extern OBJ _AFunDefAnalysis_19(OBJ x1) /* analyzeFunDef'19 */
{OBJ r;
 CPPRD(__AFunDefAnalysis_18,1);
 r=_ADEBUG_10(__AFunDefAnalysis_18);
 return r;}

extern OBJ _AFunDefAnalysis_20(OBJ x1,OBJ x2,OBJ x3) /* analyzeFunDef'20 */
{OBJ r;
 r=_AAnalyzedGlobSigH_9(x1,__AAnalyzedGlobSig_23,x2);
 return r;}


static OBJ _mt_2_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 {OBJ t4;
  DCCLS(t,1);
  t4=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(t1,t2);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t4,1))(t4,t3);}
 return r;}

init_AFunDefAnalysis()
{
 static int visited=0; if(visited) return; visited=1;
 init_AGlobSigToText();
 init_AUniqueTable();
 init_AImpDecl4SigAna();
 init_ADeclEntry();
 init_APartNameEntry();
 init_AMySeqFun1();
 init_AImpExpEntry();
 init_AOcError();
 init_AName4SigAna();
 init_APragma();
 init_APartName();
 init_AQuadruple();
 init_AAttributes();
 init_AImpl();
 init_ALexem();
 init_ADArray();
 init_AAnalyzedGlobSig();
 init_AUnion2();
 init_ANatMap();
 init_AGlobSig();
 init_APartialSignatures();
 init_AArray();
 init_AGlobPragma();
 init_ATriple();
 init_AName();
 init_ASeqReduce();
 init_AGlobSigImpl();
 init_ASeqMap();
 init_AObjects();
 init_ASeqCompare();
 init_APatterns();
 init_ARepSet();
 init_APair();
 init_AKnowledge();
 init_AMap();
 init_ASubstitution();
 init_ANat();
 init_AReason();
 init_ARep();
 init_ACandidates();
 init_AFct();
 init_ADataDefAnalysis();
 init_AOption();
 init_ATypeIndepExprAnalysis();
 init_AOcPos();
 init_ATypeDepExprAnalysis();
 init_ASeq();
 init_ALhsAnalysis();
 init_ACom();
 init_ADEBUG();
 init_AVoid();
 init_APrioTab();
 init_AChar();
 init_ARelCmp();
 init_AString();
 init_ASetByBST();
 init_AOcOptions();
 init_ABSTree();
 init_AStream();
 init_ATree();
 init_AFile();
 init_ASeqConv();
 init_AInt();
 init_ADenotation();
 init_ASet();
 init_AAbsyFun3();
 init_ABitset();
 init_AAnalyzedGlobSigH();
 init_ATable();
 LCLS(3,_AFunDefAnalysis_20,__AFunDefAnalysis_20);
 LCLS(1,_AFunDefAnalysis_19,__AFunDefAnalysis_19);
 DEN("-ztraceAnalyzeFunDef",__AFunDefAnalysis_18);
 CLS(5,_AFunDefAnalysis_17_c,__AFunDefAnalysis_17);
 CLS(2,_AFunDefAnalysis_16,__AFunDefAnalysis_16);
 CLS(2,_AFunDefAnalysis_15,__AFunDefAnalysis_15);
 CLS(3,_AFunDefAnalysis_14,__AFunDefAnalysis_14);
 CLS(3,_AFunDefAnalysis_13,__AFunDefAnalysis_13);
 CLS(2,_AFunDefAnalysis_11_c,__AFunDefAnalysis_11);
 CLS(6,_AFunDefAnalysis_10_c,__AFunDefAnalysis_10);
 CLS(5,_AFunDefAnalysis_9_c,__AFunDefAnalysis_9);
 CLS(4,_AFunDefAnalysis_8_c,__AFunDefAnalysis_8);
 CLS(3,_AFunDefAnalysis_7,__AFunDefAnalysis_7);
 CLS(3,_AFunDefAnalysis_6,__AFunDefAnalysis_6);
 CLS(2,_AFunDefAnalysis_5,__AFunDefAnalysis_5);
 CLS(4,_AFunDefAnalysis_4_c,__AFunDefAnalysis_4);
 CLS(2,_AFunDefAnalysis_3_c,__AFunDefAnalysis_3);
 CLS(2,_AFunDefAnalysis_2_c,__AFunDefAnalysis_2);
 CLS(1,_AFunDefAnalysis_1,__AFunDefAnalysis_1);
 MTH(2,0,3,_mt_2_0_3);LZYMTH(2,0,3,_mt_2_0_3);
 COPY(__AKnowledge_2,1);
 PRD1(2,__AFunDefAnalysis_12);FLD1(__AFunDefAnalysis_12,1)=__ANat_5;FLD1(__AFunDefAnalysis_12,2)=__AKnowledge_2;}

