Now, the overall goal of inference is to find the highest scoring structure.
our implementation uses the following weaker version of this optimization: while caching ILPs, we do not add an instance to the cache if it already satisfies the theorem.