lu-cs-sde / metadl

MetaDL: Datalog analyzing Datalog, Java or any language of your choice
BSD 2-Clause "Simplified" License
16 stars 2 forks source link

Infinite loop #3

Open madgen opened 5 years ago

madgen commented 5 years ago

The following program when run with make souffle EVAL=../repair/repair.mdl goes in an infinite loop

analyze ('Program) {
  NotSideAux($pred1,$pred3,$x,$y,$z,$ix1,$ix3) :-
    <: ... :- ..., $pred1(...,$ix1:$x,...),
              ..., NOT($pred2(...,$ix2:$y,...)),
              ..., $pred3(...,$ix3:$z,...),... .:>.
  NotSideAux($pred1,$pred3,$x,$y,$z,$ix1,$ix3) :-
    <: ... :- ..., $pred1(...,$ix1:$x,...),
              ..., $pred2(...,$ix2:$y,...),
              ..., NOT($pred3(...,$ix3:$z,...)),... .:>.
}
madgen commented 5 years ago

I simplified the looping example to the following. I hope this helps.

analyze ('Program) {
  P(1) :-
    <: ... :- ..., $pred1(...),
              ..., $pred2(...),
              ..., $pred3(...), ... .:>.
  P(1) :-
    <: ... :- ..., $pred1(...),
              ..., $pred2(...),
              ..., $pred3(...), ... .:>.
}