/*
* Copyright (C) 2016-2017 Christian Schilling (schillic@informatik.uni-freiburg.de)
* Copyright (C) 2016-2017 University of Freiburg
*
* This file is part of the ULTIMATE Automata Library.
*
* The ULTIMATE Automata Library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The ULTIMATE Automata Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the ULTIMATE Automata Library. If not, see
* The interface abstracts from the data structure that is used in the background, but also allows to return the data * structure for efficient use. *
* Note: Two calls to the {@link #iterator()} method may result in different {@link Pair} objects.
*
* @author Christian Schilling (schillic@informatik.uni-freiburg.de)
* @param