#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %routine true
void TRUE(void) {
// 3 %end
return;
} /* end of TRUE */
// 4 %integer a,b,c,d,e,f,g,h
int A;
int B;
int C;
int D;
int E;
int F;
int G;
int H;
// 5
// 6 ! conditionals
// 7 true %if a = b
if (A != B) goto L_0001;
TRUE();
L_0001:;
// 8 %comment true %if a = b
// 9 true %if a < b %or b < c
if (A < B) goto L_0002;
if (B >= C) goto L_0003;
L_0002:;
TRUE();
L_0003:;
// 10 %comment true %if a < b %or b < c
// 11 true %if a < b %and b < c
if (A >= B) goto L_0004;
if (B >= C) goto L_0004;
TRUE();
L_0004:;
// 12 %comment true %if a < b %and b < c
// 13 true %if a < b < c
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0005;
// Double-sided test on B (Part II)
if (tmp >= C) goto L_0005;
}
TRUE();
L_0005:;
// 14 %comment true %if a < b < c
// 15 true %if a < b %and (a < b %or b < c)
if (A >= B) goto L_0006;
if (A < B) goto L_0007;
if (B >= C) goto L_0006;
L_0007:;
TRUE();
L_0006:;
// 16 %comment true %if a < b %and (a < b %or b < c)
// 17 true %if a < b %and ((a < b %and b < c) %or b < c)
if (A >= B) goto L_0008;
if (A >= B) goto L_0009;
if (B < C) goto L_000A;
L_0009:;
if (B >= C) goto L_0008;
L_000A:;
TRUE();
L_0008:;
// 18 %comment true %if a < b %and ((a < b %and b < c) %or b < c)
// 19 true %if a < b %or ((a < b %or b < c) %and b < c)
if (A < B) goto L_000B;
if (A < B) goto L_000C;
if (B >= C) goto L_000D;
L_000C:;
if (B >= C) goto L_000D;
L_000B:;
TRUE();
L_000D:;
// 20 %comment true %if a < b %or ((a < b %or b < c) %and b < c)
// 21
// 22 true %unless a = b
if (A == B) goto L_000E;
TRUE();
L_000E:;
// 23 %comment true %unless a = b
// 24 true %unless a < b %or b < c
if (A < B) goto L_000F;
if (B < C) goto L_000F;
TRUE();
L_000F:;
// 25 %comment true %unless a < b %or b < c
// 26 true %unless a < b %and b < c
if (A >= B) goto L_0010;
if (B < C) goto L_0011;
L_0010:;
TRUE();
L_0011:;
// 27 %comment true %unless a < b %and b < c
// 28 true %unless a < b < c
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0012;
// Double-sided test on B (Part II)
if (tmp < C) goto L_0013;
}
L_0012:;
TRUE();
L_0013:;
// 29 %comment true %unless a < b < c
// 30 true %unless a < b %and (a < b %or b < c)
if (A >= B) goto L_0014;
if (A < B) goto L_0015;
if (B < C) goto L_0015;
L_0014:;
TRUE();
L_0015:;
// 31 %comment true %unless a < b %and (a < b %or b < c)
// 32 true %unless a < b %and ((a < b %and b < c) %or b < c)
if (A >= B) goto L_0016;
if (A >= B) goto L_0017;
if (B < C) goto L_0018;
L_0017:;
if (B < C) goto L_0018;
L_0016:;
TRUE();
L_0018:;
// 33 %comment true %unless a < b %and ((a < b %and b < c) %or b < c)
// 34 true %unless a < b %or ((a < b %or b < c) %and b < c)
if (A < B) goto L_0019;
if (A < B) goto L_001A;
if (B >= C) goto L_001B;
L_001A:;
if (B < C) goto L_0019;
L_001B:;
TRUE();
L_0019:;
// 35 %comment true %unless a < b %or ((a < b %or b < c) %and b < c)
// 36
// 37 true %while a = b
L_001C:;
if (A != B) goto L_001D;
TRUE();
goto L_001C;
L_001D:;
// 38 %comment true %while a = b
// 39 true %while a < b %or b < c
L_001E:;
if (A < B) goto L_001F;
if (B >= C) goto L_0020;
L_001F:;
TRUE();
goto L_001E;
L_0020:;
// 40 %comment true %while a < b %or b < c
// 41 true %while a < b %and b < c
L_0021:;
if (A >= B) goto L_0022;
if (B >= C) goto L_0022;
TRUE();
goto L_0021;
L_0022:;
// 42 %comment true %while a < b %and b < c
// 43 true %while a < b < c
L_0023:;
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0024;
// Double-sided test on B (Part II)
if (tmp >= C) goto L_0024;
}
TRUE();
goto L_0023;
L_0024:;
// 44 %comment true %while a < b < c
// 45 true %while a < b %and (a < b %or b < c)
L_0025:;
if (A >= B) goto L_0026;
if (A < B) goto L_0027;
if (B >= C) goto L_0026;
L_0027:;
TRUE();
goto L_0025;
L_0026:;
// 46 %comment true %while a < b %and (a < b %or b < c)
// 47 true %while a < b %and ((a < b %and b < c) %or b < c)
L_0028:;
if (A >= B) goto L_0029;
if (A >= B) goto L_002A;
if (B < C) goto L_002B;
L_002A:;
if (B >= C) goto L_0029;
L_002B:;
TRUE();
goto L_0028;
L_0029:;
// 48 %comment true %while a < b %and ((a < b %and b < c) %or b < c)
// 49 true %while a < b %or ((a < b %or b < c) %and b < c)
L_002C:;
if (A < B) goto L_002D;
if (A < B) goto L_002E;
if (B >= C) goto L_002F;
L_002E:;
if (B >= C) goto L_002F;
L_002D:;
TRUE();
goto L_002C;
L_002F:;
// 50 %comment true %while a < b %or ((a < b %or b < c) %and b < c)
// 51
// 52 true %until a = b
L_0030:;
TRUE();
if (A == B) goto L_0031;
goto L_0030;
L_0031:;
// 53 %comment true %until a = b
// 54 true %until a < b %or b < c
L_0032:;
TRUE();
if (A < B) goto L_0033;
if (B < C) goto L_0033;
goto L_0032;
L_0033:;
// 55 %comment true %until a < b %or b < c
// 56 true %until a < b %and b < c
L_0034:;
TRUE();
if (A >= B) goto L_0035;
if (B < C) goto L_0036;
L_0035:;
goto L_0034;
L_0036:;
// 57 %comment true %until a < b %and b < c
// 58 true %until a < b < c
L_0037:;
TRUE();
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0038;
// Double-sided test on B (Part II)
if (tmp < C) goto L_0039;
}
L_0038:;
goto L_0037;
L_0039:;
// 59 %comment true %until a < b < c
// 60 true %until a < b %and (a < b %or b < c)
L_003A:;
TRUE();
if (A >= B) goto L_003B;
if (A < B) goto L_003C;
if (B < C) goto L_003C;
L_003B:;
goto L_003A;
L_003C:;
// 61 %comment true %until a < b %and (a < b %or b < c)
// 62 true %until a < b %and ((a < b %and b < c) %or b < c)
L_003D:;
TRUE();
if (A >= B) goto L_003E;
if (A >= B) goto L_003F;
if (B < C) goto L_0040;
L_003F:;
if (B < C) goto L_0040;
L_003E:;
goto L_003D;
L_0040:;
// 63 %comment true %until a < b %and ((a < b %and b < c) %or b < c)
// 64 true %until a < b %or ((a < b %or b < c) %and b < c)
L_0041:;
TRUE();
if (A < B) goto L_0042;
if (A < B) goto L_0043;
if (B >= C) goto L_0044;
L_0043:;
if (B < C) goto L_0042;
L_0044:;
goto L_0041;
L_0042:;
// 65 %comment true %until a < b %or ((a < b %or b < c) %and b < c)
// 66
// 67 ! conditionals
// 68 true %if %not a = b
if (A == B) goto L_0045;
TRUE();
L_0045:;
// 69 %comment true %if %not a = b
// 70 true %if %not ( a < b %or b < c)
if (A < B) goto L_0046;
if (B < C) goto L_0046;
TRUE();
L_0046:;
// 71 %comment true %if %not ( a < b %or b < c)
// 72 true %if %not ( a < b %and b < c)
if (A >= B) goto L_0047;
if (B < C) goto L_0048;
L_0047:;
TRUE();
L_0048:;
// 73 %comment true %if %not ( a < b %and b < c)
// 74 true %if %not ( a < b < c)
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0049;
// Double-sided test on B (Part II)
if (tmp < C) goto L_004A;
}
L_0049:;
TRUE();
L_004A:;
// 75 %comment true %if %not ( a < b < c)
// 76 true %if %not ( a < b %and (a < b %or b < c))
if (A >= B) goto L_004B;
if (A < B) goto L_004C;
if (B < C) goto L_004C;
L_004B:;
TRUE();
L_004C:;
// 77 %comment true %if %not ( a < b %and (a < b %or b < c))
// 78 true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
if (A >= B) goto L_004D;
if (A >= B) goto L_004E;
if (B < C) goto L_004F;
L_004E:;
if (B < C) goto L_004F;
L_004D:;
TRUE();
L_004F:;
// 79 %comment true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
// 80 true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
if (A < B) goto L_0050;
if (A < B) goto L_0051;
if (B >= C) goto L_0052;
L_0051:;
if (B < C) goto L_0050;
L_0052:;
TRUE();
L_0050:;
// 81 %comment true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
// 82
// 83 true %unless %not a = b
if (A != B) goto L_0053;
TRUE();
L_0053:;
// 84 %comment true %unless %not a = b
// 85 true %unless %not ( a < b %or b < c)
if (A < B) goto L_0054;
if (B >= C) goto L_0055;
L_0054:;
TRUE();
L_0055:;
// 86 %comment true %unless %not ( a < b %or b < c)
// 87 true %unless %not ( a < b %and b < c)
if (A >= B) goto L_0056;
if (B >= C) goto L_0056;
TRUE();
L_0056:;
// 88 %comment true %unless %not ( a < b %and b < c)
// 89 true %unless %not ( a < b < c)
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0057;
// Double-sided test on B (Part II)
if (tmp >= C) goto L_0057;
}
TRUE();
L_0057:;
// 90 %comment true %unless %not ( a < b < c)
// 91 true %unless %not ( a < b %and (a < b %or b < c))
if (A >= B) goto L_0058;
if (A < B) goto L_0059;
if (B >= C) goto L_0058;
L_0059:;
TRUE();
L_0058:;
// 92 %comment true %unless %not ( a < b %and (a < b %or b < c))
// 93 true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
if (A >= B) goto L_005A;
if (A >= B) goto L_005B;
if (B < C) goto L_005C;
L_005B:;
if (B >= C) goto L_005A;
L_005C:;
TRUE();
L_005A:;
// 94 %comment true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
// 95 true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
if (A < B) goto L_005D;
if (A < B) goto L_005E;
if (B >= C) goto L_005F;
L_005E:;
if (B >= C) goto L_005F;
L_005D:;
TRUE();
L_005F:;
// 96 %comment true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
// 97
// 98 true %while %not a = b
L_0060:;
if (A == B) goto L_0061;
TRUE();
goto L_0060;
L_0061:;
// 99 %comment true %while %not a = b
// 100 true %while %not ( a < b %or b < c)
L_0062:;
if (A < B) goto L_0063;
if (B < C) goto L_0063;
TRUE();
goto L_0062;
L_0063:;
// 101 %comment true %while %not ( a < b %or b < c)
// 102 true %while %not ( a < b %and b < c)
L_0064:;
if (A >= B) goto L_0065;
if (B < C) goto L_0066;
L_0065:;
TRUE();
goto L_0064;
L_0066:;
// 103 %comment true %while %not ( a < b %and b < c)
// 104 true %while %not ( a < b < c)
L_0067:;
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_0068;
// Double-sided test on B (Part II)
if (tmp < C) goto L_0069;
}
L_0068:;
TRUE();
goto L_0067;
L_0069:;
// 105 %comment true %while %not ( a < b < c)
// 106 true %while %not ( a < b %and (a < b %or b < c))
L_006A:;
if (A >= B) goto L_006B;
if (A < B) goto L_006C;
if (B < C) goto L_006C;
L_006B:;
TRUE();
goto L_006A;
L_006C:;
// 107 %comment true %while %not ( a < b %and (a < b %or b < c))
// 108 true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
L_006D:;
if (A >= B) goto L_006E;
if (A >= B) goto L_006F;
if (B < C) goto L_0070;
L_006F:;
if (B < C) goto L_0070;
L_006E:;
TRUE();
goto L_006D;
L_0070:;
// 109 %comment true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
// 110 true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
L_0071:;
if (A < B) goto L_0072;
if (A < B) goto L_0073;
if (B >= C) goto L_0074;
L_0073:;
if (B < C) goto L_0072;
L_0074:;
TRUE();
goto L_0071;
L_0072:;
// 111 %comment true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
// 112
// 113 true %until %not a = b
L_0075:;
TRUE();
if (A != B) goto L_0076;
goto L_0075;
L_0076:;
// 114 %comment true %until %not a = b
// 115 true %until %not ( a < b %or b < c)
L_0077:;
TRUE();
if (A < B) goto L_0078;
if (B >= C) goto L_0079;
L_0078:;
goto L_0077;
L_0079:;
// 116 %comment true %until %not ( a < b %or b < c)
// 117 true %until %not ( a < b %and b < c)
L_007A:;
TRUE();
if (A >= B) goto L_007B;
if (B >= C) goto L_007B;
goto L_007A;
L_007B:;
// 118 %comment true %until %not ( a < b %and b < c)
// 119 true %until %not ( a < b < c)
L_007C:;
TRUE();
{
// Double-sided test on B (Part I)
int tmp;
if (A >= (tmp = B)) goto L_007D;
// Double-sided test on B (Part II)
if (tmp >= C) goto L_007D;
}
goto L_007C;
L_007D:;
// 120 %comment true %until %not ( a < b < c)
// 121 true %until %not ( a < b %and (a < b %or b < c))
L_007E:;
TRUE();
if (A >= B) goto L_007F;
if (A < B) goto L_0080;
if (B >= C) goto L_007F;
L_0080:;
goto L_007E;
L_007F:;
// 122 %comment true %until %not ( a < b %and (a < b %or b < c))
// 123 true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
L_0081:;
TRUE();
if (A >= B) goto L_0082;
if (A >= B) goto L_0083;
if (B < C) goto L_0084;
L_0083:;
if (B >= C) goto L_0082;
L_0084:;
goto L_0081;
L_0082:;
// 124 %comment true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
// 125 true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
L_0085:;
TRUE();
if (A < B) goto L_0086;
if (A < B) goto L_0087;
if (B >= C) goto L_0088;
L_0087:;
if (B >= C) goto L_0088;
L_0086:;
goto L_0085;
L_0088:;
// 126 %comment true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
// 127
// 128 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}