“…The technique has been generalized to derive polynomial bounds [50,52,53,57,58], lower bounds [76], and to handle (strictly evaluated) programs with arrays and references [70], higher-order functions [51,61], lazy functional programs [86,90], object-oriented programs [56,59], and user defined data types [51,62]. It also has been integrated into separation logic [6] and proof assistants [25,81]. A distinctive common theme of sharing is compositionality and automatic bound inference via LP solving.…”