Porting disjoint rules from https://github.com/frenetic-lang/pyretic/blob/kinetic_test/pyretic/core/language.py