class SymbolicAddressMap {

	public BoundedSet<SymbolicAddress> getStack(int index) {
		if(this.isTop()) return bsFactory.top();
		Location loc = new Location(index);
		BoundedSet<SymbolicAddress> val = mapP.get(loc);
		if(val == null) {
			Logger.getLogger(this.getClass()).error("Undefined stack location: "+loc);
			throw new AssertionError("Undefined stack Location");
		}
		return val;
	}

	public  SymbolicAddressMap(BoundedSetFactory<SymbolicAddress> bsFactory);
	private  SymbolicAddressMap(BoundedSetFactory<SymbolicAddress> bsFactory,
							   HashMap<Location,BoundedSet<SymbolicAddress>> initP,
							   HashMap<String,BoundedSet<SymbolicAddress>> initA);

}