Кіріспе
Компьютерлік ғылымда бөлу логикасы – Хоар логикасының кеңейтілген түрі, бағдарламаларды түсінудің бір жолы. Оны Джон С. Рейнольдс, Питер О’Херн, Самин Иштиак және Хонгсеок Янг, Род Бурсталдың бұрынғы жұмыстарын пайдалана отырып жасады. Бөлу логикасының нақтылау тілі – топталған импликациялар (BI) логикасының ерекше жағдайы. О’Херннің CACM журналындағы шолу мақаласы осы саланың 2019 жылдың басына дейінгі дамуын көрсетеді.
Асерциялар: операторлар мен семантика
Бөлу логикасының тұжырымдары сақтау және үйіндіден тұратын "күйлерді" сипаттайды, бұл C және Java сияқты көпте қолданылатын бағдарламалау тілдеріндегі жергілікті (немесе стекте сақталатын) айнымалылар мен динамикалық түрде бөлінген нысандардың күйіне ұқсас. Сақтау – айнымалыларды мәндерге бейнелейтін функция. Үйінді – жад адрестерін мәндерге бейнелейтін ішінара функция. Егер екі үйіндінің домендері үстіртпейтін болса (яғни, әр жад адресі үшін, кем дегенде біреуі анықталмаған болса), онда олар ажыратылған ( деп белгіленеді). Логика , түріндегі тұжырымдарды дәлелдеуге мүмкіндік береді, мұндағы – сақтау, – үйінді, ал – берілген сақтау мен үйіндіге қатысты тұжырым. Бөлу логикасының тұжырымдары (, ,) стандартты логикалық операторларды (және, сондай-ақ , , және , мұндағы және – өрнектер) қамтиды. тұрақтысы үйіндінің бос екенін, яғни барлық адрестер үшін анықталмағанын көрсетеді. Бинарлық оператор адресті және мәнді қабылдап, үйіндінің дәл бір жерде анықталғанын, берілген адресті берілген мәнге бейнелейтінін білдіреді. Яғни, (ерде – сақтауда есептелген өрнектің мәні) және басқа жағдайларда анықталмаған. Бинарлық оператор (жұлдыз немесе ажырату конъюнкциясы деп аталады) үйіндіні екі ажыратылған бөлікке бөлуге мүмкіндігін көрсетеді, мұнда оның екі аргументі де орындалады. Яғни, егер мұндай үйінділер бар болса, онда және және және . Бинарлық оператор (сиқырлы таяқ немесе ажырату импликациясы деп аталады) үйіндіні оның бірінші аргументін қанағаттандыратын ажыратылған бөлікпен кеңейтудің нәтижесінде екінші аргументін қанағаттандыратын үйінді пайда болатынын көрсетеді. Яғни, кез келген үйінді үшін , сондай-ақ орындалады. және операторлары классикалық конъюнкция және импликация операторларымен кейбір қасиеттерді бөліседі. Оларды modus ponens сияқты қорытындылау ережесін қолдана отырып біріктіруге болады және олар қосымша құрайды, яғни, егер және тек егер үшін; нақтырақ айтқанда, қосымша операторлар және .
and they form an adjunction, i. e., if and only if for ; more precisely, the adjoint operators are and .
Шешімділік пен күрделілік
Квантификаторсыз, көп түрліліктері бар, жад орналасулары мен деректер түрлері бойынша параметрленген бөліну логикасының фрагменті үшін қанағаттандыру мәселесі PSPACE толық екені дәлелденеді. Осы фрагментті DPLL(T) негізіндегі SMT шешуіштерде шешу алгоритмі cvc5 құрамына енгізілді. Бұл нәтижені кеңейте келе, интерпретацияланбаған жад орналасулары бар бөліну логикасы үшін Бернейс-Шенфинкель класының аналогының қанағаттандырылуы да PSPACE толық екені көрсетіледі, ал интерпретацияланған жад орналасуларымен (мысалы, бүтін сандармен) немесе одан әрі кванторлардың алмасуымен мәселе шешілмейді.