Everything about Predicate transformer semantics
Reformulation of Floyd-Hoare logic
Predicate transformer semantics were introduced by Edsger Dijkstra in his seminal paper "Guarded commands, nondeterminacy and formal derivation of programs". They define the semantics of an imperative programming paradigm by assigning to each statement in this language a corresponding predicate transformer: a total function between two predicates on the state space of the statement. In this sense, predicate transformer semantics are a kind of denotational semantics. Actually, in guarded commands, Dijkstra uses only one kind of predicate transformer: the well-known weakest preconditions. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Predicate transformer semanticsA 5-minute orientation
- Skim a recent paper: Edge-Enriched Graph Transformer for Multiagent Trajectory Prediction With Relative Positional SemanticsInfluential work since 2022
- Pick up a classic book: The science of programmingThe most-reprinted book on the subject
- Read the landmark paper: Predicate transformer semantics of a higher-order imperative language with record subtypingCited 21 times
- Go sideways: Hoare logicA closely related topic
- Go sideways: Axiomatic semanticsA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🏆 Landmark papers (most cited)
Predicate transformer semantics of a higher-order imperative language with record subtyping
A predicate transformer semantics for effects (functional pearl)
A general proof rule for procedures in predicate transformer semantics
A Predicate/State Transformer Semantics for Bayesian Learning
A simple relation between relational and predicate transformer semantics for nondeterministic programs
Predicate Transformer Semantics for Hybrid Systems
Predicate-transformer semantics of general recursion
Relating direct and predicate transformer partial correctness semantics for an imperative probabilistic-nondeterministic language
🆕 Influential since 2022
Edge-Enriched Graph Transformer for Multiagent Trajectory Prediction With Relative Positional Semantics
Learning SMILES Semantics: Word2Vec and Transformer Embeddings for Molecular Property Prediction
Semantics-Aware Spatial-Temporal Dynamic Graph Transformer Network for On-Street Parking Occupancy Prediction
Adequacy for Predicate Transformer Semantics
Semantic Completeness-Enhanced Transformer Architecture for Named Entity and Relation Extraction in Noun Predicate Sentences
📚 Books worth reading
- 📕The science of programmingGries, David. · 1981
- 📕Predicate Transformer SemanticsErnest. G. Manes · 2010
Predicate transformer semanticsErnest G. Manes · 1992
Programs, recursion, and unbounded choiceWim H. Hesselink · 1992
Introduction to artificial intelligence and expert systemsDan W. Patterson · 1990
Foundations of Software Science and Computation StructuresFrank Pfenning · 2013
Foundations of neural networks, fuzzy systems, and knowledge engineeringNikola K. Kasabov · 1996
Foundations of software science and computation structuresFOSSACS 2000 (2000 Berlin, Germany) · 2000
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Hoare logic Hoare logic (also known as Floyd–Hoare logic or Hoare rules) is a formal system with a set of logical rules for reasoning rigorously about the correctness…
- Axiomatic semantics Axiomatic semantics is an approach based on mathematical logic for proving the correctness of computer programs. It is closely related to Hoare logic.…
- Dynamic logic (modal logic) In logic, philosophy, and theoretical computer science, dynamic logic is an extension of modal logic capable of encoding properties of computer programs…
- Separation logic In computer science, separation logic is an extension of Hoare logic, a way of reasoning about programs. It was developed by John C. Reynolds, Peter O'Hearn…
- Loop invariant In computer science, a loop invariant is a property of a program loop that is true before (and after) each iteration. It is a logical assertion, sometimes…
- Interference freedom In computer science, interference freedom is a technique for proving partial correctness of concurrent programs with shared variables. Hoare logic had…
- Dafny Dafny is an imperative and functional compiled language that compiles to other programming languages, such as C#, Java, JavaScript, Go, and Python. It…
- Unifying Theories of Programming Unifying Theories of Programming (UTP) in computer science deals with program semantics. It shows how denotational semantics, operational semantics, and…