Vi definierar en ny logik, STRAND, som möjliggör resonemang med högmanipuleringsprogram med hjälp av avdragsverifiering och SMT-lösare. STRAND logik ("STRucture ANd Data" logik) formler uttrycker begränsningar som omfattar högstrukturer och data som de innehåller; de definieras över en klass av pekarstrukturer R definieras med hjälp av MSO-definierade relationer över träd, och är av den form  på x och y ( x, y), där en monadic second-order logik (MSO) formel med ytterligare kvantifiering som kombinerar strukturella begränsningar samt data-constraints, men där data-constraints är endast tillåtet att hänvisa till x och y. De framträdande aspekterna av logiken är: a) logiken är kraftfull, möjliggör existentiell och universell kvantifiering över noderna, och komplexa kombinationer av data och strukturella begränsningar; b) kontrollera Hoare-triples för linjära block av uttalanden med förutsättningar och post-villkor uttryckta som booleska kombinationer av existentiella och universella STRAND formler minskar till tillfredsställelse av en STRAND formel; c) det finns kraftfulla decideable fragment av STRAND, en semantiskt definierade och en syntaktiskt definierade, där beslutsförfarandet fungerar genom att kombinera teorin om MSO över träd och den kvantifier-fria teorin om den underliggande data-logiska. Vi demonstrerar logikens effektivitet och praktiskhet genom att kontrollera verifieringsförhållanden som genereras för att bevisa egenskaper hos flera högmanipulerande program, med hjälp av ett verktyg som kombinerar ett MSO-beslutsförfarande över träd (MONA) med en SMT-lösare för heltalsbegränsningar (Z3).
REF kombinerar monadisk andra orderlogik med SMT-lösare.
Decidable logics combining heap structures and data
{'venue': "POPL '11", 'journal': None, 'mag_field_of_study': ['Computer Science']}