*************************************************************************
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)].