*************************************************************************



         DECLARATIVE DEBUGGER FOR FUNCTIONAL LOGIC PROGRAMS .



*************************************************************************

*************************************************************************
*** help.      -> display menu                                        ***
*** clean.     -> clean program and specification                     ***
*** loadprg.   -> read in program to be corrected from file           ***
*** loadspe.   -> load specification of the semantics from file       ***
*** listprg.   -> display program                                     ***
*** listspe.   -> display specification                               ***
*** debugger.  -> run debugger                                        ***
*** save.      -> save program to file                                ***
*** exit.      -> leave program                                       ***
*************************************************************************

>> loadprg.

Write the name of the program: 'oddappprg.pl'.
Program loaded.

>> loadspe.

Write the name of the program: 'oddappspe.pl'.

Specification loaded.

>> listspe.


********************************************
***         DISPLAY SPECIFICATION.       ***
********************************************

oddapp([_4536],[_4534|_4535]) = [_4536,_4534|_4535].

oddapp([_4563,_4561|_4562],_4567) = _4570 :- _4570 = [_4563,_4561|oddapp(_4562,_4567)].
.


********************************************
********************************************


>> listprg.


**********************************************
***            DISPLAY PROGRAM.            ***
**********************************************

oddapp([],_5203) = _5203.

oddapp([_5214|_5215],_5218) = [_5214|oddapp(_5215,_5218)].


**********************************************
**********************************************


>> debugger.



************************************************
       NARROWING STRATEGY  OPTION
************************************************

1. Basic Narrowing.
2. Leftmost-Innermost Narrowing.
3. Leftmost-Outermost Narrowing.
4. Needed Narrowing.

Introduce the option: 2.



************************************************
***          OVER APPROXIMATION I+           ***
************************************************

oddapp([_9629,_9627|_9618],_9641) = [_9629,_9627|_9628].
oddapp([_9603],[_9601|_9602]) = [_9603,_9601|_9602].
[] = [].
oddapp(_9561,_9562) = oddapp(_9561,_9562).
[_9545|_9546] = [_9545|_9546].

************************************************
************************************************


The Over Approximation I(+) has been computed with 2 iterations.

Enter the number K of iterations for computing I(-) : 1.


************************************************
***          UNDER APPROXIMATION I-          ***
************************************************

oddapp([_13291,_13289|_13287],_13303) = [_13291,_13289|oddapp(_13287,_13303)].
oddapp([_13262],[_13260|_13261]) = [_13262,_13260|_13261].
[] = [].
oddapp(_13220,_13221) = oddapp(_13220,_13221).
[_13204|_13205] = [_13204|_13205].

************************************************
************************************************



************************************************
***                TR(I-)                    ***
************************************************

[_17516|_17517] = [_17516|_17517].
[] = [].
oddapp(_17492,_17493) = oddapp(_17492,_17493).
oddapp([_17473|_17471],_17477) = [_17473|oddapp(_17471,_17477)].
oddapp([],_17440) = _17440.

************************************************
************************************************


************************************************
***                  ERRORS                  ***
************************************************

Incorrect equation: oddapp([],_19344) = _19344.
Incorrect rule: oddapp([],_19335) = _19335.


Incorrect equation: oddapp([_19371|_19372],_19375) = [_19371|oddapp(_19372,_19375)].
Incorrect rule: oddapp([_19371|_19372],_19359) = [_19371|oddapp(_19372,_19359)].


                 CORRECTION OPTIONS              
************************************************
1.   Automatic correction. 
2.   Manual correction. 
     Enter option: 1.

************************************************
***           EXAMPLE GENERATION             ***
************************************************

Enter a list of ground constructors 
|: [[a],[a,a]].

************************************************
***             Positive Examples            ***
************************************************
oddapp([a],[a]) = [a,a].
oddapp([a],[a,a]) = [a,a,a].
oddapp([[a],[a],a],[a]) = [[a],[a],a,a].
oddapp([[a],[a],a],[a,a]) = [[a],[a],a,a,a].
oddapp([[a],[a,a],a],[a]) = [[a],[a,a],a,a].
oddapp([[a],[a,a],a],[a,a]) = [[a],[a,a],a,a,a].
oddapp([[a,a],[a],a],[a]) = [[a,a],[a],a,a].
oddapp([[a,a],[a],a],[a,a]) = [[a,a],[a],a,a,a].
oddapp([[a,a],[a,a],a],[a]) = [[a,a],[a,a],a,a].
oddapp([[a,a],[a,a],a],[a,a]) = [[a,a],[a,a],a,a,a].
oddapp([[a,a]],[[a,a],a,a]) = [[a,a],[a,a],a,a].
oddapp([[a,a]],[[a,a],a]) = [[a,a],[a,a],a].
oddapp([[a,a]],[[a],a,a]) = [[a,a],[a],a,a].
oddapp([[a,a]],[[a],a]) = [[a,a],[a],a].
oddapp([[a]],[[a,a],a,a]) = [[a],[a,a],a,a].
oddapp([[a]],[[a,a],a]) = [[a],[a,a],a].
oddapp([[a]],[[a],a,a]) = [[a],[a],a,a].
oddapp([[a]],[[a],a]) = [[a],[a],a].

************************************************
************************************************

************************************************
***            Negative Examples             ***
************************************************

oddapp([],[a]) = [a].
oddapp([],[a,a]) = [a,a].
oddapp([[a],a],[a]) = [[a],a,a].
oddapp([[a],a],[a,a]) = [[a],a,a,a].
oddapp([[a,a],a],[a]) = [[a,a],a,a].
oddapp([[a,a],a],[a,a]) = [[a,a],a,a,a].

************************************************
************************************************
........ 
************************************************
***      Positive Examples covered by R      ***
************************************************

oddapp([[a]],[[a],a]) = [[a],[a],a].
oddapp([[a]],[[a],a,a]) = [[a],[a],a,a].
oddapp([[a]],[[a,a],a]) = [[a],[a,a],a].
oddapp([[a]],[[a,a],a,a]) = [[a],[a,a],a,a].
oddapp([[a,a]],[[a],a]) = [[a,a],[a],a].
oddapp([[a,a]],[[a],a,a]) = [[a,a],[a],a,a].
oddapp([[a,a]],[[a,a],a]) = [[a,a],[a,a],a].
oddapp([[a,a]],[[a,a],a,a]) = [[a,a],[a,a],a,a].
oddapp([[a,a],[a,a],a],[a,a]) = [[a,a],[a,a],a,a,a].
oddapp([[a,a],[a,a],a],[a]) = [[a,a],[a,a],a,a].
oddapp([[a,a],[a],a],[a,a]) = [[a,a],[a],a,a,a].
oddapp([[a,a],[a],a],[a]) = [[a,a],[a],a,a].
oddapp([[a],[a,a],a],[a,a]) = [[a],[a,a],a,a,a].
oddapp([[a],[a,a],a],[a]) = [[a],[a,a],a,a].
oddapp([[a],[a],a],[a,a]) = [[a],[a],a,a,a].
oddapp([[a],[a],a],[a]) = [[a],[a],a,a].
oddapp([a],[a,a]) = [a,a,a].
oddapp([a],[a]) = [a,a].

************************************************
************************************************

The correction is 

oddapp([_120801],_120805) = [_120801|_120805].
oddapp([_120785,_120783|_120784],_120789) = [_120785,_120783|oddapp(_120784,_120789)].