

#include "BUILTIN.h"

#include "Array.h"
extern OBJ __AStruct_8;
extern OBJ __AStruct_35;
extern OBJ _AStruct_46(OBJ);extern OBJ __AStruct_46;

#include "Int.h"
extern OBJ __APair_2;
extern OBJ _APair_4(OBJ);extern OBJ __APair_4;
extern TUP2 _APair_8(OBJ);extern OBJ __APair_8;

#include "Nat.h"
extern TUP2 _ARep_7(OBJ,OBJ);extern OBJ __ARep_7;
extern OBJ _ARep_9(OBJ);extern OBJ __ARep_9;
extern OBJ __ARep_13;
extern TUP2 _ARep_16(OBJ,OBJ);extern OBJ __ARep_16;
extern TUP2 _ARep_20(OBJ,OBJ);extern OBJ __ARep_20;
extern OBJ _ARep_24(OBJ,OBJ);extern OBJ __ARep_24;
extern OBJ _ARep_27(OBJ,OBJ);extern OBJ __ARep_27;
extern OBJ __ARep_99;
extern OBJ __ARep_100;
extern TUP2 _ARep_138(OBJ,OBJ,OBJ);extern OBJ __ARep_138;

#include "Char.h"
extern OBJ __AOption_5;
extern OBJ __ASeq_6;
extern OBJ _ASeq_23(OBJ,OBJ);extern OBJ __ASeq_23;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ __APartName_2;
extern OBJ __APartName_11;
extern OBJ __APartName_23;
extern OBJ _APartName_30(OBJ);extern OBJ __APartName_30;
extern OBJ _AImpl_10(OBJ);extern OBJ __AImpl_10;
extern OBJ _AImpl_84(OBJ);extern OBJ __AImpl_84;
extern OBJ _AImpl_92(OBJ);extern OBJ __AImpl_92;
extern OBJ _AImpl_102(OBJ);extern OBJ __AImpl_102;
extern OBJ _AImpl_103(OBJ);extern OBJ __AImpl_103;
extern OBJ _AImpl_153(OBJ);extern OBJ __AImpl_153;
extern OBJ __AOcPos_9;
extern OBJ __AOcPos_35;
extern OBJ __APragma_5;
extern OBJ __AFct_17;

#include "Bitset.h"
extern OBJ __AZOpts_15;
extern OBJ __AZOpts_16;
extern OBJ __APreDef_1;
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;

#include "Denotation.h"
extern OBJ _ADEBUG_2(OBJ,OBJ,OBJ);extern OBJ __ADEBUG_2;
extern OBJ _AMapConv_4(OBJ,OBJ);extern OBJ __AMapConv_4;
extern OBJ _AMapConv_5(OBJ,OBJ);extern OBJ __AMapConv_5;
extern OBJ _ASeqZip_4(OBJ,OBJ,OBJ);extern OBJ __ASeqZip_4;
extern TUP2 _ASeqZip_5(OBJ,OBJ);extern OBJ __ASeqZip_5;
extern OBJ _APostParser_1(OBJ);OBJ __APostParser_1; /* postParser */
extern OBJ _APostParser_3(OBJ);OBJ __APostParser_3; /* doPostParser */
extern TUP2 _APostParser_4(OBJ,OBJ,OBJ,OBJ);OBJ __APostParser_4; /* getInducedSig */
extern TUP2 _APostParser_5(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __APostParser_5; /* getInducedVariantSig */
extern TUP2 _APostParser_6(OBJ,OBJ,OBJ,OBJ);OBJ __APostParser_6; /* getInducedCompSig */
extern TUP2 _APostParser_7(OBJ,OBJ,OBJ);OBJ __APostParser_7; /* nameUnnamed */
extern OBJ _APostParser_8(OBJ);OBJ __APostParser_8; /* insertLawsAsSorts */
extern TUP2 _APostParser_9(OBJ,OBJ);OBJ __APostParser_9; /* codePN */
extern OBJ _APostParser_10(OBJ);OBJ __APostParser_10; /* lawKinds */
extern TUP2 _APostParser_11(OBJ,OBJ);OBJ __APostParser_11; /* lawKindsIm */
extern TUP2 _APostParser_12(OBJ,OBJ);OBJ __APostParser_12; /* lawKindsPN */
extern TUP2 _APostParser_13(OBJ,OBJ);OBJ __APostParser_13; /* lawKindsRel */
extern TUP2 _APostParser_14(OBJ,OBJ);OBJ __APostParser_14; /* lawKindsOrigin */
extern TUP2 _APostParser_15(OBJ,OBJ);OBJ __APostParser_15; /* lawKindsSpecSign */
extern TUP2 _APostParser_16(OBJ,OBJ);OBJ __APostParser_16; /* lawKindsLaw */
extern TUP2 _APostParser_17(OBJ,OBJ);OBJ __APostParser_17; /* lawKinds,1 */
extern TUP2 _APostParser_18(OBJ,OBJ);OBJ __APostParser_18; /* lawKinds,2 */
extern TUP2 _APostParser_19(OBJ,OBJ);OBJ __APostParser_19; /* lawKinds,3 */
extern TUP2 _APostParser_20(OBJ,OBJ);OBJ __APostParser_20; /* lawKinds,4 */
extern TUP2 _APostParser_21(OBJ,OBJ);OBJ __APostParser_21; /* lawKindsSortImpl */
extern TUP2 _APostParser_22(OBJ,OBJ);OBJ __APostParser_22; /* lawKinds,5 */
extern TUP2 _APostParser_23(OBJ,OBJ);OBJ __APostParser_23; /* lawKinds,6 */
extern TUP2 _APostParser_24(OBJ,OBJ);OBJ __APostParser_24; /* lawKindsEq */
extern TUP2 _APostParser_25(OBJ,OBJ);OBJ __APostParser_25; /* lawKindsGlobPragma */
extern TUP2 _APostParser_26(OBJ,OBJ);OBJ __APostParser_26; /* lawKinds,7 */
extern OBJ _APostParser_27(OBJ);OBJ __APostParser_27; /* doProofHeads */
extern TUP2 _APostParser_28(OBJ,OBJ);OBJ __APostParser_28; /* proofFun1 */
extern OBJ _APostParser_29(OBJ,OBJ);OBJ __APostParser_29; /* proofFun2 */
extern TUP2 _APostParser_30(OBJ,OBJ);OBJ __APostParser_30; /* proofPragma */
extern OBJ _APostParser_31(OBJ);OBJ __APostParser_31; /* doProofBodies */
extern TUP2 _APostParser_32(OBJ,OBJ);OBJ __APostParser_32; /* proofDef */
extern TUP2 _APostParser_33(OBJ,OBJ,OBJ);OBJ __APostParser_33; /* codeP */
extern OBJ _APostParser_34(OBJ);OBJ __APostParser_34; /* doSpecs */
extern TUP2 _APostParser_35(OBJ,OBJ);OBJ __APostParser_35; /* nameSpec */
OBJ __APostParser_36; /* getInducedVariantSig'36 */
OBJ __APostParser_37; /* nameUnnamed'37 */
extern OBJ _APostParser_38(OBJ,OBJ);OBJ __APostParser_38; /* insertLawsAsSorts'38 */
OBJ __APostParser_39; /* proofFun2'39 */
OBJ __APostParser_40; /* proofFun2'40 */
OBJ __APostParser_41; /* proofFun2'41 */
OBJ __APostParser_42; /* proofFun2'42 */
OBJ __APostParser_43; /* proofPragma'43 */
extern TUP2 _APostParser_44(OBJ,OBJ);OBJ __APostParser_44; /* proofPragma'44 */
extern TUP2 _APostParser_45(OBJ,OBJ);OBJ __APostParser_45; /* proofPragma'45 */
OBJ __APostParser_46; /* proofDef'46 */
OBJ __APostParser_47; /* proofDef'47 */
OBJ __APostParser_48; /* proofDef'48 */
OBJ __APostParser_49; /* nameSpec'49 */
extern OBJ _APostParser_50(OBJ,OBJ);OBJ __APostParser_50; /* postParser'50 */
extern OBJ _APostParser_51(OBJ,OBJ);OBJ __APostParser_51; /* postParser'51 */

extern OBJ _APostParser_1(OBJ x1) /* postParser */
{OBJ r;
 {OBJ x2;OBJ x3;OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  x2=_APostParser_3(x1);
  x3=_APostParser_8(x2);
  x4=_APostParser_10(x3);
  x5=_APostParser_27(x4);
  x6=_APostParser_31(x5);
  x7=_APostParser_34(x6);
  {OBJ x18=FLD1(x7,1);OBJ x19=FLD1(x7,2);
   if(EXPRD(x7,1)){
    COPY(x18,1);CPPRD(x19,1);
    CPCLS(__APostParser_50,1);
    CPCLS(__APostParser_51,1);
    {OBJ x20;OBJ x21;OBJ x22;
     x20=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_51,1))(__APostParser_51,x19);
     x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_50,1))(__APostParser_50,x18);
     x22=_ADEBUG_2(__AZOpts_16,x20,x19);
     RSOME(x7,r);FLD1(r,2)=x22;
     FLD1(r,1)=_ADEBUG_2(__AZOpts_15,x21,x18);}
   }else{
    COPY(x18,2);CPPRD(x19,2);
    CPCLS(__APostParser_50,1);
    CPCLS(__APostParser_51,1);
    {OBJ x20;OBJ x21;OBJ x22;
     x20=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_51,1))(__APostParser_51,x19);
     x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_50,1))(__APostParser_50,x18);
     x22=_ADEBUG_2(__AZOpts_16,x20,x19);
     FRPRD(x7,1);PRD1(2,r);FLD1(r,2)=x22;
     FLD1(r,1)=_ADEBUG_2(__AZOpts_15,x21,x18);}}}}
 return r;}

