def walk_array_value(self, formula): assign = formula.array_value_assigned_values_map() # First, rewrite it as a sequence of Stores on a constant array if assign: # Print array assignments in lexicographic order for deterministic printing _type = formula.get_type() formula = Array(_type.index_type, formula.array_value_default()) for k in sorted(assign, key=str, reversed=True): formula = Store(formula, k, assign[k]) yield formula else: arrtype = to_smv_type(formula.get_type()) self.write("CONSTARRAY({}, ".format(arrtype)) yield formula.array_value_default() self.write(")")