Covering sharing trees: a compact data structure for parameterized verification