extern OBJ _APostParser_3(OBJ x1) /* doPostParser */
{OBJ r;
 {OBJ x325=FLD1(x1,1);OBJ x326=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x325,1);CPPRD(x326,1);}
  if(ISPRM(x325)){
   if(x_x1){
    RSOME(x1,r);
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x325;FLD1(r,2)=x326;}
  }else{
   {OBJ x327=FLD1(x325,1);OBJ x328=FLD1(x325,2);OBJ x329=FLD1(x325,3);OBJ x330=FLD1(x325,4);OBJ x331=FLD1(x325,5);OBJ x332=FLD1(x325,6);OBJ x333=FLD1(x325,7);OBJ x334=FLD1(x325,8);OBJ x335=FLD1(x325,9);OBJ x336=FLD1(x325,10);OBJ x337=FLD1(x325,11);OBJ x338=FLD1(x325,12);OBJ x339=FLD1(x325,13);OBJ x340=FLD1(x325,14);FLAG x_x325=EXPRD(x325,1);
    if(x_x325){
    }else{
     COPY(x327,1);COPY(x328,1);COPY(x329,1);COPY(x330,1);COPY(x331,1);COPY(x332,1);COPY(x333,1);COPY(x334,1);COPY(x335,1);COPY(x336,1);COPY(x337,1);COPY(x338,1);COPY(x339,1);}
    {OBJ x347;OBJ x342;OBJ x348;OBJ x350;OBJ x351;OBJ x353;OBJ x354;
     if(ISPRM(x327)){
      HLT("Struct at <unknown> : undefined selection structIde\'Struct:origin->rep");
     }else{
      {OBJ x343=FLD1(x327,1);
       CPPRD(x343,1);
       x347=x343;
       CPCLS(__APostParser_4,1);
       COPY(__APreDef_1,1);}}
     if(x_x1){
      RSOME(x1,x342);FLD1(x342,1)=x326;FLD1(x342,2)=x329;
     }else{
      FRPRD(x1,1);PRD1(2,x342);FLD1(x342,1)=x326;FLD1(x342,2)=x329;}
     x348=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__APostParser_4,2))(__APostParser_4,__APreDef_1,x347);
     CPCLS(x348,1);
     {TUP2 t=_ASeqMapEnv_4(x348,x342,x333);
      x350=t.c1;
      x351=t.c2;}
     {TUP2 t=_ASeqMapEnv_4(x348,x350,x331);
      x353=t.c1;
      x354=t.c2;}
     {OBJ x355=FLD1(x353,1);OBJ x356=FLD1(x353,2);
      if(EXPRD(x353,1)){
       {TUP2 x358;OBJ x360;
	x358=_APostParser_7(x355,__ASeq_6,x334);
	if(x_x325){
	 RSOME(x325,x360);FLD1(x360,3)=x356;FLD1(x360,5)=x354;FLD1(x360,7)=x351;FLD1(x360,8)=x358.c2;
	}else{
	 FRPRD(x325,1);PRD1(14,x360);FLD1(x360,1)=x327;FLD1(x360,2)=x328;FLD1(x360,3)=x356;FLD1(x360,4)=x330;FLD1(x360,5)=x354;FLD1(x360,6)=x332;FLD1(x360,7)=x351;FLD1(x360,8)=x358.c2;FLD1(x360,9)=x335;FLD1(x360,10)=x336;FLD1(x360,11)=x337;FLD1(x360,12)=x338;FLD1(x360,13)=x339;FLD1(x360,14)=x340;}
	RSOME(x353,r);FLD1(r,1)=x360;FLD1(r,2)=x358.c1;}
      }else{
       CPPRD(x355,1);COPY(x356,1);
       {TUP2 x358;OBJ x360;
	x358=_APostParser_7(x355,__ASeq_6,x334);
	if(x_x325){
	 RSOME(x325,x360);FLD1(x360,3)=x356;FLD1(x360,5)=x354;FLD1(x360,7)=x351;FLD1(x360,8)=x358.c2;
	}else{
	 FRPRD(x325,1);PRD1(14,x360);FLD1(x360,1)=x327;FLD1(x360,2)=x328;FLD1(x360,3)=x356;FLD1(x360,4)=x330;FLD1(x360,5)=x354;FLD1(x360,6)=x332;FLD1(x360,7)=x351;FLD1(x360,8)=x358.c2;FLD1(x360,9)=x335;FLD1(x360,10)=x336;FLD1(x360,11)=x337;FLD1(x360,12)=x338;FLD1(x360,13)=x339;FLD1(x360,14)=x340;}
	FRPRD(x353,1);PRD1(2,r);FLD1(r,1)=x360;FLD1(r,2)=x358.c1;}}}}}}}
 return r;}

extern TUP2 _APostParser_4(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* getInducedSig */
{TUP2 r;
 CPPRD(x2,1);
 {OBJ x9;
  PRD1(1,x9);FLD1(x9,1)=x2;
  {OBJ x76=FLD1(x4,1);OBJ x77=FLD1(x4,2);OBJ x78=FLD1(x4,3);FLAG x_x4=EXPRD(x4,1);
   if(x_x4){
   }else{
    COPY(x76,1);COPY(x77,1);COPY(x78,1);}
   if(ISPRM(x76)){
    HLT("PartName at <unknown> : undefined selection pos\'PartName:partName->pos");
   }else{
    {OBJ x100=FLD1(x76,1);OBJ x102=FLD1(x76,3);OBJ x106=FLD1(x76,7);
     CPPRD(x100,1);COPY(x102,1);COPY(x106,1);
     CPCLS(__APostParser_5,1);
     COPY(__AOcPos_35,1);
     COPY(__APragma_5,1);
     {OBJ x108;OBJ x109;TUP2 x111;
      PRD1(7,x108);FLD1(x108,1)=x100;FLD1(x108,2)=x9;FLD1(x108,3)=x102;FLD1(x108,4)=__AOcPos_35;FLD1(x108,5)=__APartName_11;FLD1(x108,6)=__APragma_5;FLD1(x108,7)=x106;
      COPY(x108,1);
      x109=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__APostParser_5,3))(__APostParser_5,x1,x108,x2);
      x111=_ASeqMapEnv_4(x109,x3,x77);
      {OBJ x113=FLD1(x111.c1,1);OBJ x114;FLAG x_x111_c1=EXPRD(x111.c1,1);
       if(x_x111_c1){
       }else{
	x114=FLD1(x111.c1,2);CPPRD(x113,1);COPY(x114,1);}
       {OBJ x116;
	if(x_x4){
	 RSOME(x4,r.c2);FLD1(r.c2,2)=x111.c2;
	}else{
	 FRPRD(x4,1);PRD1(3,r.c2);FLD1(r.c2,1)=x76;FLD1(r.c2,2)=x111.c2;FLD1(r.c2,3)=x78;}
	if(x_x111_c1){
	 RSOME(x111.c1,x116);FLD1(x116,1)=x108;
	}else{
	 FRPRD(x111.c1,1);PRD1(2,x116);FLD1(x116,1)=x108;FLD1(x116,2)=x114;}
	PRD1(2,r.c1);FLD1(r.c1,1)=x113;FLD1(r.c1,2)=x116;}}}}}}}
 return r;}
