Computability and Completeness in Logics of Programs

Dynamic logic is a generalization of first order logic in which quantifiers of the form "for all X…" are replaced by phrases of the form "after executing program α…". This logic subsumes most existing first-order logic of programs that manipulate their environment, including Floy...

Full description

Bibliographic Details
Main Authors: Harel, David, Meyer, Albert R., Pratt, Vaughan R.
Published: 2023
Online Access:https://hdl.handle.net/1721.1/148925
_version_ 1826196415259344896
author Harel, David
Meyer, Albert R.
Pratt, Vaughan R.
author_facet Harel, David
Meyer, Albert R.
Pratt, Vaughan R.
author_sort Harel, David
collection MIT
description Dynamic logic is a generalization of first order logic in which quantifiers of the form "for all X…" are replaced by phrases of the form "after executing program α…". This logic subsumes most existing first-order logic of programs that manipulate their environment, including Floyd's and Hoare's logics of partial correctness and Manna and Waldinger's logic of total correctness, yet is more closely related to classical first-order logic than any other proposed logic of programs. We consider two issues: how hard is the validity problem for the formulae of dynamic logic, and how might one axiomatize dynamic logic? We give bounds on the validity problem for some special cases, include a π0/2-completeness result for the partial correctness theories of uninterpreted flowchart programs and a π1/1-completeness result for unrestricted dynamic logic. We also demonstrate the completeness of an axiomatization of dynamic logic relative to arithmetic.
first_indexed 2024-09-23T10:26:30Z
id mit-1721.1/148925
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T10:26:30Z
publishDate 2023
record_format dspace
spelling mit-1721.1/1489252023-03-30T04:01:49Z Computability and Completeness in Logics of Programs Harel, David Meyer, Albert R. Pratt, Vaughan R. Dynamic logic is a generalization of first order logic in which quantifiers of the form "for all X…" are replaced by phrases of the form "after executing program α…". This logic subsumes most existing first-order logic of programs that manipulate their environment, including Floyd's and Hoare's logics of partial correctness and Manna and Waldinger's logic of total correctness, yet is more closely related to classical first-order logic than any other proposed logic of programs. We consider two issues: how hard is the validity problem for the formulae of dynamic logic, and how might one axiomatize dynamic logic? We give bounds on the validity problem for some special cases, include a π0/2-completeness result for the partial correctness theories of uninterpreted flowchart programs and a π1/1-completeness result for unrestricted dynamic logic. We also demonstrate the completeness of an axiomatization of dynamic logic relative to arithmetic. 2023-03-29T14:09:44Z 2023-03-29T14:09:44Z 1978-02 https://hdl.handle.net/1721.1/148925 4802622 MIT-LCS-TM-097 application/pdf
spellingShingle Harel, David
Meyer, Albert R.
Pratt, Vaughan R.
Computability and Completeness in Logics of Programs
title Computability and Completeness in Logics of Programs
title_full Computability and Completeness in Logics of Programs
title_fullStr Computability and Completeness in Logics of Programs
title_full_unstemmed Computability and Completeness in Logics of Programs
title_short Computability and Completeness in Logics of Programs
title_sort computability and completeness in logics of programs
url https://hdl.handle.net/1721.1/148925
work_keys_str_mv AT hareldavid computabilityandcompletenessinlogicsofprograms
AT meyeralbertr computabilityandcompletenessinlogicsofprograms
AT prattvaughanr computabilityandcompletenessinlogicsofprograms