abstraction layer uses a representation that works better with NetKAT