Trace Abstraction-Based Verification for Uninterpreted Programs