Publication:
Tressa: claiming the future

dc.contributor.coauthorQadeer, Shaz
dc.contributor.departmentN/A
dc.contributor.departmentN/A
dc.contributor.kuauthorSezgin, Ali
dc.contributor.kuauthorTaşıran, Serdar
dc.contributor.kuprofileResearcher
dc.contributor.kuprofileFaculty Member
dc.contributor.schoolcollegeinstituteN/A
dc.contributor.schoolcollegeinstituteN/A
dc.contributor.yokidN/A
dc.contributor.yokidN/A
dc.date.accessioned2024-11-09T23:06:07Z
dc.date.issued2010
dc.description.abstractUnlike sequential programs, concurrent programs have to account for interference on shared variables. Static verification of a desired property for such programs crucially depends on precisely asserting the conditions for interference. In a static proof system, in addition to program variables, auxiliary (history) variables summarizing the past of the program execution are used in these assertions. Capable of expressing reachability only, assertions (and history variables) are not as useful in the proofs of programs using optimistic concurrency. Pessimistic implementations which allow access to shared data only after synchronization (e.g. locks) guarantee exclusivity; optimistic concurrency implementations which check for interference after shared data is accessed abandon exclusivity in favor of performance. In this paper, we propose a new construct, tressa, to express properties, including interference, about the future of an execution. A tressa claim states a condition for reverse reachability from an end state of the program, much like an assert claim states a condition for forward reachability from the initial state of the program. As assertions employ history variables, tressa claims employ prophecy variables, originally introduced for refinement proofs. Being the temporal dual of history variables, prophecy variables summarize the future of the program execution. We present the proof rules and the notion of correctness of a program for two-way reasoning in a static setting: forward in time for assert claims, backward in time for tressa claims. We have incorporated our proof rules into the QED verifier and have used our implementation to verify a small but sophisticated algorithm. Our experience shows that the proof steps and annotations follow closely the intuition of the programmer, making the proof itself a natural extension of implementation.
dc.description.indexedbyWoS
dc.description.indexedbyScopus
dc.description.openaccessNO
dc.description.publisherscopeInternational
dc.description.sponsorshipScientific and Technical Research Council of Turkey [104E058]
dc.description.sponsorshipTurkish Academy of Sciences Distinguished Young Scientist Award (TUBA-GEBIP) This research was supported by a career grant (104E058) from the Scientific and Technical Research Council of Turkey, the Turkish Academy of Sciences Distinguished Young Scientist Award (TUBA-GEBIP), and a research gift from the Software Reliability Research group at Microsoft Research, Redmond, WA
dc.description.volume6217
dc.identifier.doiN/A
dc.identifier.eissn1611-3349
dc.identifier.isbn978-3-642-15056-2
dc.identifier.issn0302-9743
dc.identifier.quartileQ4
dc.identifier.scopus2-s2.0-77957046860
dc.identifier.urihttps://hdl.handle.net/20.500.14288/8921
dc.identifier.wos283104000002
dc.keywordsConcurrency
dc.keywordsRefinement
dc.languageEnglish
dc.publisherSpringer
dc.sourceVerified Software: Theories, Tools, Experiments
dc.subjectComputer science
dc.subjectSoftware engineering
dc.subjectComputer science-Mathematics
dc.subjectElectrical electronics engineering
dc.titleTressa: claiming the future
dc.typeConference proceeding
dspace.entity.typePublication
local.contributor.authoridN/A
local.contributor.authoridN/A
local.contributor.kuauthorSezgin, Ali
local.contributor.kuauthorTaşıran, Serdar

Files