Contracts specifying a procedure’s behavior in terms of pre- and postconditions are essential for scalable software verification, but cannot express any constraints on the events occurring during execution procedure. This necessitates to annotate code with intermediate assertions, preventing full specification abstraction. We propose logic over symbolic traces able specify recursive procedures ...