137 research outputs found
Completeness and Incompleteness of Synchronous Kleene Algebra
Synchronous Kleene algebra (SKA), an extension of Kleene algebra (KA), was
proposed by Prisacariu as a tool for reasoning about programs that may execute
synchronously, i.e., in lock-step. We provide a countermodel witnessing that
the axioms of SKA are incomplete w.r.t. its language semantics, by exploiting a
lack of interaction between the synchronous product operator and the Kleene
star. We then propose an alternative set of axioms for SKA, based on Salomaa's
axiomatisation of regular languages, and show that these provide a sound and
complete characterisation w.r.t. the original language semantics.Comment: Accepted at MPC 201
On Kleene Algebra vs. Process Algebra
We try to clarify the relationship between Kleene algebra and process
algebra, based on the very recent work on Kleene algebra and process algebra.
Both for concurrent Kleene algebra (CKA) with communications and truly
concurrent process algebra APTC with Kleene star and parallel star, the
extended Milner's expansion law holds, with being primitives (atomic actions),
being the parallel composition, being the alternative composition,
being the sequential composition and the communication merge with the
background of computation. CKA and APTC are all the truly concurrent
computation models, can have the same syntax (primitives and operators), maybe
have the same or different semantics
Concurrent Kleene Algebra with Observations: from Hypotheses to Completeness
Concurrent Kleene Algebra (CKA) extends basic Kleene algebra with a parallel
composition operator, which enables reasoning about concurrent programs.
However, CKA fundamentally misses tests, which are needed to model standard
programming constructs such as conditionals and -loops. It
turns out that integrating tests in CKA is subtle, due to their interaction
with parallelism. In this paper we provide a solution in the form of Concurrent
Kleene Algebra with Observations (CKAO). Our main contribution is a
completeness theorem for CKAO. Our result resorts on a more general study of
CKA "with hypotheses", of which CKAO turns out to be an instance: this analysis
is of independent interest, as it can be applied to extensions of CKA other
than CKAO
Topics in Programming Languages, a Philosophical Analysis through the case of Prolog
[EN]Programming languages seldom find proper anchorage in philosophy of logic, language and science. is more, philosophy of language seems to be restricted to natural languages and linguistics, and even philosophy of logic is rarely framed into programming languages topics. The logic programming paradigm and Prolog are, thus, the most adequate paradigm and programming language to work on this subject, combining natural language processing and linguistics, logic programming and constriction methodology on both algorithms and procedures, on an overall philosophizing declarative status. Not only this, but the dimension of the Fifth Generation Computer system related to strong Al wherein Prolog took a major role. and its historical frame in the very crucial dialectic between procedural and declarative paradigms, structuralist and empiricist biases, serves, in exemplar form, to treat straight ahead philosophy of logic, language and science in the contemporaneous age as well.
In recounting Prolog's philosophical, mechanical and algorithmic harbingers, the opportunity is open to various routes. We herein shall exemplify some:
- the mechanical-computational background explored by Pascal, Leibniz, Boole, Jacquard, Babbage, Konrad Zuse, until reaching to the ACE (Alan Turing) and EDVAC (von Neumann), offering the backbone in computer architecture, and the work of Turing, Church, Gödel, Kleene, von Neumann, Shannon, and others on computability, in parallel lines, throughly studied in detail, permit us to interpret ahead the evolving realm of programming languages. The proper line from lambda-calculus, to the Algol-family, the declarative and procedural split with the C language and Prolog, and the ensuing branching and programming languages explosion and further delimitation, are thereupon inspected as to relate them with the proper syntax, semantics and philosophical élan of logic programming and Prolog
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 23rd International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2020, which took place in Dublin, Ireland, in April 2020, and was held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The 31 regular papers presented in this volume were carefully reviewed and selected from 98 submissions. The papers cover topics such as categorical models and logics; language theory, automata, and games; modal, spatial, and temporal logics; type theory and proof theory; concurrency theory and process calculi; rewriting theory; semantics of programming languages; program analysis, correctness, transformation, and verification; logics of programming; software specification and refinement; models of concurrent, reactive, stochastic, distributed, hybrid, and mobile systems; emerging models of computation; logical aspects of computational complexity; models of software security; and logical foundations of data bases.
- …