The compat modality encodes the compatability relation.
not { compat { not { new interface }}
this, asked in the context of the old interface is “does there exist a compatible crate entailing this interface”.
Now I don’t mean to say that will just work out of the box—from some quick research prolog only does HORNSAT, while what I wrote requires real SAT. We’ll probably need at least to implement the dual (diamond or similar) modality more directly. Overlapping impl checking also seems impossible to do with just horn clauses, and in any event a single authoritative implementation of the compatability relation in rustc for all uses strikes me as an exciting goal.
What are “fulfillment contexts”? I don’t mean to say progress can’t already be made with rustc. As with everything I dream up, it will best-case serve as a long term plan :).