extern OBJ _APostParser_4_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* getInducedSig */
{OBJ r;
 {TUP2 t=_APostParser_4(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_5(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* getInducedVariantSig */
{TUP2 r;
 CPCLS(__APostParser_6,1);
 COPY(x2,1);
 CPPRD(x3,1);
 {OBJ x6;OBJ x17;OBJ x18;OBJ x19;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__APostParser_6,2))(__APostParser_6,x2,x3);
  PRD1(1,x17);FLD1(x17,1)=x3;
  PRD(1,0,x18);FLD(x18,1)=x2;
  PRD(1,0,x19);FLD(x19,1)=x1;
  {OBJ x132=FLD1(x5,1);OBJ x134=FLD1(x5,3);OBJ x135=FLD1(x5,4);FLAG x_x5=EXPRD(x5,1);
   if(x_x5){
   }else{
    COPY(x132,1);COPY(x134,1);COPY(x135,1);}
   COPY(x18,1);
   {OBJ x136;
    PRD(2,2,x136);FLD(x136,1)=x18;FLD(x136,2)=x19;
    if(ISPRM(x132)){
     HLT("PartName at <unknown> : undefined selection pos\'PartName:partName->pos");
    }else{
     {OBJ x182=FLD1(x132,1);OBJ x188=FLD1(x132,7);
      CPPRD(x182,1);COPY(x188,1);
      {OBJ x190;
       PRD1(1,x190);FLD1(x190,1)=x136;
       {OBJ x192=FLD1(x182,2);
	CPPRD(x192,1);
	COPY(x134,1);
	CPPRD(__APostParser_36,1);
	CPCLS(__AImpl_153,1);
	{OBJ x194;TUP2 x195;OBJ x197;
	 ADenotation_4(x192,__APostParser_36,x194);
	 x195=_ASeqMapEnv_4(x6,x4,x134);
	 x197=_ASeqMap_3(__AImpl_153,x195.c2);
	 {OBJ x198=FLD1(x195.c1,1);OBJ x199=FLD1(x195.c1,2);FLAG x_x195_c1=EXPRD(x195.c1,1);
	  if(x_x195_c1){
	  }else{
	   CPPRD(x198,1);COPY(x199,1);}
	  {OBJ x202;OBJ x215;OBJ x216;OBJ x217;OBJ x218;OBJ x219;OBJ x220;OBJ x221;OBJ x222;OBJ x223;
	   if(ISPRM(x197)){
	    x202=__ABUILTIN_5;
	   }else{
	    x202=__ABUILTIN_3;}
	   if(ISTGPRM(x202,1)){
	    FREE(x197,1);
	    COPY(x17,1);
	    COPY(x188,1);
	    COPY(__AOcPos_35,2);
	    COPY(__APragma_5,2);
	    PRD1(1,x215);FLD1(x215,1)=x18;
	   }else{
	    {OBJ x206;
	     if(ISPRM(x197)){
	      HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	     }else{
	      {OBJ x205=FLD1(x197,2);
	       COPY(x205,1);
	       x206=x205;}}
	     if(ISPRM(x206)){
	      {OBJ x209;OBJ x210;
	       if(ISPRM(x197)){
		HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	       }else{
		{OBJ x207=FLD1(x197,1);
		 if(EXPRD(x197,1)){
		  x209=x207;
		  FREE(FLD1(x197,2),1);DSPRDF(x197);
		 }else{
		  COPY(x207,1);
		  x209=x207;
		  FRPRD(x197,1);}
		 COPY(x17,1);
		 COPY(x188,1);
		 COPY(__AOcPos_35,2);
		 COPY(__APragma_5,2);}}
	       PRD(2,2,x210);FLD(x210,1)=x209;FLD(x210,2)=x18;
	       PRD1(1,x215);FLD1(x215,1)=x210;}
	     }else{
	      if(EXPRD(x206,1)){
	       DSPRD(x206);
	      }else{
	       DCPRD(x206,1);}
	      COPY(x17,1);
	      COPY(x188,1);
	      COPY(__AOcPos_35,2);
	      COPY(__APragma_5,2);
	      {OBJ x213;OBJ x214;
	       PRD(1,1,x213);FLD(x213,1)=x197;
	       PRD(2,2,x214);FLD(x214,1)=x213;FLD(x214,2)=x18;
	       PRD1(1,x215);FLD1(x215,1)=x214;}}}}
	   PRD1(7,x216);FLD1(x216,1)=x182;FLD1(x216,2)=x17;FLD1(x216,3)=__ASeq_6;FLD1(x216,4)=__AOcPos_35;FLD1(x216,5)=x215;FLD1(x216,6)=__APragma_5;FLD1(x216,7)=x188;
	   {TUP2 t=_ARep_138(x198,x194,__ABUILTIN_3);
	    x217=t.c1;
	    x218=t.c2;}
	   PRD1(7,x219);FLD1(x219,1)=x218;FLD1(x219,2)=x17;FLD1(x219,3)=__ASeq_6;FLD1(x219,4)=__AOcPos_35;FLD1(x219,5)=x190;FLD1(x219,6)=__APragma_5;FLD1(x219,7)=x188;
	   COPY(x219,1);
	   if(x_x5){
	    RSOME(x5,r.c2);FREE(FLD1(r.c2,2),1);FLD1(r.c2,2)=x219;
	   }else{
	    FRPRD(x5,1);PRD1(4,r.c2);FLD1(r.c2,1)=x132;FLD1(r.c2,2)=x219;FLD1(r.c2,3)=x134;FLD1(r.c2,4)=x135;}
	   if(x_x195_c1){
	    RSOME(x195.c1,x221);FLD1(x221,1)=x219;
	   }else{
	    FRPRD(x195.c1,1);PRD1(2,x221);FLD1(x221,1)=x219;FLD1(x221,2)=x199;}
	   PRD1(2,x222);FLD1(x222,1)=x216;FLD1(x222,2)=x221;
	   PRD1(2,r.c1);FLD1(r.c1,1)=x217;FLD1(r.c1,2)=x222;}}}}}}}}}}
 return r;}
extern OBJ _APostParser_5_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* getInducedVariantSig */
{OBJ r;
 {TUP2 t=_APostParser_5(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* getInducedCompSig */
{TUP2 r;
 {OBJ x9;OBJ x10;
  PRD1(1,x9);FLD1(x9,1)=x2;
  PRD(1,0,x10);FLD(x10,1)=x1;
  {OBJ x39=FLD1(x4,1);OBJ x40=FLD1(x4,2);OBJ x41=FLD1(x4,3);FLAG x_x4=EXPRD(x4,1);
   if(x_x4){
   }else{
    COPY(x39,1);COPY(x40,1);COPY(x41,1);}
   {OBJ x62=FLD1(x3,1);OBJ x63=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
    }else{
     CPPRD(x62,1);COPY(x63,1);}
    {OBJ x72;OBJ x64;OBJ x73;OBJ x74;OBJ x75;OBJ x76;OBJ x77;
     if(ISPRM(x39)){
      HLT("PartName at <unknown> : undefined selection ide\'PartName:partName->rep");
     }else{
      {OBJ x65=FLD1(x39,1);
       if(EXPRD(x39,1)){
	x72=x65;
	FLD1(x39,1)=NIL;DSPRD(x39);
       }else{
	CPPRD(x65,1);
	x72=x65;
	FRPRD(x39,1);}
       COPY(x40,1);
       COPY(x41,1);
       COPY(__AOcPos_35,1);
       COPY(__APragma_5,1);}}
     PRD(2,2,x64);FLD(x64,1)=x10;FLD(x64,2)=x40;
     PRD1(1,x73);FLD1(x73,1)=x64;
     PRD1(7,x74);FLD1(x74,1)=x72;FLD1(x74,2)=x9;FLD1(x74,3)=__ASeq_6;FLD1(x74,4)=__AOcPos_35;FLD1(x74,5)=x73;FLD1(x74,6)=__APragma_5;FLD1(x74,7)=x41;
     COPY(x74,1);
     if(x_x3){
      RSOME(x3,x75);FLD1(x75,1)=x74;
     }else{
      FRPRD(x3,1);PRD1(2,x75);FLD1(x75,1)=x74;FLD1(x75,2)=x63;}
     if(x_x4){
      RSOME(x4,r.c2);FLD1(r.c2,1)=x74;
     }else{
      FRPRD(x4,1);PRD1(3,r.c2);FLD1(r.c2,1)=x74;FLD1(r.c2,2)=x40;FLD1(r.c2,3)=x41;}
     PRD1(2,r.c1);FLD1(r.c1,1)=x62;FLD1(r.c1,2)=x75;}}}}
 return r;}
extern OBJ _APostParser_6_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* getInducedCompSig */
{OBJ r;
 {TUP2 t=_APostParser_6(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_7(register OBJ x1,register OBJ x2,register OBJ x3) /* nameUnnamed */
{TUP2 r;
 for(;;){
  if(ISPRM(x3)){
   r.c1=x1;r.c2=x2;
  }else{
   {OBJ x50=FLD1(x3,1);OBJ x51=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
    if(x_x3){
    }else{
     CPPRD(x50,1);COPY(x51,1);}
    {OBJ x53=FLD1(x50,1);OBJ x54=FLD1(x50,2);OBJ x55=FLD1(x50,3);
     CPPRD(x53,1);CPPRD(x54,1);COPY(x55,1);
     CPPRD(__ARep_13,1);
     {OBJ x56;
      x56=_ARep_24(x53,__ARep_13);
      if(ISTGPRM(x56,1)){
       if(EXPRD(x50,1)){
	DSPRD(x50);
       }else{
	DCPRD(x50,1);}
       CPPRD(__APostParser_37,1);
       {TUP2 x58;OBJ x60;OBJ x61;
	x58=_ARep_7(x1,__APostParser_37);
	PRD1(3,x60);FLD1(x60,1)=x58.c2;FLD1(x60,2)=x54;FLD1(x60,3)=x55;
	if(x_x3){
	 RSOME(x3,x61);FLD1(x61,1)=x60;FLD1(x61,2)=x2;
	}else{
	 FRPRD(x3,1);PRD1(2,x61);FLD1(x61,1)=x60;FLD1(x61,2)=x2;}
	x1=x58.c1;x2=x61;x3=x51;continue;}
      }else{
       FRPRD(x54,1);
       FREE(x55,1);
       {OBJ x62;
	if(x_x3){
	 RSOME(x3,x62);FLD1(x62,2)=x2;
	}else{
	 FRPRD(x3,1);PRD1(2,x62);FLD1(x62,1)=x50;FLD1(x62,2)=x2;}
	x2=x62;x3=x51;continue;}}}}}}
  break;}
 return r;}
extern OBJ _APostParser_7_c(OBJ x1,OBJ x2,OBJ x3) /* nameUnnamed */
{OBJ r;
 {TUP2 t=_APostParser_7(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_8(OBJ x1) /* insertLawsAsSorts */
{OBJ r;
 {OBJ x306=FLD1(x1,1);OBJ x307=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x306,1);CPPRD(x307,1);}
  if(ISPRM(x306)){
   if(x_x1){
    RSOME(x1,r);FLD1(r,1)=__AStruct_35;
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=__AStruct_35;FLD1(r,2)=x307;}
  }else{
   {OBJ x308=FLD1(x306,1);OBJ x309;OBJ x310=FLD1(x306,3);OBJ x311;OBJ x312;OBJ x313;OBJ x314;OBJ x315=FLD1(x306,8);OBJ x316;OBJ x317;OBJ x318;OBJ x319;OBJ x320;OBJ x321;FLAG x_x306=EXPRD(x306,1);
    if(x_x306){
     COPY(x308,1);COPY(x315,1);
    }else{
     x309=FLD1(x306,2);x311=FLD1(x306,4);x312=FLD1(x306,5);x313=FLD1(x306,6);x314=FLD1(x306,7);x316=FLD1(x306,9);x317=FLD1(x306,10);x318=FLD1(x306,11);x319=FLD1(x306,12);x320=FLD1(x306,13);x321=FLD1(x306,14);COPY(x308,2);COPY(x309,1);COPY(x310,1);COPY(x311,1);COPY(x312,1);COPY(x313,1);COPY(x314,1);COPY(x315,2);COPY(x316,1);COPY(x317,1);COPY(x318,1);COPY(x319,1);COPY(x320,1);}
    CPCLS(__APostParser_9,1);
    CPCLS(__APostParser_38,1);
    {OBJ x323;OBJ x324;TUP2 x326;OBJ x328;OBJ x329;
     x323=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_38,1))(__APostParser_38,x308);
     x324=_ASeqMap_3(x323,x315);
     x326=_ASeqMapEnv_4(__APostParser_9,x307,x324);
     x328=_ASeq_26(x310,x326.c2);
     if(x_x306){
      RSOME(x306,x329);FLD1(x329,3)=x328;
     }else{
      FRPRD(x306,1);PRD1(14,x329);FLD1(x329,1)=x308;FLD1(x329,2)=x309;FLD1(x329,3)=x328;FLD1(x329,4)=x311;FLD1(x329,5)=x312;FLD1(x329,6)=x313;FLD1(x329,7)=x314;FLD1(x329,8)=x315;FLD1(x329,9)=x316;FLD1(x329,10)=x317;FLD1(x329,11)=x318;FLD1(x329,12)=x319;FLD1(x329,13)=x320;FLD1(x329,14)=x321;}
     if(x_x1){
      RSOME(x1,r);FLD1(r,1)=x329;FLD1(r,2)=x326.c1;
     }else{
      FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x329;FLD1(r,2)=x326.c1;}}}}}
 return r;}

extern TUP2 _APostParser_9(OBJ x1,OBJ x2) /* codePN */
{TUP2 r;
 if(ISPRM(x2)){
  r.c1=x1;r.c2=x2;
 }else{
  {OBJ x94=FLD1(x2,1);OBJ x95;OBJ x96;OBJ x97;OBJ x98;OBJ x99;OBJ x100;
   if(EXPRD(x2,1)){
    {
     RSOME(x2,r.c2);
     {TUP2 t=_ARep_16(x1,x94);
      r.c1=t.c1;
      FLD1(r.c2,1)=t.c2;}}
   }else{
    x95=FLD1(x2,2);x96=FLD1(x2,3);x97=FLD1(x2,4);x98=FLD1(x2,5);x99=FLD1(x2,6);x100=FLD1(x2,7);CPPRD(x94,1);COPY(x95,1);COPY(x96,1);COPY(x97,1);COPY(x98,1);COPY(x99,1);COPY(x100,1);
    {
     FRPRD(x2,1);PRD1(7,r.c2);FLD1(r.c2,2)=x95;FLD1(r.c2,3)=x96;FLD1(r.c2,4)=x97;FLD1(r.c2,5)=x98;FLD1(r.c2,6)=x99;FLD1(r.c2,7)=x100;
     {TUP2 t=_ARep_16(x1,x94);
      r.c1=t.c1;
      FLD1(r.c2,1)=t.c2;}}}}}
 return r;}
extern OBJ _APostParser_9_c(OBJ x1,OBJ x2) /* codePN */
{OBJ r;
 {TUP2 t=_APostParser_9(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_10(OBJ x1) /* lawKinds */
{OBJ r;
 {OBJ x352=FLD1(x1,1);OBJ x353=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x352,1);CPPRD(x353,1);}
  if(ISPRM(x352)){
   if(x_x1){
    RSOME(x1,r);FLD1(r,1)=__AStruct_35;
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=__AStruct_35;FLD1(r,2)=x353;}
  }else{
   {OBJ x354=FLD1(x352,1);OBJ x355=FLD1(x352,2);OBJ x356;OBJ x357=FLD1(x352,4);OBJ x358=FLD1(x352,5);OBJ x359=FLD1(x352,6);OBJ x360=FLD1(x352,7);OBJ x361=FLD1(x352,8);OBJ x362=FLD1(x352,9);OBJ x363;OBJ x364;OBJ x365=FLD1(x352,12);OBJ x366;OBJ x367;FLAG x_x352=EXPRD(x352,1);
    if(x_x352){
    }else{
     x356=FLD1(x352,3);x363=FLD1(x352,10);x364=FLD1(x352,11);x366=FLD1(x352,13);x367=FLD1(x352,14);COPY(x354,1);COPY(x355,1);COPY(x356,1);COPY(x357,1);COPY(x358,1);COPY(x359,1);COPY(x360,1);COPY(x361,1);COPY(x362,1);COPY(x363,1);COPY(x364,1);COPY(x365,1);COPY(x366,1);}
    CPCLS(__APostParser_11,1);
    CPCLS(__APostParser_13,1);
    CPCLS(__APostParser_15,1);
    CPCLS(__APostParser_16,1);
    CPCLS(__APostParser_21,2);
    CPCLS(__APostParser_24,1);
    CPCLS(__APostParser_25,1);
    CPCLS(__ARep_27,2);
    {OBJ x370;TUP2 x371;TUP2 x374;OBJ x376;TUP2 x378;TUP2 x381;TUP2 x384;TUP2 x387;TUP2 x390;TUP2 x393;TUP2 x396;OBJ x398;
     x370=_AMapConv_4(__ARep_27,x365);
     x371=_ASeqMapEnv_4(__APostParser_11,x353,x355);
     x374=_ASeqMapEnv_4(__APostParser_13,x371.c1,x370);
     x376=_AMapConv_5(__ARep_27,x374.c2);
     x378=_ASeqMapEnv_4(__APostParser_15,x374.c1,x357);
     x381=_ASeqMapEnv_4(__APostParser_21,x378.c1,x358);
     x384=_ASeqMapEnv_4(__APostParser_24,x381.c1,x359);
     x387=_ASeqMapEnv_4(__APostParser_21,x384.c1,x360);
     x390=_ASeqMapEnv_4(__APostParser_16,x387.c1,x361);
     x393=_ASeqMapEnv_4(__APostParser_25,x390.c1,x362);
     x396=_APostParser_14(x393.c1,x354);
     if(x_x352){
      RSOME(x352,x398);FLD1(x398,1)=x396.c2;FLD1(x398,2)=x371.c2;FLD1(x398,4)=x378.c2;FLD1(x398,5)=x381.c2;FLD1(x398,6)=x384.c2;FLD1(x398,7)=x387.c2;FLD1(x398,8)=x390.c2;FLD1(x398,9)=x393.c2;FLD1(x398,12)=x376;
     }else{
      FRPRD(x352,1);PRD1(14,x398);FLD1(x398,1)=x396.c2;FLD1(x398,2)=x371.c2;FLD1(x398,3)=x356;FLD1(x398,4)=x378.c2;FLD1(x398,5)=x381.c2;FLD1(x398,6)=x384.c2;FLD1(x398,7)=x387.c2;FLD1(x398,8)=x390.c2;FLD1(x398,9)=x393.c2;FLD1(x398,10)=x363;FLD1(x398,11)=x364;FLD1(x398,12)=x376;FLD1(x398,13)=x366;FLD1(x398,14)=x367;}
     if(x_x1){
      RSOME(x1,r);FLD1(r,1)=x398;FLD1(r,2)=x396.c1;
     }else{
      FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x398;FLD1(r,2)=x396.c1;}}}}}
 return r;}

extern TUP2 _APostParser_11(OBJ x1,OBJ x2) /* lawKindsIm */
{TUP2 r;
 if(ISTGPRD(x2,0)){
  {OBJ x31=FLD(x2,1);
   if(EXPRD(x2,1)){
    {
     RPRD(x2,r.c2);
     {TUP2 t=_APostParser_14(x1,x31);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}
   }else{
    COPY(x31,1);
    {
     FRPRD(x2,1);PRD(1,0,r.c2);
     {TUP2 t=_APostParser_14(x1,x31);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}}}
 }else{
  {OBJ x36=FLD(x2,1);OBJ x37=FLD(x2,2);
   if(EXPRD(x2,1)){
    CPCLS(__APostParser_12,1);
    {TUP2 x39;
     x39=_ASeqMapEnv_4(__APostParser_12,x1,x37);
     RPRD(x2,r.c2);FLD(r.c2,2)=x39.c2;
     {TUP2 t=_APostParser_14(x39.c1,x36);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}
   }else{
    COPY(x36,1);COPY(x37,1);
    CPCLS(__APostParser_12,1);
    {TUP2 x39;
     x39=_ASeqMapEnv_4(__APostParser_12,x1,x37);
     FRPRD(x2,1);PRD(2,1,r.c2);FLD(r.c2,2)=x39.c2;
     {TUP2 t=_APostParser_14(x39.c1,x36);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}}}}
 return r;}
extern OBJ _APostParser_11_c(OBJ x1,OBJ x2) /* lawKindsIm */
{OBJ r;
 {TUP2 t=_APostParser_11(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_12(OBJ x1,OBJ x2) /* lawKindsPN */
{TUP2 r;
 if(ISPRM(x2)){
  r.c1=x1;r.c2=__APartName_23;
 }else{
  {OBJ x109=FLD1(x2,1);OBJ x110=FLD1(x2,2);OBJ x111=FLD1(x2,3);OBJ x112=FLD1(x2,4);OBJ x113=FLD1(x2,5);OBJ x114=FLD1(x2,6);OBJ x115=FLD1(x2,7);FLAG x_x2=EXPRD(x2,1);
   if(x_x2){
   }else{
    CPPRD(x109,1);COPY(x110,1);COPY(x111,1);COPY(x112,1);COPY(x113,1);COPY(x114,1);COPY(x115,1);}
   {OBJ x118;OBJ x119;OBJ x120;
    if(ISPRM(x113)&&(ISTGPRM(x113,2))){
     CPCLS(__APostParser_12,1);
     x118=__ABUILTIN_5;
    }else{
     CPCLS(__APostParser_12,1);
     x118=__ABUILTIN_3;}
    {TUP2 t=_ASeqMapEnv_4(__APostParser_12,x1,x111);
     x119=t.c1;
     x120=t.c2;}
    if(ISTGPRM(x118,1)){
     FREE(x113,1);
     {
      if(x_x2){
       RSOME(x2,r.c2);FLD1(r.c2,3)=x120;FLD1(r.c2,5)=__APartName_11;
      }else{
       FRPRD(x2,1);PRD1(7,r.c2);FLD1(r.c2,2)=x110;FLD1(r.c2,3)=x120;FLD1(r.c2,4)=x112;FLD1(r.c2,5)=__APartName_11;FLD1(r.c2,6)=x114;FLD1(r.c2,7)=x115;}
      {TUP2 t=_ARep_16(x119,x109);
       r.c1=t.c1;
       FLD1(r.c2,1)=t.c2;}}
    }else{
     if(ISPRM(x113)&&(ISTGPRM(x113,3))){
      {
       if(x_x2){
	RSOME(x2,r.c2);FLD1(r.c2,3)=x120;FLD1(r.c2,5)=__APartName_2;
       }else{
	FRPRD(x2,1);PRD1(7,r.c2);FLD1(r.c2,2)=x110;FLD1(r.c2,3)=x120;FLD1(r.c2,4)=x112;FLD1(r.c2,5)=__APartName_2;FLD1(r.c2,6)=x114;FLD1(r.c2,7)=x115;}
       {TUP2 t=_ARep_20(x119,x109);
	r.c1=t.c1;
	FLD1(r.c2,1)=t.c2;}}
     }else{
      r.c1=x119;
      if(x_x2){
       RSOME(x2,r.c2);FLD1(r.c2,3)=x120;
      }else{
       FRPRD(x2,1);PRD1(7,r.c2);FLD1(r.c2,1)=x109;FLD1(r.c2,2)=x110;FLD1(r.c2,3)=x120;FLD1(r.c2,4)=x112;FLD1(r.c2,5)=x113;FLD1(r.c2,6)=x114;FLD1(r.c2,7)=x115;}}}}}}
 return r;}
extern OBJ _APostParser_12_c(OBJ x1,OBJ x2) /* lawKindsPN */
{OBJ r;
 {TUP2 t=_APostParser_12(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_13(OBJ x1,OBJ x2) /* lawKindsRel */
{TUP2 r;
 {OBJ x13;OBJ x14=FLD1(x2,2);
  if(EXPRD(x2,1)){
   CPCLS(__APostParser_11,1);
   {
    RSOME(x2,r.c2);
    {TUP2 t=_ASeqMapEnv_4(__APostParser_11,x1,x14);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x13=FLD1(x2,1);CPPRD(x13,1);COPY(x14,1);
   CPCLS(__APostParser_11,1);
   {
    FRPRD(x2,1);PRD1(2,r.c2);FLD1(r.c2,1)=x13;
    {TUP2 t=_ASeqMapEnv_4(__APostParser_11,x1,x14);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_13_c(OBJ x1,OBJ x2) /* lawKindsRel */
{OBJ r;
 {TUP2 t=_APostParser_13(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_14(OBJ x1,OBJ x2) /* lawKindsOrigin */
{TUP2 r;
 if(ISPRM(x2)){
  r.c1=x1;r.c2=__AStruct_8;
 }else{
  {OBJ x46;OBJ x47;OBJ x48=FLD1(x2,3);OBJ x49;
   if(EXPRD(x2,1)){
    CPCLS(__APostParser_12,1);
    {
     RSOME(x2,r.c2);
     {TUP2 t=_ASeqMapEnv_4(__APostParser_12,x1,x48);
      r.c1=t.c1;
      FLD1(r.c2,3)=t.c2;}}
   }else{
    x46=FLD1(x2,1);x47=FLD1(x2,2);x49=FLD1(x2,4);CPPRD(x46,1);COPY(x47,1);COPY(x48,1);COPY(x49,1);
    CPCLS(__APostParser_12,1);
    {
     FRPRD(x2,1);PRD1(4,r.c2);FLD1(r.c2,1)=x46;FLD1(r.c2,2)=x47;FLD1(r.c2,4)=x49;
     {TUP2 t=_ASeqMapEnv_4(__APostParser_12,x1,x48);
      r.c1=t.c1;
      FLD1(r.c2,3)=t.c2;}}}}}
 return r;}
extern OBJ _APostParser_14_c(OBJ x1,OBJ x2) /* lawKindsOrigin */
{OBJ r;
 {TUP2 t=_APostParser_14(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_15(OBJ x1,OBJ x2) /* lawKindsSpecSign */
{TUP2 r;
 {OBJ x13;OBJ x14=FLD1(x2,2);
  if(EXPRD(x2,1)){
   {
    RSOME(x2,r.c2);
    {TUP2 t=_APostParser_16(x1,x14);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x13=FLD1(x2,1);COPY(x13,1);CPPRD(x14,1);
   {
    FRPRD(x2,1);PRD1(2,r.c2);FLD1(r.c2,1)=x13;
    {TUP2 t=_APostParser_16(x1,x14);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_15_c(OBJ x1,OBJ x2) /* lawKindsSpecSign */
{OBJ r;
 {TUP2 t=_APostParser_15(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_16(OBJ x1,OBJ x2) /* lawKindsLaw */
{TUP2 r;
 {OBJ x19;OBJ x20=FLD1(x2,2);OBJ x21;
  if(EXPRD(x2,1)){
   {
    RSOME(x2,r.c2);
    {TUP2 t=_APostParser_17(x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x19=FLD1(x2,1);x21=FLD1(x2,3);CPPRD(x19,1);CPPRD(x20,1);COPY(x21,1);
   {
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x19;FLD1(r.c2,3)=x21;
    {TUP2 t=_APostParser_17(x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_16_c(OBJ x1,OBJ x2) /* lawKindsLaw */
{OBJ r;
 {TUP2 t=_APostParser_16(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_17(register OBJ x1,register OBJ x2) /* lawKinds,1 */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  switch(TGPRD(x2)){
   case 7:
    CPPRD(x2,2);
    {OBJ x875;OBJ x876;OBJ x877;TUP2 x879;
     x875=_AImpl_84(x2);
     x876=_AImpl_103(x2);
     x877=_AImpl_102(x2);
     x879=_APostParser_17(x1,x876);
     PRD(3,7,*p2);FLD(*p2,1)=x879.c2;FLD(*p2,3)=x875;
     x1=x879.c1;x2=x877;p2=&FLD(*p2,2);continue;}break;
   case 9:
    {OBJ x885=FLD(x2,1);
     COPY(x885,1);
     CPPRD(x2,1);
     {OBJ x888;OBJ x889;
      x888=_AImpl_84(x2);
      x889=_AImpl_92(x2);
      PRD(3,9,*p2);FLD(*p2,1)=x885;FLD(*p2,3)=x888;
      x2=x889;p2=&FLD(*p2,2);continue;}}break;
   case 10:case 11:
    *p1=x1;*p2=x2;break;
   case 8:
    {OBJ x897=FLD(x2,1);
     COPY(x897,1);
     CPPRD(x2,1);
     {OBJ x900;OBJ x901;
      x900=_AImpl_92(x2);
      x901=_AImpl_84(x2);
      PRD(3,8,*p2);FLD(*p2,1)=x897;FLD(*p2,3)=x901;
      x2=x900;p2=&FLD(*p2,2);continue;}}break;
   case 5:
    CPPRD(x2,2);
    {OBJ x909;OBJ x910;OBJ x911;TUP2 x913;
     x909=_AImpl_102(x2);
     x910=_AImpl_103(x2);
     x911=_AImpl_84(x2);
     x913=_APostParser_17(x1,x910);
     PRD(3,5,*p2);FLD(*p2,1)=x913.c2;FLD(*p2,3)=x911;
     x1=x913.c1;x2=x909;p2=&FLD(*p2,2);continue;}break;
   case 6:
    CPPRD(x2,2);
    {OBJ x922;OBJ x923;OBJ x924;TUP2 x926;
     x922=_AImpl_84(x2);
     x923=_AImpl_103(x2);
     x924=_AImpl_102(x2);
     x926=_APostParser_17(x1,x923);
     PRD(3,6,*p2);FLD(*p2,1)=x926.c2;FLD(*p2,3)=x922;
     x1=x926.c1;x2=x924;p2=&FLD(*p2,2);continue;}break;
   case 4:
    CPPRD(x2,2);
    {OBJ x935;OBJ x936;OBJ x937;TUP2 x939;
     x935=_AImpl_102(x2);
     x936=_AImpl_103(x2);
     x937=_AImpl_84(x2);
     x939=_APostParser_17(x1,x936);
     PRD(3,4,*p2);FLD(*p2,1)=x939.c2;FLD(*p2,3)=x937;
     x1=x939.c1;x2=x935;p2=&FLD(*p2,2);continue;}break;
   case 1:
    {OBJ x945=FLD(x2,1);OBJ x946=FLD(x2,2);
     CPPRD(x945,1);CPPRD(x946,1);
     {OBJ x949;TUP2 x951;
      x949=_AImpl_84(x2);
      x951=_APostParser_18(x1,x945);
      PRD(3,1,*p2);FLD(*p2,1)=x951.c2;FLD(*p2,3)=x949;
      {TUP2 t=_APostParser_18(x951.c1,x946);
       *p1=t.c1;
       FLD(*p2,2)=t.c2;}}}break;
   case 2:
    {OBJ x957=FLD(x2,1);OBJ x958=FLD(x2,2);
     CPPRD(x957,1);CPPRD(x958,1);
     {OBJ x960;TUP2 x963;
      x960=_AImpl_84(x2);
      x963=_APostParser_18(x1,x957);
      PRD(3,2,*p2);FLD(*p2,1)=x963.c2;FLD(*p2,3)=x960;
      {TUP2 t=_APostParser_18(x963.c1,x958);
       *p1=t.c1;
       FLD(*p2,2)=t.c2;}}}break;
   case 0:
    {OBJ x969=FLD(x2,1);
     CPPRD(x969,1);
     {OBJ x971;
      x971=_AImpl_84(x2);
      PRD(2,0,*p2);FLD(*p2,2)=x971;
      {TUP2 t=_APostParser_18(x1,x969);
       *p1=t.c1;
       FLD(*p2,1)=t.c2;}}}break;
   default: 
    CPPRD(x2,1);
    {OBJ x866;OBJ x867;
     x866=_AImpl_84(x2);
     x867=_AImpl_92(x2);
     PRD(2,3,*p2);FLD(*p2,2)=x866;
     x2=x867;p2=&FLD(*p2,1);continue;}}
  break;}
 return r;}
extern OBJ _APostParser_17_c(OBJ x1,OBJ x2) /* lawKinds,1 */
{OBJ r;
 {TUP2 t=_APostParser_17(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_18(register OBJ x1,register OBJ x2) /* lawKinds,2 */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  switch(TGPRD(x2)){
   case 7:
    {OBJ x644=FLD(x2,1);
     COPY(x644,1);
     {OBJ x646;
      x646=_AImpl_10(x2);
      PRD(2,7,*p2);FLD(*p2,2)=x646;
      {TUP2 t=_APostParser_12(x1,x644);
       *p1=t.c1;
       FLD(*p2,1)=t.c2;}}}break;
   case 9:
    {OBJ x651=FLD(x2,1);OBJ x652=FLD(x2,2);
     COPY(x651,1);CPPRD(x652,1);
     CPCLS(__APostParser_24,1);
     {OBJ x654;TUP2 x656;
      x654=_AImpl_10(x2);
      x656=_ASeqMapEnv_4(__APostParser_24,x1,x651);
      PRD(3,9,*p2);FLD(*p2,1)=x656.c2;FLD(*p2,3)=x654;
      x1=x656.c1;x2=x652;p2=&FLD(*p2,2);continue;}}break;
   case 10:
    {OBJ x662=FLD(x2,1);OBJ x663=FLD(x2,2);
     CPPRD(x662,1);COPY(x663,1);
     {OBJ x665;TUP2 x667;
      x665=_AImpl_10(x2);
      x667=_APostParser_18(x1,x662);
      PRD(3,10,*p2);FLD(*p2,1)=x667.c2;FLD(*p2,3)=x665;
      {TUP2 t=_APostParser_20(x667.c1,x663);
       *p1=t.c1;
       FLD(*p2,2)=t.c2;}}}break;
   case 11:
    {OBJ x673=FLD(x2,1);
     COPY(x673,1);
     CPCLS(__APostParser_18,1);
     CPPRD(__APair_2,1);
     CPCLS(__APair_8,1);
     {OBJ x675;TUP2 x677;TUP2 x681;
      x675=_AImpl_10(x2);
      x677=_ASeqZip_5(__APair_8,x673);
      x681=_ASeqMapEnv_4(__APostParser_18,x1,x677.c1);*p1=x681.c1;
      PRD(2,11,*p2);FLD(*p2,2)=x675;
      FLD(*p2,1)=_ASeqZip_4(__APair_2,x681.c2,x677.c2);}}break;
   case 8:
    {OBJ x684=FLD(x2,1);OBJ x685=FLD(x2,2);
     COPY(x684,1);CPPRD(x685,1);
     {OBJ x687;
      x687=_AImpl_10(x2);
      PRD(3,8,*p2);FLD(*p2,1)=x684;FLD(*p2,3)=x687;
      x2=x685;p2=&FLD(*p2,2);continue;}}break;
   case 5:
    {OBJ x692=FLD(x2,1);OBJ x693=FLD(x2,2);
     COPY(x692,1);CPPRD(x693,1);
     CPCLS(__APostParser_19,1);
     {OBJ x695;TUP2 x697;
      x695=_AImpl_10(x2);
      x697=_ASeqMapEnv_4(__APostParser_19,x1,x692);
      PRD(3,5,*p2);FLD(*p2,1)=x697.c2;FLD(*p2,3)=x695;
      x1=x697.c1;x2=x693;p2=&FLD(*p2,2);continue;}}break;
   case 6:
    {OBJ x703=FLD(x2,1);OBJ x704=FLD(x2,2);
     COPY(x703,1);CPPRD(x704,1);
     {OBJ x706;
      x706=_AImpl_10(x2);
      PRD(3,6,*p2);FLD(*p2,1)=x703;FLD(*p2,3)=x706;
      x2=x704;p2=&FLD(*p2,2);continue;}}break;
   case 4:
    {OBJ x711=FLD(x2,1);OBJ x712=FLD(x2,2);
     CPPRD(x711,1);CPPRD(x712,1);
     {OBJ x714;TUP2 x716;
      x714=_AImpl_10(x2);
      x716=_APostParser_18(x1,x711);
      PRD(3,4,*p2);FLD(*p2,1)=x716.c2;FLD(*p2,3)=x714;
      x1=x716.c1;x2=x712;p2=&FLD(*p2,2);continue;}}break;
   case 0:case 1:case 2:
    *p1=x1;*p2=x2;break;
   default: 
    {OBJ x637=FLD(x2,1);
     COPY(x637,1);
     CPCLS(__APostParser_18,1);
     {OBJ x639;
      x639=_AImpl_10(x2);
      PRD(2,3,*p2);FLD(*p2,2)=x639;
      {TUP2 t=_ASeqMapEnv_4(__APostParser_18,x1,x637);
       *p1=t.c1;
       FLD(*p2,1)=t.c2;}}}}
  break;}
 return r;}
extern OBJ _APostParser_18_c(OBJ x1,OBJ x2) /* lawKinds,2 */
{OBJ r;
 {TUP2 t=_APostParser_18(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_19(OBJ x1,OBJ x2) /* lawKinds,3 */
{TUP2 r;
 {OBJ x22=FLD1(x2,1);OBJ x23=FLD1(x2,2);OBJ x24;
  if(EXPRD(x2,1)){
   {TUP2 x26;
    x26=_APostParser_18(x1,x22);
    RSOME(x2,r.c2);FLD1(r.c2,1)=x26.c2;
    {TUP2 t=_APostParser_18(x26.c1,x23);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x24=FLD1(x2,3);CPPRD(x22,1);CPPRD(x23,1);COPY(x24,1);
   {TUP2 x26;
    x26=_APostParser_18(x1,x22);
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x26.c2;FLD1(r.c2,3)=x24;
    {TUP2 t=_APostParser_18(x26.c1,x23);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_19_c(OBJ x1,OBJ x2) /* lawKinds,3 */
{OBJ r;
 {TUP2 t=_APostParser_19(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_20(register OBJ x1,register OBJ x2) /* lawKinds,4 */
{TUP2 r;OBJ* p1=&r.c1;OBJ* p2=&r.c2;
 for(;;){
  if(ISPRM(x2)){
   *p1=x1;*p2=x2;
  }else{
   switch(TGPRD(x2)){
    case 3:case 4:
     *p1=x1;*p2=x2;break;
    case 2:
     {OBJ x122=FLD(x2,1);OBJ x123=FLD(x2,2);
      if(EXPRD(x2,1)){
       {TUP2 x125;
	x125=_APostParser_20(x1,x122);
	RPRD(x2,*p2);FLD(*p2,1)=x125.c2;
	x1=x125.c1;x2=x123;p2=&FLD(*p2,2);continue;}
      }else{
       COPY(x122,1);COPY(x123,1);
       {TUP2 x125;
	x125=_APostParser_20(x1,x122);
	FRPRD(x2,1);PRD(2,2,*p2);FLD(*p2,1)=x125.c2;
	x1=x125.c1;x2=x123;p2=&FLD(*p2,2);continue;}}}break;
    case 0:
     {OBJ x131=FLD(x2,1);
      if(EXPRD(x2,1)){
       {
	RPRD(x2,*p2);
	{TUP2 t=_APostParser_12(x1,x131);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}
      }else{
       COPY(x131,1);
       {
	FRPRD(x2,1);PRD(1,0,*p2);
	{TUP2 t=_APostParser_12(x1,x131);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}}}break;
    default: 
     {OBJ x115=FLD(x2,1);
      if(EXPRD(x2,1)){
       CPCLS(__APostParser_20,1);
       {
	RPRD(x2,*p2);
	{TUP2 t=_ASeqMapEnv_4(__APostParser_20,x1,x115);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}
      }else{
       COPY(x115,1);
       CPCLS(__APostParser_20,1);
       {
	FRPRD(x2,1);PRD(1,1,*p2);
	{TUP2 t=_ASeqMapEnv_4(__APostParser_20,x1,x115);
	 *p1=t.c1;
	 FLD(*p2,1)=t.c2;}}}}}}
  break;}
 return r;}
extern OBJ _APostParser_20_c(OBJ x1,OBJ x2) /* lawKinds,4 */
{OBJ r;
 {TUP2 t=_APostParser_20(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_21(OBJ x1,OBJ x2) /* lawKindsSortImpl */
{TUP2 r;
 {OBJ x19;OBJ x20=FLD1(x2,2);OBJ x21;
  if(EXPRD(x2,1)){
   CPCLS(__APostParser_22,1);
   {
    RSOME(x2,r.c2);
    {TUP2 t=_ASeqMapEnv_4(__APostParser_22,x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x19=FLD1(x2,1);x21=FLD1(x2,3);COPY(x19,1);COPY(x20,1);COPY(x21,1);
   CPCLS(__APostParser_22,1);
   {
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x19;FLD1(r.c2,3)=x21;
    {TUP2 t=_ASeqMapEnv_4(__APostParser_22,x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_21_c(OBJ x1,OBJ x2) /* lawKindsSortImpl */
{OBJ r;
 {TUP2 t=_APostParser_21(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_22(OBJ x1,OBJ x2) /* lawKinds,5 */
{TUP2 r;
 {OBJ x27;OBJ x28;OBJ x29=FLD1(x2,3);OBJ x30;
  if(EXPRD(x2,1)){
   CPCLS(__APostParser_23,1);
   {
    RSOME(x2,r.c2);
    {TUP2 t=_ASeqMapEnv_4(__APostParser_23,x1,x29);
     r.c1=t.c1;
     FLD1(r.c2,3)=t.c2;}}
  }else{
   x27=FLD1(x2,1);x28=FLD1(x2,2);x30=FLD1(x2,4);COPY(x27,1);COPY(x28,1);COPY(x29,1);COPY(x30,1);
   CPCLS(__APostParser_23,1);
   {
    FRPRD(x2,1);PRD1(4,r.c2);FLD1(r.c2,1)=x27;FLD1(r.c2,2)=x28;FLD1(r.c2,4)=x30;
    {TUP2 t=_ASeqMapEnv_4(__APostParser_23,x1,x29);
     r.c1=t.c1;
     FLD1(r.c2,3)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_22_c(OBJ x1,OBJ x2) /* lawKinds,5 */
{OBJ r;
 {TUP2 t=_APostParser_22(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_23(OBJ x1,OBJ x2) /* lawKinds,6 */
{TUP2 r;
 {OBJ x19;OBJ x20=FLD1(x2,2);OBJ x21;
  if(EXPRD(x2,1)){
   {
    RSOME(x2,r.c2);
    {TUP2 t=_APostParser_20(x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x19=FLD1(x2,1);x21=FLD1(x2,3);COPY(x19,1);COPY(x20,1);COPY(x21,1);
   {
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x19;FLD1(r.c2,3)=x21;
    {TUP2 t=_APostParser_20(x1,x20);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_23_c(OBJ x1,OBJ x2) /* lawKinds,6 */
{OBJ r;
 {TUP2 t=_APostParser_23(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_24(OBJ x1,OBJ x2) /* lawKindsEq */
{TUP2 r;
 {OBJ x22=FLD1(x2,1);OBJ x23=FLD1(x2,2);OBJ x24;
  if(EXPRD(x2,1)){
   {TUP2 x26;
    x26=_APostParser_18(x1,x22);
    RSOME(x2,r.c2);FLD1(r.c2,1)=x26.c2;
    {TUP2 t=_APostParser_18(x26.c1,x23);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}
  }else{
   x24=FLD1(x2,3);CPPRD(x22,1);CPPRD(x23,1);COPY(x24,1);
   {TUP2 x26;
    x26=_APostParser_18(x1,x22);
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x26.c2;FLD1(r.c2,3)=x24;
    {TUP2 t=_APostParser_18(x26.c1,x23);
     r.c1=t.c1;
     FLD1(r.c2,2)=t.c2;}}}}
 return r;}
extern OBJ _APostParser_24_c(OBJ x1,OBJ x2) /* lawKindsEq */
{OBJ r;
 {TUP2 t=_APostParser_24(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_25(OBJ x1,OBJ x2) /* lawKindsGlobPragma */
{TUP2 r;
 CPCLS(__APostParser_26,1);
 r=_ASeqMapEnv_4(__APostParser_26,x1,x2);
 return r;}
extern OBJ _APostParser_25_c(OBJ x1,OBJ x2) /* lawKindsGlobPragma */
{OBJ r;
 {TUP2 t=_APostParser_25(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_26(OBJ x1,OBJ x2) /* lawKinds,7 */
{TUP2 r;
 if(ISTGPRD(x2,0)){
  {OBJ x21=FLD(x2,1);
   if(EXPRD(x2,1)){
    CPCLS(__APostParser_12,1);
    {
     RPRD(x2,r.c2);
     {TUP2 t=_ASeqMapEnv_4(__APostParser_12,x1,x21);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}
   }else{
    COPY(x21,1);
    CPCLS(__APostParser_12,1);
    {
     FRPRD(x2,1);PRD(1,0,r.c2);
     {TUP2 t=_ASeqMapEnv_4(__APostParser_12,x1,x21);
      r.c1=t.c1;
      FLD(r.c2,1)=t.c2;}}}}
 }else{
  r.c1=x1;r.c2=x2;}
 return r;}
extern OBJ _APostParser_26_c(OBJ x1,OBJ x2) /* lawKinds,7 */
{OBJ r;
 {TUP2 t=_APostParser_26(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_27(OBJ x1) /* doProofHeads */
{OBJ r;
 {OBJ x316=FLD1(x1,1);OBJ x317=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x316,1);CPPRD(x317,1);}
  if(ISPRM(x316)){
   if(x_x1){
    RSOME(x1,r);FLD1(r,1)=__AStruct_35;
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=__AStruct_35;FLD1(r,2)=x317;}
  }else{
   {OBJ x318;OBJ x319;OBJ x320=FLD1(x316,3);OBJ x321;OBJ x322;OBJ x323;OBJ x324;OBJ x325;OBJ x326=FLD1(x316,9);OBJ x327=FLD1(x316,10);OBJ x328;OBJ x329;OBJ x330;OBJ x331;FLAG x_x316=EXPRD(x316,1);
    if(x_x316){
     COPY(x327,3);
    }else{
     x318=FLD1(x316,1);x319=FLD1(x316,2);x321=FLD1(x316,4);x322=FLD1(x316,5);x323=FLD1(x316,6);x324=FLD1(x316,7);x325=FLD1(x316,8);x328=FLD1(x316,11);x329=FLD1(x316,12);x330=FLD1(x316,13);x331=FLD1(x316,14);COPY(x318,1);COPY(x319,1);COPY(x320,1);COPY(x321,1);COPY(x322,1);COPY(x323,1);COPY(x324,1);COPY(x325,1);COPY(x326,1);COPY(x327,4);COPY(x328,1);COPY(x329,1);COPY(x330,1);}
    CPCLS(__APostParser_28,1);
    CPCLS(__APostParser_29,1);
    CPCLS(__APostParser_30,1);
    {TUP2 x334;OBJ x336;OBJ x338;OBJ x339;OBJ x340;TUP2 x341;OBJ x343;OBJ x344;
     x334=_ASeqMapEnv_4(__APostParser_28,x317,x327);
     CPPRD(x334.c1,1);
     x336=(*(OBJ(*)(OBJ,OBJ))METHOD(__APostParser_29,1))(__APostParser_29,x334.c1);
     x338=_ASeqMap_3(x336,x327);
     x339=_ASeq_26(x338,x320);
     x340=_ASeq_26(x334.c2,x339);
     x341=_ASeqMapEnv_4(__APostParser_30,x334.c1,x327);
     x343=_ASeq_26(x341.c2,x326);
     if(x_x316){
      RSOME(x316,x344);FLD1(x344,3)=x340;FLD1(x344,9)=x343;
     }else{
      FRPRD(x316,1);PRD1(14,x344);FLD1(x344,1)=x318;FLD1(x344,2)=x319;FLD1(x344,3)=x340;FLD1(x344,4)=x321;FLD1(x344,5)=x322;FLD1(x344,6)=x323;FLD1(x344,7)=x324;FLD1(x344,8)=x325;FLD1(x344,9)=x343;FLD1(x344,10)=x327;FLD1(x344,11)=x328;FLD1(x344,12)=x329;FLD1(x344,13)=x330;FLD1(x344,14)=x331;}
     if(x_x1){
      RSOME(x1,r);FLD1(r,1)=x344;FLD1(r,2)=x341.c1;
     }else{
      FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x344;FLD1(r,2)=x341.c1;}}}}}
 return r;}

extern TUP2 _APostParser_28(OBJ x1,OBJ x2) /* proofFun1 */
{TUP2 r;
 {OBJ x38=FLD1(x2,1);OBJ x39=FLD1(x2,2);OBJ x40=FLD1(x2,3);OBJ x41=FLD1(x2,4);
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   CPPRD(x38,1);COPY(x39,1);COPY(x40,1);COPY(x41,1);
   FRPRD(x2,1);}
  CPCLS(__APostParser_12,1);
  COPY(__AOcPos_35,1);
  COPY(__APragma_5,1);
  CPPRD(__AFct_17,1);
  {TUP2 x43;OBJ x45;OBJ x46;TUP2 x48;OBJ x50;OBJ x52;OBJ x53;
   x43=_ASeqMapEnv_4(__APostParser_12,x1,x39);
   x45=_ASeqMap_3(__AFct_17,x43.c2);
   PRD(1,1,x46);FLD(x46,1)=x45;
   x48=_APostParser_12(x43.c1,x40);
   PRD(1,0,x50);FLD(x50,1)=x48.c2;
   PRD(2,2,x52);FLD(x52,1)=x46;FLD(x52,2)=x50;
   PRD1(1,x53);FLD1(x53,1)=x52;
   PRD1(7,r.c2);FLD1(r.c2,2)=__AOption_5;FLD1(r.c2,3)=__ASeq_6;FLD1(r.c2,4)=__AOcPos_35;FLD1(r.c2,5)=x53;FLD1(r.c2,6)=__APragma_5;FLD1(r.c2,7)=x41;
   {TUP2 t=_ARep_20(x48.c1,x38);
    r.c1=t.c1;
    FLD1(r.c2,1)=t.c2;}}}
 return r;}
extern OBJ _APostParser_28_c(OBJ x1,OBJ x2) /* proofFun1 */
{OBJ r;
 {TUP2 t=_APostParser_28(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_29(OBJ x1,OBJ x2) /* proofFun2 */
{OBJ r;
 {OBJ x26=FLD1(x2,1);OBJ x29=FLD1(x2,4);
  if(EXPRD(x2,1)){
   FLD1(x2,1)=NIL;FLD1(x2,4)=NIL;DSPRD(x2);
  }else{
   CPPRD(x26,1);COPY(x29,1);
   FRPRD(x2,1);}
  COPY(__APostParser_42,1);
  COPY(__AOcPos_35,1);
  COPY(__APragma_5,1);
  {TUP2 x31;
   x31=_ARep_20(x1,x26);
   FRPRD(x31.c1,1);
   PRD1(7,r);FLD1(r,1)=x31.c2;FLD1(r,2)=__AOption_5;FLD1(r,3)=__ASeq_6;FLD1(r,4)=__AOcPos_35;FLD1(r,5)=__APostParser_42;FLD1(r,6)=__APragma_5;FLD1(r,7)=x29;}}
 return r;}

extern TUP2 _APostParser_30(OBJ x1,OBJ x2) /* proofPragma */
{TUP2 r;
 {OBJ x37=FLD1(x2,1);OBJ x38=FLD1(x2,2);OBJ x39=FLD1(x2,3);
  if(EXPRD(x2,1)){
   FREE(FLD1(x2,4),1);DSPRDF(x2);
  }else{
   CPPRD(x37,1);COPY(x38,1);COPY(x39,1);
   FRPRD(x2,1);}
  CPPRD(__APostParser_43,1);
  CPCLS(__APostParser_45,1);
  {OBJ x41;TUP2 x42;OBJ x44;TUP2 x46;TUP2 x50;OBJ x51;OBJ x52;
   PRD(2,1,x41);FLD(x41,1)=x37;FLD(x41,2)=__AOcPos_9;
   x42=_ARep_138(x1,__APostParser_43,__ABUILTIN_3);
   PRD(2,1,x44);FLD(x44,1)=x42.c2;FLD(x44,2)=__AOcPos_9;
   x46=_ASeqMapEnv_4(__APostParser_45,x42.c1,x38);
   x50=_APostParser_45(x46.c1,x39);r.c1=x50.c1;
   x51=_ASeq_23(x46.c2,x50.c2);
   PRD1(2,x52);FLD1(x52,1)=x41;FLD1(x52,2)=x51;
   PRD1(2,r.c2);FLD1(r.c2,1)=x44;FLD1(r.c2,2)=x52;}}
 return r;}
extern OBJ _APostParser_30_c(OBJ x1,OBJ x2) /* proofPragma */
{OBJ r;
 {TUP2 t=_APostParser_30(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_31(OBJ x1) /* doProofBodies */
{OBJ r;
 {OBJ x302=FLD1(x1,1);OBJ x303=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x302,1);CPPRD(x303,1);}
  if(ISPRM(x302)){
   if(x_x1){
    RSOME(x1,r);FLD1(r,1)=__AStruct_35;
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=__AStruct_35;FLD1(r,2)=x303;}
  }else{
   {OBJ x304;OBJ x305;OBJ x306;OBJ x307;OBJ x308;OBJ x309=FLD1(x302,6);OBJ x310;OBJ x311;OBJ x312;OBJ x313;OBJ x314=FLD1(x302,11);OBJ x315;OBJ x316;OBJ x317;FLAG x_x302=EXPRD(x302,1);
    if(x_x302){
     COPY(x314,1);
    }else{
     x304=FLD1(x302,1);x305=FLD1(x302,2);x306=FLD1(x302,3);x307=FLD1(x302,4);x308=FLD1(x302,5);x310=FLD1(x302,7);x311=FLD1(x302,8);x312=FLD1(x302,9);x313=FLD1(x302,10);x315=FLD1(x302,12);x316=FLD1(x302,13);x317=FLD1(x302,14);COPY(x304,1);COPY(x305,1);COPY(x306,1);COPY(x307,1);COPY(x308,1);COPY(x309,1);COPY(x310,1);COPY(x311,1);COPY(x312,1);COPY(x313,1);COPY(x314,2);COPY(x315,1);COPY(x316,1);}
    CPCLS(__APostParser_32,1);
    {TUP2 x320;OBJ x322;OBJ x323;
     x320=_ASeqMapEnv_4(__APostParser_32,x303,x314);
     x322=_ASeq_26(x320.c2,x309);
     if(x_x302){
      RSOME(x302,x323);FLD1(x323,6)=x322;
     }else{
      FRPRD(x302,1);PRD1(14,x323);FLD1(x323,1)=x304;FLD1(x323,2)=x305;FLD1(x323,3)=x306;FLD1(x323,4)=x307;FLD1(x323,5)=x308;FLD1(x323,6)=x322;FLD1(x323,7)=x310;FLD1(x323,8)=x311;FLD1(x323,9)=x312;FLD1(x323,10)=x313;FLD1(x323,11)=x314;FLD1(x323,12)=x315;FLD1(x323,13)=x316;FLD1(x323,14)=x317;}
     if(x_x1){
      RSOME(x1,r);FLD1(r,1)=x323;FLD1(r,2)=x320.c1;
     }else{
      FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x323;FLD1(r,2)=x320.c1;}}}}}
 return r;}

extern TUP2 _APostParser_32(OBJ x1,OBJ x2) /* proofDef */
{TUP2 r;
 {OBJ x21=FLD1(x2,1);OBJ x22;OBJ x23=FLD1(x2,3);
  if(EXPRD(x2,1)){
   COPY(x23,2);
   COPY(__APostParser_48,1);
   CPCLS(__ARep_20,1);
   {TUP2 x26;OBJ x27;OBJ x28;
    x26=_APostParser_33(x1,__ARep_20,x21);r.c1=x26.c1;
    PRD(2,7,x27);FLD(x27,1)=x26.c2;FLD(x27,2)=x23;
    PRD(3,10,x28);FLD(x28,1)=x27;FLD(x28,2)=__APostParser_48;FLD(x28,3)=x23;
    RSOME(x2,r.c2);FLD1(r.c2,1)=x28;}
  }else{
   x22=FLD1(x2,2);COPY(x21,1);CPPRD(x22,1);COPY(x23,3);
   COPY(__APostParser_48,1);
   CPCLS(__ARep_20,1);
   {TUP2 x26;OBJ x27;OBJ x28;
    x26=_APostParser_33(x1,__ARep_20,x21);r.c1=x26.c1;
    PRD(2,7,x27);FLD(x27,1)=x26.c2;FLD(x27,2)=x23;
    PRD(3,10,x28);FLD(x28,1)=x27;FLD(x28,2)=__APostParser_48;FLD(x28,3)=x23;
    FRPRD(x2,1);PRD1(3,r.c2);FLD1(r.c2,1)=x28;FLD1(r.c2,2)=x22;FLD1(r.c2,3)=x23;}}}
 return r;}
extern OBJ _APostParser_32_c(OBJ x1,OBJ x2) /* proofDef */
{OBJ r;
 {TUP2 t=_APostParser_32(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_33(OBJ x1,OBJ x2,OBJ x3) /* codeP */
{TUP2 r;
 if(ISPRM(x3)){
  FRCLS(x2,1);
  r.c1=x1;r.c2=__APartName_23;
 }else{
  {OBJ x95=FLD1(x3,1);OBJ x96;OBJ x97;OBJ x98;OBJ x99;OBJ x100;OBJ x101;
   if(EXPRD(x3,1)){
    {OBJ x105;
     {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x1,x95);
      r.c1=FLD1(t,1);
      x105=FLD1(t,2);
      DSPRDF(t);}
     RSOME(x3,r.c2);FLD1(r.c2,1)=x105;}
   }else{
    x96=FLD1(x3,2);x97=FLD1(x3,3);x98=FLD1(x3,4);x99=FLD1(x3,5);x100=FLD1(x3,6);x101=FLD1(x3,7);CPPRD(x95,1);COPY(x96,1);COPY(x97,1);COPY(x98,1);COPY(x99,1);COPY(x100,1);COPY(x101,1);
    {OBJ x105;
     {OBJ t=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x1,x95);
      r.c1=FLD1(t,1);
      x105=FLD1(t,2);
      DSPRDF(t);}
     FRPRD(x3,1);PRD1(7,r.c2);FLD1(r.c2,1)=x105;FLD1(r.c2,2)=x96;FLD1(r.c2,3)=x97;FLD1(r.c2,4)=x98;FLD1(r.c2,5)=x99;FLD1(r.c2,6)=x100;FLD1(r.c2,7)=x101;}}}}
 return r;}
extern OBJ _APostParser_33_c(OBJ x1,OBJ x2,OBJ x3) /* codeP */
{OBJ r;
 {TUP2 t=_APostParser_33(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_34(OBJ x1) /* doSpecs */
{OBJ r;
 {OBJ x304=FLD1(x1,1);OBJ x305=FLD1(x1,2);FLAG x_x1=EXPRD(x1,1);
  if(x_x1){
  }else{
   COPY(x304,1);CPPRD(x305,1);}
  if(ISPRM(x304)){
   if(x_x1){
    RSOME(x1,r);FLD1(r,1)=__AStruct_35;
   }else{
    FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=__AStruct_35;FLD1(r,2)=x305;}
  }else{
   {OBJ x306;OBJ x307;OBJ x308;OBJ x309=FLD1(x304,4);OBJ x310;OBJ x311;OBJ x312;OBJ x313=FLD1(x304,8);OBJ x314;OBJ x315;OBJ x316;OBJ x317;OBJ x318;OBJ x319;FLAG x_x304=EXPRD(x304,1);
    if(x_x304){
    }else{
     x306=FLD1(x304,1);x307=FLD1(x304,2);x308=FLD1(x304,3);x310=FLD1(x304,5);x311=FLD1(x304,6);x312=FLD1(x304,7);x314=FLD1(x304,9);x315=FLD1(x304,10);x316=FLD1(x304,11);x317=FLD1(x304,12);x318=FLD1(x304,13);x319=FLD1(x304,14);COPY(x306,1);COPY(x307,1);COPY(x308,1);COPY(x309,1);COPY(x310,1);COPY(x311,1);COPY(x312,1);COPY(x313,1);COPY(x314,1);COPY(x315,1);COPY(x316,1);COPY(x317,1);COPY(x318,1);}
    CPCLS(__APostParser_35,1);
    CPCLS(__APair_4,1);
    {TUP2 x322;OBJ x324;OBJ x325;OBJ x326;
     x322=_ASeqMapEnv_4(__APostParser_35,x305,x309);
     COPY(x322.c2,1);
     x324=_ASeqMap_3(__APair_4,x322.c2);
     x325=_ASeq_26(x324,x313);
     if(x_x304){
      RSOME(x304,x326);FLD1(x326,4)=x322.c2;FLD1(x326,8)=x325;
     }else{
      FRPRD(x304,1);PRD1(14,x326);FLD1(x326,1)=x306;FLD1(x326,2)=x307;FLD1(x326,3)=x308;FLD1(x326,4)=x322.c2;FLD1(x326,5)=x310;FLD1(x326,6)=x311;FLD1(x326,7)=x312;FLD1(x326,8)=x325;FLD1(x326,9)=x314;FLD1(x326,10)=x315;FLD1(x326,11)=x316;FLD1(x326,12)=x317;FLD1(x326,13)=x318;FLD1(x326,14)=x319;}
     if(x_x1){
      RSOME(x1,r);FLD1(r,1)=x326;FLD1(r,2)=x322.c1;
     }else{
      FRPRD(x1,1);PRD1(2,r);FLD1(r,1)=x326;FLD1(r,2)=x322.c1;}}}}}
 return r;}

extern TUP2 _APostParser_35(OBJ x1,OBJ x2) /* nameSpec */
{TUP2 r;
 {OBJ x38=FLD1(x2,1);OBJ x39=FLD1(x2,2);FLAG x_x2=EXPRD(x2,1);
  if(x_x2){
  }else{
   COPY(x38,1);CPPRD(x39,1);}
  {OBJ x40=FLD1(x39,1);OBJ x41=FLD1(x39,2);OBJ x42=FLD1(x39,3);
   CPPRD(x40,1);CPPRD(x41,1);COPY(x42,1);
   CPPRD(__ARep_13,1);
   {OBJ x43;
    x43=_ARep_24(x40,__ARep_13);
    if(ISTGPRM(x43,1)){
     if(EXPRD(x39,1)){
      DSPRD(x39);
     }else{
      DCPRD(x39,1);}
     CPPRD(__APostParser_49,1);
     {TUP2 x46;OBJ x47;
      x46=_ARep_7(x1,__APostParser_49);r.c1=x46.c1;
      PRD1(3,x47);FLD1(x47,1)=x46.c2;FLD1(x47,2)=x41;FLD1(x47,3)=x42;
      if(x_x2){
       RSOME(x2,r.c2);FLD1(r.c2,2)=x47;
      }else{
       FRPRD(x2,1);PRD1(2,r.c2);FLD1(r.c2,1)=x38;FLD1(r.c2,2)=x47;}}
    }else{
     FRPRD(x41,1);
     FREE(x42,1);
     if(x_x2){
      RSOME(x2,r.c2);
     }else{
      FRPRD(x2,1);PRD1(2,r.c2);FLD1(r.c2,1)=x38;FLD1(r.c2,2)=x39;}
     r.c1=x1;}}}}
 return r;}
extern OBJ _APostParser_35_c(OBJ x1,OBJ x2) /* nameSpec */
{OBJ r;
 {TUP2 t=_APostParser_35(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_38(OBJ x1,OBJ x2) /* insertLawsAsSorts'38 */
{OBJ r;
 {OBJ x17=FLD1(x2,1);OBJ x19=FLD1(x2,3);
  if(EXPRD(x2,1)){
   FRPRD(FLD1(x2,2),1);DSPRDF(x2);
  }else{
   CPPRD(x17,1);COPY(x19,1);
   FRPRD(x2,1);}
  {OBJ x24;OBJ x25;
   if(ISPRM(x1)){
    HLT("Struct at <unknown> : undefined selection structIde\'Struct:origin->rep");
   }else{
    {OBJ x20=FLD1(x1,1);
     if(EXPRD(x1,1)){
      x24=x20;
      FLD1(x1,1)=NIL;DSPRD(x1);
     }else{
      CPPRD(x20,1);
      x24=x20;
      FRPRD(x1,1);}
     COPY(__AOcPos_35,1);
     COPY(__APragma_5,1);}}
   PRD1(1,x25);FLD1(x25,1)=x24;
   PRD1(7,r);FLD1(r,1)=x17;FLD1(r,2)=x25;FLD1(r,3)=__ASeq_6;FLD1(r,4)=__AOcPos_35;FLD1(r,5)=__APartName_11;FLD1(r,6)=__APragma_5;FLD1(r,7)=x19;}}
 return r;}

extern TUP2 _APostParser_44(OBJ x1,OBJ x2) /* proofPragma'44 */
{TUP2 r;
 {OBJ x3;
  x3=_APartName_30(x2);
  r=_ARep_138(x1,x3,__ABUILTIN_3);}
 return r;}
extern OBJ _APostParser_44_c(OBJ x1,OBJ x2) /* proofPragma'44 */
{OBJ r;
 {TUP2 t=_APostParser_44(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _APostParser_45(OBJ x1,OBJ x2) /* proofPragma'45 */
{TUP2 r;
 {
  PRD(2,1,r.c2);FLD(r.c2,2)=__AOcPos_9;
  {TUP2 t=_APostParser_44(x1,x2);
   r.c1=t.c1;
   FLD(r.c2,1)=t.c2;}}
 return r;}
extern OBJ _APostParser_45_c(OBJ x1,OBJ x2) /* proofPragma'45 */
{OBJ r;
 {TUP2 t=_APostParser_45(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _APostParser_50(OBJ x1,OBJ x2) /* postParser'50 */
{OBJ r;
 r=_AStruct_46(x1);
 return r;}

extern OBJ _APostParser_51(OBJ x1,OBJ x2) /* postParser'51 */
{OBJ r;
 r=_ARep_9(x1);
 return r;}








init_APostParser()
{
 static int visited=0; if(visited) return; visited=1;
 init_ATree();
 init_AArray();
 init_ALexem();
 init_ASeqConv();
 init_AStruct();
 init_ASeqReduce();
 init_ARepTab();
 init_AInt();
 init_APair();
 init_ANat();
 init_ARep();
 init_AChar();
 init_AOption();
 init_ASeq();
 init_APartName();
 init_AImpl();
 init_AGlobPragma();
 init_AOcPos();
 init_APragma();
 init_AMap();
 init_ASet();
 init_AFct();
 init_ABitset();
 init_AZOpts();
 init_APreDef();
 init_ASeqMapEnv();
 init_ASeqMap();
 init_ADenotation();
 init_ADEBUG();
 init_AMapConv();
 init_ASeqOfSeq();
 init_ASeqZip();
 init_AString();
 init_ASetByBST();
 init_ABSTree();
 CLS(1,_APostParser_31,__APostParser_31);
 CLS(2,_APostParser_30_c,__APostParser_30);
 CLS(2,_APostParser_29,__APostParser_29);
 CLS(2,_APostParser_28_c,__APostParser_28);
 CLS(1,_APostParser_27,__APostParser_27);
 CLS(2,_APostParser_26_c,__APostParser_26);
 CLS(2,_APostParser_25_c,__APostParser_25);
 CLS(2,_APostParser_24_c,__APostParser_24);
 CLS(2,_APostParser_23_c,__APostParser_23);
 CLS(2,_APostParser_22_c,__APostParser_22);
 CLS(2,_APostParser_21_c,__APostParser_21);
 CLS(2,_APostParser_20_c,__APostParser_20);
 LCLS(2,_APostParser_51,__APostParser_51);
 CLS(2,_APostParser_19_c,__APostParser_19);
 LCLS(2,_APostParser_50,__APostParser_50);
 CLS(2,_APostParser_18_c,__APostParser_18);
 DEN("SPC",__APostParser_49);
 CLS(2,_APostParser_17_c,__APostParser_17);
 CLS(2,_APostParser_16_c,__APostParser_16);
 CLS(2,_APostParser_15_c,__APostParser_15);
 CLS(2,_APostParser_14_c,__APostParser_14);
 CLS(2,_APostParser_45_c,__APostParser_45);
 CLS(2,_APostParser_13_c,__APostParser_13);
 CLS(2,_APostParser_44_c,__APostParser_44);
 CLS(2,_APostParser_12_c,__APostParser_12);
 DEN("PROOFSOURCE",__APostParser_43);
 CLS(2,_APostParser_11_c,__APostParser_11);
 CLS(1,_APostParser_10,__APostParser_10);
 CLS(2,_APostParser_9_c,__APostParser_9);
 CLS(1,_APostParser_8,__APostParser_8);
 CLS(3,_APostParser_7_c,__APostParser_7);
 CLS(2,_APostParser_38,__APostParser_38);
 CLS(4,_APostParser_6_c,__APostParser_6);
 DEN("unnamed",__APostParser_37);
 CLS(5,_APostParser_5_c,__APostParser_5);
 DEN("\?",__APostParser_36);
 CLS(4,_APostParser_4_c,__APostParser_4);
 CLS(1,_APostParser_3,__APostParser_3);
 CLS(2,_APostParser_35_c,__APostParser_35);
 CLS(1,_APostParser_34,__APostParser_34);
 CLS(1,_APostParser_1,__APostParser_1);
 CLS(3,_APostParser_33_c,__APostParser_33);
 CLS(2,_APostParser_32_c,__APostParser_32);
 CPPRD(__ARep_99,1);
 PRD1(1,__APostParser_39);FLD1(__APostParser_39,1)=__ARep_99;
 COPY(__APostParser_39,1);
 CPPRD(__ARep_100,1);
 COPY(__AOcPos_35,2);
 COPY(__APragma_5,1);
 PRD1(7,__APostParser_40);FLD1(__APostParser_40,1)=__ARep_100;FLD1(__APostParser_40,2)=__APostParser_39;FLD1(__APostParser_40,3)=__ASeq_6;FLD1(__APostParser_40,4)=__AOcPos_35;FLD1(__APostParser_40,5)=__APartName_11;FLD1(__APostParser_40,6)=__APragma_5;FLD1(__APostParser_40,7)=__AOcPos_35;
 COPY(__APostParser_40,1);
 PRD(1,0,__APostParser_41);FLD(__APostParser_41,1)=__APostParser_40;
 COPY(__APostParser_41,1);
 PRD1(1,__APostParser_42);FLD1(__APostParser_42,1)=__APostParser_41;
 CPPRD(__ARep_99,1);
 PRD1(1,__APostParser_46);FLD1(__APostParser_46,1)=__ARep_99;
 COPY(__APostParser_46,1);
 CPPRD(__ARep_100,1);
 COPY(__AOcPos_35,2);
 COPY(__APragma_5,1);
 PRD1(7,__APostParser_47);FLD1(__APostParser_47,1)=__ARep_100;FLD1(__APostParser_47,2)=__APostParser_46;FLD1(__APostParser_47,3)=__ASeq_6;FLD1(__APostParser_47,4)=__AOcPos_35;FLD1(__APostParser_47,5)=__APartName_11;FLD1(__APostParser_47,6)=__APragma_5;FLD1(__APostParser_47,7)=__AOcPos_35;
 COPY(__APostParser_47,1);
 PRD(1,0,__APostParser_48);FLD(__APostParser_48,1)=__APostParser_47;}

