```
Meaning of the annotations for the proof of each method:
- loop: the method seems to be part of a loop or recursion
- may_diverge: proved the existence of at least a diverging execution
- local_polyh: proved to terminate by using a local linear ranking function for the binary unfolding with polyhedra
- local_bds: proved to terminate by using local linear ranking functions for the binary unfolding with bounded difference shapes
- local_sct: proved to terminate via the size change termination principle with monotonicity constraints
- global_lex_aff_rnkfn: proved to terminate by using a global lexicographic affine ranking function
* numerical: the ranking function uses numerical variables or fields
* structural: the ranking function uses reference variables or fields

All calls to these methods terminate:
private static Rational.min(int,int):int
[loop,numerical,structural,local_polyh]      public EquationSystem.diagonalize():boolean
public Rational.divideBy(Rational):void
[loop,numerical,structural,local_bds]        private EquationSystem.divide(int,Rational):void
[loop,numerical,structural,local_bds]        private EquationSystem.substract(int,int):void
public Rational.(Rational):void
public Rational.isZero():boolean
[loop,numerical,structural,local_sct]        public Rational.simplify():void
public Rational.times(Rational):Rational
public Rational.(int,int):void
[loop,numerical,structural,local_bds,local_sct]private static Rational.eratosthene(boolean[]):void
private static Rational.abs(int):int
[loop,numerical,structural,local_bds]        private EquationSystem.permute(int,int):void
public Rational.minus(Rational):void
public static EquationSystem.main(java.lang.String[]):void
[loop,numerical,structural,local_bds]        private EquationSystem.searchRow(int):int
[loop,numerical,local_sct]                   public EquationSystem.(Rational[][],Rational[]):void

There is at least a diverging computation for these methods:
none

Nothing is known about these methods:
none

There are no warnings
```