Example #1
0
 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(")")