(1) reduced constructor visibility in abstraction
(2) fixed a bug that occurred with multi-dimensional arrays
(3) not killing type information on casts in backwards solver anymore
(4) added some test cases