Meaning of the annotations for the proof of each method:
- loop: the method seems to be part of a loop or recursion
- inherits: the method seems to call a method that possibly diverges
- 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
- finite_unfoldings: proved to terminate since there is a finite number of undoldings
  * numerical: the ranking function uses numerical variables or fields
  * structural: the ranking function uses reference variables or fields

These methods do not introduce divergence:
                                             Game.isPossibleMove(Player[][],int,int):boolean
[loop,numerical,structural,local_sct]        Configuration.alphabeta(int,int,int):int
                                             Player.(char):void
                                             LinkedList.length():int
[loop,numerical,structural,local_sct]        Configuration.play():void
                                             Player.setOpponent(Player):void
                                             Configuration.min(int,int):int
                                             LinkedList.getFirst():Configuration
                                             Configuration.():void
[loop,numerical,local_bds]                   TicTacToe.main(java.lang.String[]):void
                                             Configuration.win():boolean
                                             LinkedList.(Configuration,LinkedList):void
                                             Configuration.isMaxDepth():boolean
[loop,numerical,structural,local_sct]        Configuration.openRows(Player):int
[loop,numerical,structural,local_sct]        Configuration.possibleMoves():LinkedList
[loop,numerical,structural,local_sct]        Configuration.init(int,Player):void
                                             Game.nbColumns():int
                                             Game.nbWin():int
                                             Player.getOpponent():Player
                                             Configuration.lose():boolean
[loop,numerical,local_bds]                   Configuration.bestChoice():Configuration
                                             LinkedList.getTail():LinkedList
                                             Game.maxMoves():int
                                             Game.nbRows():int
                                             Configuration.changePlayer():void
[loop,numerical,structural,local_sct]        Configuration.copy():Configuration
[loop,numerical,structural,local_sct]        Configuration.winningConfiguration(Player):boolean
                                             Configuration.partialEvaluation():int
                                             Configuration.max(int,int):int

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

Nothing is known about these methods:
  none

Methods that might introduce divergence: 0/29 (  0.00%)
Methods that do might introduce or inherit divergence: 0/29 (  0.00%)
Methods that definitely terminate: 29/29 (100.00%)

There are no warnings