  Resilience is one of the key algorithmic problems underlying various forms of
reverse data management (such as view maintenance, deletion propagation, and
various interventions for fairness): What is the minimal number of tuples to
delete from a database in order to remove all answers from a query? A long-open
question is determining those conjunctive queries (CQs) for which this problem
can be solved in guaranteed PTIME. We shed new light on this and the related
problem of causal responsibility by proposing a unified Integer Linear
Programming (ILP) formulation. It is unified in that it can solve both prior
studied restrictions (e.g., self-join-free CQs under set semantics that allow a
PTIME solution) and new cases (e.g., all CQs under set or bag semantics It is
also unified in that all queries and all instances are treated with the same
approach, and the algorithm is guaranteed to terminate in PTIME for the easy
cases. We prove that, for all easy self-join-free CQs, the Linear Programming
(LP) relaxation of our encoding is identical to the ILP solution and thus
standard ILP solvers are guaranteed to return the solution in PTIME. Our
approach opens up the door to new variants and new fine-grained analysis: 1) It
also works under bag semantics and we give the first dichotomy result for bags
semantics in the problem space. 2) We give a more fine-grained analysis of the
complexity of causal responsibility. 3) We recover easy instances for generally
hard queries, such as instances with read-once provenance and instances that
become easy because of Functional Dependencies in the data. 4) We solve an open
conjecture from PODS 2020. 5) Experiments confirm that our results indeed
predict the asymptotic running times, and that our universal ILP encoding is at
times even faster to solve for the PTIME cases than a prior proposed dedicated
flow algorithm.
