9,15c9
< A = @, 
< L1 = @, 
< L2 = @, 
< X = @, 
< Y = @, 
< Z = @.
< 
---
> A = @, L1 = @, L2 = @, X = @, Y = @, Z = @.
20,22c14
< X = @, 
< Y = @.
< 
---
> X = @, Y = @.
29,38c21,26
< concat_proc(actions => [disjunc([unif(@,[]),
<                                  unif(@,@)],
<                                 [unif(@,[@|@]),
<                                  unif(@,[@|@]),
<                                  abscall(concat,
<                                          [@,@,@])],
<                                 global_vars => [@,
<                                                 @,
<                                                 @])],
<             global_vars => [@,@,@]) :-
---
> concat_proc(actions => [disjunc([unif(_A,[]),unif(_B,_C)],
>                                 [unif(_A,[_D|_E]),
>                                  unif(_C,[_D|_F]),
>                                  abscall(concat,[_E,_B,_F])],
>                                 global_vars => [_A,_C,_B])],
>             global_vars => [_A,_B,_C]) :-
44,48c32,34
< toto_proc(actions => [disjunc([unif(@,a),abscall(tata,[@])],
<                               [disjunc([unif(@,b),
<                                         abscall(tata,[@])],
<                                        [disjunc([abscall(tutu,
<                                                          [@,@]),
---
> toto_proc(actions => [disjunc([unif(_A,a),abscall(tata,[_B])],
>                               [disjunc([unif(_A,b),abscall(tata,[_B])],
>                                        [disjunc([abscall(tutu,[_A,_B]),
51,55c37,40
<                                                 global_vars => [@,
<                                                                 @])],
<                                        global_vars => [@,@])],
<                               global_vars => [@,@])],
<           global_vars => [@,@]) :-
---
>                                                 global_vars => [_A,_B])],
>                                        global_vars => [_A,_B])],
>                               global_vars => [_A,_B])],
>           global_vars => [_A,_B]) :-
59,61c44
< --------------7> 
< *** No
< > > 
---
> > > > 
66c49
< t(...)
---
> X: t(@(type => free2~),g(X,a(type => ground2),type => non_var_true~),type => non_var_true~)
68,69c51,52
< U = @(...), 
< X = t(...).
---
> U = @(type => free2~), 
> X = t(U,g(X,a(type => ground2),type => non_var_true~),type => non_var_true~).
73,74c56,57
< U = @(...), 
< X = t(...).
---
> U = @(type => free2~), 
> X = t(U,g(X,a(type => ground2),type => non_var_true~),type => non_var_true~).
85d67
< 
91,92c73,80
< NewNode = node(...), 
< SAT = hasse(...).
---
> NewNode = node(ground,
>                @,
>                depend_on_me => [],
>                fathers => [],
>                sons => [],
>                stable => false,
>                suspended => false), 
> SAT = hasse(p => [NewNode]).
99,100c87,101
< NewNode = node(...), 
< SAT = hasse(...).
---
> NewNode = node(free,
>                @,
>                depend_on_me => [],
>                fathers => [],
>                sons => [],
>                stable => false,
>                suspended => false), 
> SAT = hasse(p => [node(ground,
>                        @,
>                        depend_on_me => [],
>                        fathers => [],
>                        sons => [],
>                        stable => false,
>                        suspended => false)],
>             q => [NewNode]).
115,116c116,129
< Node1 = node(...), 
< Node2 = node(...), 
---
> Node1 = node(non_var,
>              @,
>              depend_on_me => [],
>              fathers => [Node5],
>              sons => [Node2],
>              stable => false,
>              suspended => false), 
> Node2 = node(ground,
>              @,
>              depend_on_me => [],
>              fathers => [Node1],
>              sons => [Node4],
>              stable => false,
>              suspended => false), 
118,119c131,151
< Node4 = node(...), 
< Node5 = node(...), 
---
> Node4 = node(@,
>              @,
>              depend_on_me => [],
>              fathers => [Node2,
>                          _A: node(free,
>                                   @,
>                                   depend_on_me => [],
>                                   fathers => [Node5],
>                                   sons => [Node4],
>                                   stable => false,
>                                   suspended => false)],
>              sons => [],
>              stable => false,
>              suspended => false), 
> Node5 = node(any,
>              @,
>              depend_on_me => [],
>              fathers => [],
>              sons => [_A,Node1],
>              stable => false,
>              suspended => false), 
121c153,160
< SAT = hasse(...).
---
> SAT = hasse(p => [node(ground,
>                        @,
>                        depend_on_me => [],
>                        fathers => [],
>                        sons => [],
>                        stable => false,
>                        suspended => false)],
>             q => [Node5]).
131c170
< [...]
---
> [AT: node(ground,_A: ground,depend_on_me => [],fathers => [_B: node(non_var,_A,depend_on_me => [],fathers => [_C: node(any,@,depend_on_me => [],fathers => [],sons => [_D: node(free,@,depend_on_me => [],fathers => [_C],sons => [_E: node(@,@,depend_on_me => [],fathers => [AT,_D],sons => [],stable => false,suspended => false)],stable => false,suspended => false),_B],stable => false,suspended => false)],sons => [AT],stable => false,suspended => false)],sons => [_E],stable => false,suspended => false)]
133,135c172,212
< AT = node(...), 
< Modified = [...], 
< SAT = hasse(...).
---
> AT = node(ground,
>           _A: ground,
>           depend_on_me => [],
>           fathers => [_B: node(non_var,
>                                _A,
>                                depend_on_me => [],
>                                fathers => [_C: node(any,
>                                                     @,
>                                                     depend_on_me => [],
>                                                     fathers => [],
>                                                     sons => [_D: node(free,
>                                                                       @,
>                                                                       depend_on_me => [],
>                                                                       fathers => [_C],
>                                                                       sons => [_E: node(@,
>                                                                                         @,
>                                                                                         depend_on_me => [],
>                                                                                         fathers => [AT,_D],
>                                                                                         sons => [],
>                                                                                         stable => false,
>                                                                                         suspended => false)],
>                                                                       stable => false,
>                                                                       suspended => false),
>                                                              _B],
>                                                     stable => false,
>                                                     suspended => false)],
>                                sons => [AT],
>                                stable => false,
>                                suspended => false)],
>           sons => [_E],
>           stable => false,
>           suspended => false), 
> Modified = [AT], 
> SAT = hasse(p => [node(ground,
>                        @,
>                        depend_on_me => [],
>                        fathers => [],
>                        sons => [],
>                        stable => false,
>                        suspended => false)],
>             q => [_C]).
141c218
< [...]
---
> [AT: node(free,_A: free,depend_on_me => [],fathers => [_B: node(any,_A,depend_on_me => [],fathers => [],sons => [AT,_C: node(non_var,_D: ground,depend_on_me => [],fathers => [_B],sons => [_E: node(ground,_D,depend_on_me => [],fathers => [_C],sons => [_F: node(@,@,depend_on_me => [],fathers => [_E,AT],sons => [],stable => false,suspended => false)],stable => false,suspended => false)],stable => false,suspended => false)],stable => false,suspended => false)],sons => [_F],stable => false,suspended => false)]
143,145c220,260
< AT = node(...), 
< Modified = [...], 
< SAT = hasse(...).
---
> AT = node(free,
>           _A: free,
>           depend_on_me => [],
>           fathers => [_B: node(any,
>                                _A,
>                                depend_on_me => [],
>                                fathers => [],
>                                sons => [AT,
>                                         _C: node(non_var,
>                                                  _D: ground,
>                                                  depend_on_me => [],
>                                                  fathers => [_B],
>                                                  sons => [_E: node(ground,
>                                                                    _D,
>                                                                    depend_on_me => [],
>                                                                    fathers => [_C],
>                                                                    sons => [_F: node(@,
>                                                                                      @,
>                                                                                      depend_on_me => [],
>                                                                                      fathers => [_E,AT],
>                                                                                      sons => [],
>                                                                                      stable => false,
>                                                                                      suspended => false)],
>                                                                    stable => false,
>                                                                    suspended => false)],
>                                                  stable => false,
>                                                  suspended => false)],
>                                stable => false,
>                                suspended => false)],
>           sons => [_F],
>           stable => false,
>           suspended => false), 
> Modified = [AT], 
> SAT = hasse(p => [node(ground,
>                        @,
>                        depend_on_me => [],
>                        fathers => [],
>                        sons => [],
>                        stable => false,
>                        suspended => false)],
>             q => [_B]).
157,158c272,312
< Node = node(...), 
< SAT = hasse(...).
---
> Node = node(ground,
>             _A: ground,
>             depend_on_me => [],
>             fathers => [_B: node(non_var,
>                                  _A,
>                                  depend_on_me => [],
>                                  fathers => [_C: node(any,
>                                                       _D: free,
>                                                       depend_on_me => [],
>                                                       fathers => [],
>                                                       sons => [_E: node(free,
>                                                                         _D,
>                                                                         depend_on_me => [],
>                                                                         fathers => [_C],
>                                                                         sons => [_F: node(@,
>                                                                                           @,
>                                                                                           depend_on_me => [],
>                                                                                           fathers => [Node,
>                                                                                                       _E],
>                                                                                           sons => [],
>                                                                                           stable => false,
>                                                                                           suspended => false)],
>                                                                         stable => false,
>                                                                         suspended => false),
>                                                                _B],
>                                                       stable => false,
>                                                       suspended => false)],
>                                  sons => [Node],
>                                  stable => false,
>                                  suspended => false)],
>             sons => [_F],
>             stable => false,
>             suspended => true), 
> SAT = hasse(p => [node(ground,
>                        @,
>                        depend_on_me => [],
>                        fathers => [],
>                        sons => [],
>                        stable => false,
>                        suspended => false)],
>             q => [_C]).
168c322
< hasse(...)
---
> hasse(p => [_A: node(ground,@,depend_on_me => [],fathers => [],sons => [],stable => true,suspended => false)],q => [_B: node(any,_C: free,depend_on_me => [],fathers => [],sons => [_D: node(free,_C,depend_on_me => [],fathers => [_B],sons => [_E: node(@,@,depend_on_me => [],fathers => [Node2: node(ground,_F: ground,depend_on_me => [_D],fathers => [Node: node(non_var,_F,depend_on_me => [_D,_A],fathers => [_B],sons => [Node2],stable => true,suspended => false)],sons => [_E],stable => false,suspended => true),_D],sons => [],stable => false,suspended => false)],stable => true,suspended => false),Node],stable => false,suspended => false)])
170,172c324,363
< Node = node(...), 
< Node2 = node(...), 
< SAT = hasse(...).
---
> Node = node(non_var,
>             _A: ground,
>             depend_on_me => [_B: node(free,
>                                       _C: free,
>                                       depend_on_me => [],
>                                       fathers => [_D: node(any,
>                                                            _C,
>                                                            depend_on_me => [],
>                                                            fathers => [],
>                                                            sons => [_B,Node],
>                                                            stable => false,
>                                                            suspended => false)],
>                                       sons => [_E: node(@,
>                                                         @,
>                                                         depend_on_me => [],
>                                                         fathers => [Node2,_B],
>                                                         sons => [],
>                                                         stable => false,
>                                                         suspended => false)],
>                                       stable => true,
>                                       suspended => false),
>                              _F: node(ground,
>                                       @,
>                                       depend_on_me => [],
>                                       fathers => [],
>                                       sons => [],
>                                       stable => true,
>                                       suspended => false)],
>             fathers => [_D],
>             sons => [Node2],
>             stable => true,
>             suspended => false), 
> Node2 = node(ground,
>              _A,
>              depend_on_me => [_B],
>              fathers => [Node],
>              sons => [_E],
>              stable => false,
>              suspended => true), 
> SAT = hasse(p => [_F],q => [_D]).
182,184c373
< X = @, 
< Y = @.
< 
---
> X = @, Y = @.
189c378
< enter solve_procedure tooo with [...]
---
> enter solve_procedure tooo with [free,free]
191c380
< exit solve_procedure tooo with [...]
---
> exit solve_procedure tooo with [ground,ground]
193c382,388
< hasse(...)
---
> hasse(tooo => [node([free,free],
>                     [ground,ground],
>                     depend_on_me => [],
>                     fathers => [],
>                     sons => [],
>                     stable => true,
>                     suspended => true)])
197,200c392,393
< X = @, 
< Y = @.
< 
< ----------------8> 
---
> X = @, Y = @.
> --1> 
206c399
< enter solve_procedure tata with [...]
---
> enter solve_procedure tata with [free,free]
208c401
< enter solve_alter with [...]
---
> enter solve_alter with [free,free]
210c403
< exit solve_alter with [...]
---
> exit solve_alter with [ground,ground]
212c405
< enter solve_alter with [...]
---
> enter solve_alter with [free,free]
222c415
< exit solve_alter with [...]
---
> exit solve_alter with [free,free]
224c417
<   first  alternative:[...]
---
>   first  alternative:[ground,ground]
226c419
<   second alternative:[...]
---
>   second alternative:[free,free]
228c421
<   union             :[...]
---
>   union             :[any,any]
230,232c423,438
< exit solve_procedure tata with [...]
< 
< hasse(...)
---
> exit solve_procedure tata with [any,any]
> 
> hasse(succeed => [node([],
>                        [],
>                        depend_on_me => [_A: node([free,free],
>                                                  [any,any],
>                                                  depend_on_me => [],
>                                                  fathers => [],
>                                                  sons => [],
>                                                  stable => true,
>                                                  suspended => true)],
>                        fathers => [],
>                        sons => [],
>                        stable => true,
>                        suspended => false)],
>       tata => [_A])
236c442
< enter solve_procedure concat with [...]
---
> enter solve_procedure concat with [ground,ground,free]
238c444
< enter solve_alter with [...]
---
> enter solve_alter with [ground,free,ground]
240c446
< exit solve_alter with [...]
---
> exit solve_alter with [ground,ground,ground]
242c448
< enter solve_alter with [...]
---
> enter solve_alter with [ground,free,ground]
244c450
< enter solve_call concat with [...]
---
> enter solve_call concat with [ground,ground,free]
248c454
< exit solve_alter with [...]
---
> exit solve_alter with [@,@,@]
250c456
<   first  alternative:[...]
---
>   first  alternative:[ground,ground,ground]
252c458
<   second alternative:[...]
---
>   second alternative:[@,@,@]
254c460
<   union             :[...]
---
>   union             :[ground,ground,ground]
256c462
< exit solve_procedure concat with [...]
---
> exit solve_procedure concat with [ground,ground,ground]
258c464
< enter solve_procedure concat with [...]
---
> enter solve_procedure concat with [ground,ground,free]
260c466
< enter solve_alter with [...]
---
> enter solve_alter with [ground,free,ground]
262c468
< exit solve_alter with [...]
---
> exit solve_alter with [ground,ground,ground]
264c470
< enter solve_alter with [...]
---
> enter solve_alter with [ground,free,ground]
266c472
< enter solve_call concat with [...]
---
> enter solve_call concat with [ground,ground,free]
268c474
< exit solve_call concat with [...]
---
> exit solve_call concat with [ground,ground,ground]
270c476
< exit solve_alter with [...]
---
> exit solve_alter with [ground,ground,ground]
272c478
<   first  alternative:[...]
---
>   first  alternative:[ground,ground,ground]
274c480
<   second alternative:[...]
---
>   second alternative:[ground,ground,ground]
276c482
<   union             :[...]
---
>   union             :[ground,ground,ground]
278c484
< exit solve_procedure concat with [...]
---
> exit solve_procedure concat with [ground,ground,ground]
280c486,492
< hasse(...)
---
> hasse(concat => [_A: node([ground,ground,free],
>                           [ground,ground,ground],
>                           depend_on_me => [_A],
>                           fathers => [],
>                           sons => [],
>                           stable => true,
>                           suspended => true)])
282c494
< --------------7> --------------7> 
---
> > > 
284,288c496,497
< X = @, 
< Y = @, 
< Z = @.
< 
< ------------------------------15> 
---
> X = @, Y = @, Z = @.
> --1> 
290c499
< --------------7> 
---
> > 
292,295c501,502
< X = @, 
< Y = @.
< 
< ------------------------------15> 
---
> X = @, Y = @.
> --1> 
297,301c504
< --------------7> |    
< 
< enter solve_procedure tutu with [...]
< 
< enter solve_call titi with [...]
---
> > |    
303c506
< enter solve_procedure titi with [...]
---
> enter solve_procedure tutu with [free]
305c508
< exit solve_procedure titi with [...]
---
> enter solve_call titi with [free,free]
307c510
< exit solve_call titi with [...]
---
> enter solve_procedure titi with [free,free]
309c512
< exit solve_procedure tutu with [...]
---
> exit solve_procedure titi with [ground,ground]
311c514,531
< hasse(...)
---
> exit solve_call titi with [ground,ground]
> 
> exit solve_procedure tutu with [ground]
> 
> hasse(titi => [node([free,free],
>                     [ground,ground],
>                     depend_on_me => [_A: node([free],
>                                               [ground],
>                                               depend_on_me => [],
>                                               fathers => [],
>                                               sons => [],
>                                               stable => true,
>                                               suspended => true)],
>                     fathers => [],
>                     sons => [],
>                     stable => true,
>                     suspended => false)],
>       tutu => [_A])
313c533
< ----------------------------14> 
---
> > 
