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