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



         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: 'spanishprg.pl'.
Program loaded.

>> loadspe.

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

Specification loaded.

>> listprg.


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

spanishdiet(_4534,_4535) = diet(_4534,_4535).

diet(_4552,_4553) = and(food(_4552),drink(_4553)).

and(true,_4567) = _4567.

food(_4576) = otherfood(_4576).

food(_4588) = spanishfood(_4588).

drink(_4600) = otherdrink(_4600).

drink(_4612) = spanishdrink(_4612).

spanishfood(paella) = true.

spanishfood(gazpacho) = true.

spanishfood(tapas) = true.

spanishfood(fideua) = true.

otherfood(lasagne) = true.

otherfood(sushi) = true.

otherfood(kebab) = true.

otherfood(bigmac) = true.

spanishdrink(sangria) = true.

spanishdrink(rioja) = true.

spanishdrink(aguadevalencia) = true.

otherdrink(cola) = true.

otherdrink(beer) = true.

otherdrink(sake) = true.

otherdrink(grappa) = true.


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


>> listspe.


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

spanishdiet(fideua,sangria) = true.

spanishdiet(fideua,rioja) = true.

spanishdiet(fideua,aguadevalencia) = true.

spanishdiet(paella,sangria) = true.

spanishdiet(paella,rioja) = true.

spanishdiet(paella,aguadevalencia) = true.

spanishdiet(gazpacho,sangria) = true.

spanishdiet(gazpacho,rioja) = true.

spanishdiet(gazpacho,aguadevalencia) = true.

spanishdiet(tapas,sangria) = true.

spanishdiet(tapas,rioja) = true.

spanishdiet(tapas,aguadevalencia) = true.


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


>> 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+           ***
************************************************

spanishdiet(tapas,aguadevalencia) = true.
spanishdiet(tapas,rioja) = true.
spanishdiet(tapas,sangria) = true.
spanishdiet(gazpacho,aguadevalencia) = true.
spanishdiet(gazpacho,rioja) = true.
spanishdiet(gazpacho,sangria) = true.
spanishdiet(paella,aguadevalencia) = true.
spanishdiet(paella,rioja) = true.
spanishdiet(paella,sangria) = true.
spanishdiet(fideua,aguadevalencia) = true.
spanishdiet(fideua,rioja) = true.
spanishdiet(fideua,sangria) = true.
tapas = tapas.
gazpacho = gazpacho.
paella = paella.
aguadevalencia = aguadevalencia.
rioja = rioja.
fideua = fideua.
sangria = sangria.
spanishdiet(_15126,_15127) = spanishdiet(_15126,_15127).
true = true.

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


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

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


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

spanishdiet(tapas,aguadevalencia) = true.
spanishdiet(tapas,rioja) = true.
spanishdiet(tapas,sangria) = true.
spanishdiet(gazpacho,aguadevalencia) = true.
spanishdiet(gazpacho,rioja) = true.
spanishdiet(gazpacho,sangria) = true.
spanishdiet(paella,aguadevalencia) = true.
spanishdiet(paella,rioja) = true.
spanishdiet(paella,sangria) = true.
spanishdiet(fideua,aguadevalencia) = true.
spanishdiet(fideua,rioja) = true.
spanishdiet(fideua,sangria) = true.
tapas = tapas.
gazpacho = gazpacho.
paella = paella.
aguadevalencia = aguadevalencia.
rioja = rioja.
fideua = fideua.
sangria = sangria.
spanishdiet(_41992,_41993) = spanishdiet(_41992,_41993).
true = true.

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



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

grappa = grappa.
sake = sake.
beer = beer.
cola = cola.
aguadevalencia = aguadevalencia.
rioja = rioja.
sangria = sangria.
bigmac = bigmac.
kebab = kebab.
sushi = sushi.
lasagne = lasagne.
fideua = fideua.
tapas = tapas.
gazpacho = gazpacho.
paella = paella.
spanishdrink(_63552) = spanishdrink(_63552).
otherdrink(_63539) = otherdrink(_63539).
spanishfood(_63526) = spanishfood(_63526).
otherfood(_63513) = otherfood(_63513).
true = true.
food(_63489) = food(_63489).
drink(_63476) = drink(_63476).
and(_63462,_63463) = and(_63462,_63463).
spanishdiet(_63448,_63449) = spanishdiet(_63448,_63449).
diet(_63432,_63433) = diet(_63432,_63433).
spanishdiet(_63418,_63419) = diet(_63418,_63419).

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


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

Incorrect equation: spanishdiet(_67282,_67283) = diet(_67282,_67283).
Incorrect rule: spanishdiet(_67270,_67271) = diet(_67270,_67271).


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

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

Enter a list of ground constructors 
|: [grappa,rioja,sushi,kebab].

************************************************
***             Positive Examples            ***
************************************************
spanishdiet(tapas,aguadevalencia) = true.
spanishdiet(tapas,rioja) = true.
spanishdiet(tapas,sangria) = true.
spanishdiet(gazpacho,aguadevalencia) = true.
spanishdiet(gazpacho,rioja) = true.
spanishdiet(gazpacho,sangria) = true.
spanishdiet(paella,aguadevalencia) = true.
spanishdiet(paella,rioja) = true.
spanishdiet(paella,sangria) = true.
spanishdiet(fideua,aguadevalencia) = true.
spanishdiet(fideua,rioja) = true.
spanishdiet(fideua,sangria) = true.

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

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

spanishdiet(kebab,grappa) = true.
spanishdiet(sushi,grappa) = true.
spanishdiet(kebab,rioja) = true.
spanishdiet(sushi,rioja) = true.

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

spanishdiet(fideua,sangria) = true.
spanishdiet(fideua,rioja) = true.
spanishdiet(fideua,aguadevalencia) = true.
spanishdiet(paella,sangria) = true.
spanishdiet(paella,rioja) = true.
spanishdiet(paella,aguadevalencia) = true.
spanishdiet(gazpacho,sangria) = true.
spanishdiet(gazpacho,rioja) = true.
spanishdiet(gazpacho,aguadevalencia) = true.
spanishdiet(tapas,sangria) = true.
spanishdiet(tapas,rioja) = true.
spanishdiet(tapas,aguadevalencia) = true.

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

The correction is 

otherdrink(sake) = true.
otherdrink(beer) = true.
otherdrink(cola) = true.
spanishdrink(aguadevalencia) = true.
spanishdrink(rioja) = true.
spanishdrink(sangria) = true.
otherfood(bigmac) = true.
otherfood(lasagne) = true.
spanishfood(fideua) = true.
spanishfood(tapas) = true.
spanishfood(gazpacho) = true.
spanishfood(paella) = true.
drink(_294761) = spanishdrink(_294761).
food(_294748) = spanishfood(_294748).
and(true,_294738) = _294738.
diet(_294722,_294723) = and(food(_294722),drink(_294723)).
spanishdiet(_294703,_294704) = diet(_294703,_294704).