Fix supertightness check

This commit is contained in:
2020-05-28 18:37:34 +02:00
parent b52ca236e2
commit e57a1859d2
2 changed files with 13 additions and 8 deletions

View File

@@ -68,8 +68,8 @@ impl Problem
// If a backward proof is necessary, the program needs to be supertight, that is, no
// private predicates may transitively depend on themselves
if proof_direction.requires_backward_proof() && !predicate_declaration.is_public()
&& predicate_declaration.is_self_referential()
if proof_direction.requires_backward_proof()
&& predicate_declaration.has_private_dependency_cycle()
{
return Err(crate::Error::new_private_predicate_cycle(
std::rc::Rc::clone(&predicate_declaration)));