:- module('Rational_simplify_pe',[main/2],[]).

:- discontiguous bytecode/5, class/2.

bytecode(0,'0',0,aload(0),1).
bytecode(1,'0',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'0',0,aload(0),1).
bytecode(5,'0',0,const(primitiveType(int),0),1).
bytecode(6,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(9,'0',0,aload(0),1).
bytecode(10,'0',0,const(primitiveType(int),1),1).
bytecode(11,'0',0,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(14,'0',0,return,1).
bytecode(0,'0',1,aload(0),1).
bytecode(1,'0',1,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'0',1,aload(0),1).
bytecode(5,'0',1,iload(1),1).
bytecode(6,'0',1,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(9,'0',1,aload(0),1).
bytecode(10,'0',1,iload(2),1).
bytecode(11,'0',1,putfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(14,'0',1,return,1).
bytecode(0,'0',2,const(primitiveType(int),1),1).
bytecode(1,'0',2,istore(2),1).
bytecode(2,'0',2,const(primitiveType(int),1),1).
bytecode(3,'0',2,istore(3),1).
bytecode(4,'0',2,iload(1),1).
bytecode(5,'0',2,if0(leInt,23),3).
bytecode(8,'0',2,iload(2),1).
bytecode(9,'0',2,aload(0),1).
bytecode(10,'0',2,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(13,'0',2,ibinop(mulInt),1).
bytecode(14,'0',2,istore(2),1).
bytecode(15,'0',2,iload(3),1).
bytecode(16,'0',2,aload(0),1).
bytecode(17,'0',2,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(20,'0',2,ibinop(mulInt),1).
bytecode(21,'0',2,istore(3),1).
bytecode(22,'0',2,iinc(1,-1),3).
bytecode(25,'0',2,goto(-21),3).
bytecode(28,'0',2,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(31,'0',2,dup,1).
bytecode(32,'0',2,iload(2),1).
bytecode(33,'0',2,iload(3),1).
bytecode(34,'0',2,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(37,'0',2,areturn,1).
bytecode(0,'0',3,aload(0),1).
bytecode(1,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(4,'0',3,aload(1),1).
bytecode(5,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(8,'0',3,invokestatic(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(lcm2)),[primitiveType(int),primitiveType(int)],primitiveType(int))),3).
bytecode(11,'0',3,istore(3),1).
bytecode(12,'0',3,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(15,'0',3,dup,1).
bytecode(16,'0',3,iload(3),1).
bytecode(17,'0',3,aload(0),1).
bytecode(18,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(21,'0',3,ibinop(divInt),1).
bytecode(22,'0',3,aload(0),1).
bytecode(23,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(26,'0',3,ibinop(mulInt),1).
bytecode(27,'0',3,iload(3),1).
bytecode(28,'0',3,aload(1),1).
bytecode(29,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(32,'0',3,ibinop(divInt),1).
bytecode(33,'0',3,aload(1),1).
bytecode(34,'0',3,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(37,'0',3,ibinop(mulInt),1).
bytecode(38,'0',3,ibinop(addInt),1).
bytecode(39,'0',3,iload(3),1).
bytecode(40,'0',3,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(43,'0',3,astore(2),1).
bytecode(44,'0',3,aload(2),1).
bytecode(45,'0',3,areturn,1).
bytecode(0,'0',4,aload(0),1).
bytecode(1,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(4,'0',4,aload(1),1).
bytecode(5,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(8,'0',4,ibinop(mulInt),1).
bytecode(9,'0',4,istore(2),1).
bytecode(10,'0',4,aload(0),1).
bytecode(11,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(14,'0',4,aload(1),1).
bytecode(15,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(18,'0',4,ibinop(mulInt),1).
bytecode(19,'0',4,aload(0),1).
bytecode(20,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(23,'0',4,aload(1),1).
bytecode(24,'0',4,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(27,'0',4,ibinop(mulInt),1).
bytecode(28,'0',4,ibinop(addInt),1).
bytecode(29,'0',4,istore(3),1).
bytecode(30,'0',4,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(33,'0',4,dup,1).
bytecode(34,'0',4,iload(3),1).
bytecode(35,'0',4,iload(2),1).
bytecode(36,'0',4,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(39,'0',4,areturn,1).
bytecode(0,'0',5,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(3,'0',5,dup,1).
bytecode(4,'0',5,aload(0),1).
bytecode(5,'0',5,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(8,'0',5,aload(1),1).
bytecode(9,'0',5,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(12,'0',5,ibinop(mulInt),1).
bytecode(13,'0',5,aload(0),1).
bytecode(14,'0',5,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(17,'0',5,aload(1),1).
bytecode(18,'0',5,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(21,'0',5,ibinop(mulInt),1).
bytecode(22,'0',5,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(25,'0',5,areturn,1).
bytecode(0,'0',6,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(3,'0',6,dup,1).
bytecode(4,'0',6,iload(0),1).
bytecode(5,'0',6,iload(1),1).
bytecode(6,'0',6,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(9,'0',6,iload(2),1).
bytecode(10,'0',6,invokevirtual(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational')))))),3).
bytecode(13,'0',6,areturn,1).
bytecode(0,'0',7,aload(0),1).
bytecode(1,'0',7,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(4,'0',7,aload(0),1).
bytecode(5,'0',7,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(8,'0',7,invokestatic(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int))),3).
bytecode(11,'0',7,istore(1),1).
bytecode(12,'0',7,aload(0),1).
bytecode(13,'0',7,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int))),3).
bytecode(16,'0',7,iload(1),1).
bytecode(17,'0',7,ibinop(divInt),1).
bytecode(18,'0',7,istore(2),1).
bytecode(19,'0',7,aload(0),1).
bytecode(20,'0',7,getfield(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int))),3).
bytecode(23,'0',7,iload(1),1).
bytecode(24,'0',7,ibinop(divInt),1).
bytecode(25,'0',7,istore(3),1).
bytecode(26,'0',7,new(className(packageName(''),shortClassName('Rational'))),3).
bytecode(29,'0',7,dup,1).
bytecode(30,'0',7,iload(2),1).
bytecode(31,'0',7,iload(3),1).
bytecode(32,'0',7,invokespecial(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none)),3).
bytecode(35,'0',7,areturn,1).
class('0',class(className(packageName(''),shortClassName('Rational')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int)),final(false),static(false),public,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int)),final(false),static(false),public,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[],none),bytecodeMethod(1,2,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none),bytecodeMethod(3,2,0,methodId('0',1),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',2),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational')))),refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,5,0,methodId('0',3),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',4),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(mul)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(2,5,0,methodId('0',5),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(expMain)),[primitiveType(int),primitiveType(int),primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(3,4,0,methodId('0',6),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(simplify)),[],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',7),[]),final(false),static(false),public)])).

bytecode(0,'1',0,aload(0),1).
bytecode(1,'1',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'1',0,return,1).
bytecode(0,'1',1,const(primitiveType(int),1),1).
bytecode(1,'1',1,istore(2),1).
bytecode(2,'1',1,iload(1),1).
bytecode(3,'1',1,istore(3),1).
bytecode(4,'1',1,iload(3),1).
bytecode(5,'1',1,if0(leInt,13),3).
bytecode(8,'1',1,iload(2),1).
bytecode(9,'1',1,iload(0),1).
bytecode(10,'1',1,ibinop(mulInt),1).
bytecode(11,'1',1,istore(2),1).
bytecode(12,'1',1,iinc(3,-1),3).
bytecode(15,'1',1,goto(-11),3).
bytecode(18,'1',1,iload(2),1).
bytecode(19,'1',1,ireturn,1).
bytecode(0,'1',2,const(primitiveType(int),1),1).
bytecode(1,'1',2,istore(1),1).
bytecode(2,'1',2,iload(0),1).
bytecode(3,'1',2,if0(leInt,13),3).
bytecode(6,'1',2,iload(1),1).
bytecode(7,'1',2,iload(0),1).
bytecode(8,'1',2,ibinop(mulInt),1).
bytecode(9,'1',2,istore(1),1).
bytecode(10,'1',2,iinc(0,-1),3).
bytecode(13,'1',2,goto(-11),3).
bytecode(16,'1',2,iload(1),1).
bytecode(17,'1',2,ireturn,1).
bytecode(0,'1',3,iload(0),1).
bytecode(1,'1',3,iload(1),1).
bytecode(2,'1',3,invokestatic(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int))),3).
bytecode(5,'1',3,istore(2),1).
bytecode(6,'1',3,iload(0),1).
bytecode(7,'1',3,iload(1),1).
bytecode(8,'1',3,ibinop(mulInt),1).
bytecode(9,'1',3,istore(3),1).
bytecode(10,'1',3,iload(3),1).
bytecode(11,'1',3,iload(2),1).
bytecode(12,'1',3,ibinop(divInt),1).
bytecode(13,'1',3,ireturn,1).
bytecode(0,'1',4,iload(0),1).
bytecode(1,'1',4,iload(1),1).
bytecode(2,'1',4,if_icmp(geInt,9),3).
bytecode(5,'1',4,iload(0),1).
bytecode(6,'1',4,istore(2),1).
bytecode(7,'1',4,iload(1),1).
bytecode(8,'1',4,istore(0),1).
bytecode(9,'1',4,iload(2),1).
bytecode(10,'1',4,istore(1),1).
bytecode(11,'1',4,iload(0),1).
bytecode(12,'1',4,istore(2),1).
bytecode(13,'1',4,const(primitiveType(int),0),1).
bytecode(14,'1',4,istore(3),1).
bytecode(15,'1',4,iload(3),1).
bytecode(16,'1',4,if0(neInt,21),3).
bytecode(19,'1',4,iload(2),1).
bytecode(20,'1',4,iload(1),1).
bytecode(21,'1',4,ibinop(remInt),1).
bytecode(22,'1',4,if0(neInt,8),3).
bytecode(25,'1',4,const(primitiveType(int),1),1).
bytecode(26,'1',4,istore(3),1).
bytecode(27,'1',4,goto(-12),3).
bytecode(30,'1',4,iload(2),1).
bytecode(31,'1',4,iload(0),1).
bytecode(32,'1',4,ibinop(addInt),1).
bytecode(33,'1',4,istore(2),1).
bytecode(34,'1',4,goto(-19),3).
bytecode(37,'1',4,iload(2),1).
bytecode(38,'1',4,ireturn,1).
bytecode(0,'1',5,iload(1),1).
bytecode(1,'1',5,if0(eqInt,14),3).
bytecode(4,'1',5,iload(0),1).
bytecode(5,'1',5,iload(1),1).
bytecode(6,'1',5,ibinop(remInt),1).
bytecode(7,'1',5,istore(2),1).
bytecode(8,'1',5,iload(1),1).
bytecode(9,'1',5,istore(0),1).
bytecode(10,'1',5,iload(2),1).
bytecode(11,'1',5,istore(1),1).
bytecode(12,'1',5,goto(-12),3).
bytecode(15,'1',5,iload(0),1).
bytecode(16,'1',5,ireturn,1).
class('1',class(className(packageName(''),shortClassName('Arithmetic')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('1',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(exp)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',1),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(fact)),[primitiveType(int)],primitiveType(int)),bytecodeMethod(2,2,0,methodId('1',2),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(lcm)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',3),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(lcm2)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',4),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('1',5),[]),final(false),static(true),public)])).

bytecode(0,'Object',0,return,1).
class('Object',class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)])).

bytecode(0,'String',0,aload(0),1).
bytecode(1,'String',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'String',0,return,1).
class('String',class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)])).

bytecode(0,'NullPointerException',0,aload(0),1).
bytecode(1,'NullPointerException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NullPointerException',0,return,1).
class('NullPointerException',class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArrayStoreException',0,aload(0),1).
bytecode(1,'ArrayStoreException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayStoreException',0,return,1).
class('ArrayStoreException',class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArrayIndexOutOfBoundsException',0,aload(0),1).
bytecode(1,'ArrayIndexOutOfBoundsException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArrayIndexOutOfBoundsException',0,return,1).
class('ArrayIndexOutOfBoundsException',class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)])).

bytecode(0,'NegativeArraySizeException',0,aload(0),1).
bytecode(1,'NegativeArraySizeException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'NegativeArraySizeException',0,return,1).
class('NegativeArraySizeException',class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)])).

bytecode(0,'ClassCastException',0,aload(0),1).
bytecode(1,'ClassCastException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ClassCastException',0,return,1).
class('ClassCastException',class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)])).

bytecode(0,'ArithmeticException',0,aload(0),1).
bytecode(1,'ArithmeticException',0,invokespecial(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none)),3).
bytecode(4,'ArithmeticException',0,return,1).
class('ArithmeticException',class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])).

source_program(program([class(className(packageName(''),shortClassName('Rational')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int)),final(false),static(false),public,initialValue(undef)),field(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int)),final(false),static(false),public,initialValue(undef))],[method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[],none),bytecodeMethod(1,2,0,methodId('0',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName('<init>')),[primitiveType(int),primitiveType(int)],none),bytecodeMethod(3,2,0,methodId('0',1),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(exp)),[primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',2),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational')))),refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,5,0,methodId('0',3),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(add)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',4),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(mul)),[refType(classType(className(packageName(''),shortClassName('Rational'))))],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(2,5,0,methodId('0',5),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(expMain)),[primitiveType(int),primitiveType(int),primitiveType(int)],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(3,4,0,methodId('0',6),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(simplify)),[],refType(classType(className(packageName(''),shortClassName('Rational'))))),bytecodeMethod(4,4,0,methodId('0',7),[]),final(false),static(false),public)]),class(className(packageName(''),shortClassName('Arithmetic')),final(false),public(true),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('1',0),[]),final(false),static(false),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(exp)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',1),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(fact)),[primitiveType(int)],primitiveType(int)),bytecodeMethod(2,2,0,methodId('1',2),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(lcm)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',3),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(lcm2)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(4,2,0,methodId('1',4),[]),final(false),static(true),public),method(methodSignature(methodName(className(packageName(''),shortClassName('Arithmetic')),shortMethodName(gcd)),[primitiveType(int),primitiveType(int)],primitiveType(int)),bytecodeMethod(3,2,0,methodId('1',5),[]),final(false),static(true),public)]),class(className(packageName('java/lang/'),shortClassName('Object')),final(false),public(false),abstract(false),none,[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('Object')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('Object',0),[]),final(false),static(false),public)]),class(className(packageName('java/lang/'),shortClassName('String')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('String')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('String',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NullPointerException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NullPointerException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NullPointerException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayStoreException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayStoreException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArrayIndexOutOfBoundsException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArrayIndexOutOfBoundsException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('NegativeArraySizeException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('NegativeArraySizeException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ClassCastException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ClassCastException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ClassCastException',0),[]),final(false),static(false),private)]),class(className(packageName('java/lang/'),shortClassName('ArithmeticException')),final(false),public(false),abstract(false),className(packageName('java/lang/'),shortClassName('Object')),[],[],[method(methodSignature(methodName(className(packageName('java/lang/'),shortClassName('ArithmeticException')),shortMethodName('<init>')),[],none),bytecodeMethod(1,1,0,methodId('ArithmeticException',0),[]),final(false),static(false),private)])],[])).

:- include(library('jvm_in_ciao/interpreter/pe_i.pl')).

current_mis(mis(methodSignature(methodName(className(packageName(''),shortClassName('Rational')),shortMethodName(simplify)),[],refType(classType(className(packageName(''),shortClassName('Rational'))))),[ref(loc(1))],heap(dynamicHeap([object(locationObject(className(packageName(''),shortClassName('Rational'))),[objectField(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(num)),primitiveType(int)),num(int(_))),objectField(fieldSignature(fieldName(className(packageName(''),shortClassName('Rational')),shortFieldName(den)),primitiveType(int)),num(int(_)))])]),staticHeap([])))).
options([top,heap]).
