Требования безопасности в Datalog предназначены для предотвращения бесконечных результатов. Если у вас есть переменная, которая встречается в голове и только отрицается в теле, то она может быть связана с бесконечным числом значений, что, очевидно, будет проблемой.
Конкретные требования безопасности трудно точно сформулироватьПоэтому обычно вы видите, что требования упрощены до «каждая переменная должна происходить положительно». Это немного более ограничительно, чем необходимо.
Наиболее информативным ответом на этот вопрос будет то, что правило технически небезопасно, но оно не имеет бесконечного результата. Некоторые движки Datalog допускают это правило и возвращают конечный результат.