def new_array(self, index_bits=<NUM_LIT:32>, name=None, index_max=None, value_bits=<NUM_LIT:8>, taint=frozenset(), avoid_collisions=False, default=None):
if name is None:<EOL><INDENT>name = '<STR_LIT:A>'<EOL>avoid_collisions = True<EOL><DEDENT>if avoid_collisions:<EOL><INDENT>name = self._make_unique_name(name)<EOL><DEDENT>if not avoid_collisions and name in self._declarations:<EOL><INDENT>raise ValueError(f'<STR_LIT>')<EOL><DEDENT>var = self._declare(ArrayVariable(index_bits, index_max, value_bits, name, taint=taint))<EOL>return ArrayProxy(var, default=default)<EOL>
Declares a free symbolic array of value_bits long bitvectors in the constraint store.
            :param index_bits: size in bits for the array indexes one of [32, 64]
            :param value_bits: size in bits for the array values
            :param name: try to assign name to internal variable representation,
                         if not unique, a numeric nonce will be appended
            :param index_max: upper limit for indexes on this array (#FIXME)
            :param avoid_collisions: potentially avoid_collisions the variable to avoid name collisions if True
            :param default: default for not initialized values
            :return: a fresh ArrayProxy