def refines_constraints(storage, constraints):
    """
    Determines whether with the storage as basis for the substitution map there is a substitution that can be performed
    on the constraints, therefore refining them.
    :param storage: The storage basis for the substitution map
    :param constraints: The constraint list containing the expressions to be substituted.
    :return: True if the substitution would change the constraint list.
    """
    storage_names = ["storage[" + str(key) + "]" for key, _ in storage.items()]
    for name in storage_names:
        for constraint in constraints:
            if name in constraint.slot_names:
                return True
    return False