def _assert(self, submodel, interpretation): if pre: graph = submodel.pregraph_has_node else: graph = submodel.postgraph edge = Edge.edge(interpretation(self.x), interpretation(self.y)) if parent: function = Graph.parents(graph) else: function = Graph.links(graph) has_edge = z3.Select(function, edge) return has_edge
def _assert(self, submodel, interpretation): if pre: labelmap = Graph.labelmap(submodel.pregraph) else: labelmap = Graph.labelmap(submodel.postgraph) node = interpretation(self.var) labelset = z3.Select(labelmap, node) label = self.label_as_int has_label = z3.Select(labelset, label) if un: return z3.Not(has_label) else: return has_label
def _assert(self, submodel, interpretation): node = interpretation(self.x) action = submodel.action atomic_action = AtomicAction.rem_action(node) has_rem_action = z3.Select(action, atomic_action) graph = submodel.pregraph_has_node has_function = Graph.has(graph) pregraph_has_node = z3.Select(has_function, node) return z3.And(has_rem_action, pregraph_has_node)
def _assert(self, submodel, interpretation): graph = submodel.postgraph has_function = Graph.has(graph) node = interpretation(self.x) has_node = z3.Select(has_function, node) return has_node