Vi introducerar ett program logik för att specificera en kärn sekventiell delmängd av POSIX filsystem och för resonemang abstrakt om klientprogram som arbetar med filsystemet. Utmaningen är att resonera om kombinationen av lokal kataloguppdatering och global sökväg traversal (inklusive ".." och symboliska länkar) som kan överlappa de kataloger som uppdateras. Befintliga resonemangstekniker baseras antingen på första ordningens logik och skalas inte, eller på separationslogik och kan endast hantera linjära sökvägar (ingen '.' eller symboliska länkar). Vi introducerar fusionslogik för resonemang om lokal uppdatering och global pathname traversal, införa en ny effekt ramregel för att sprida effekten av en lokal uppdatering på överlappande pathnames. Vi tillämpar vårt resonemang på standard rekursiv borttagning verktyg (rm -r), upptäcka buggar i välkända implementationer.
Ett undantag är Ntzik och Gardner REF, som definierar ett program logik för resonemang om klientprogram i POSIX filsystem.
Reasoning about the POSIX file system: local update and global pathnames
{'venue': 'OOPSLA 2015', 'journal': None, 'mag_field_of_study': ['Computer Science']}