5,176 research outputs found
Modularity and implementation of mathematical operational semantics
Structural operational semantics is a popular technique for specifying the meaning of programs by means of inductive clauses. One seeks syntactic restrictions on those clauses so that the resulting operational semantics is well-behaved. This approach is simple and concrete but it has some drawbacks. Turi pioneered a more abstract categorical treatment based upon the idea that operational semantics is essentially a distribution of syntax over behaviour. In this article we take Turi's approach in two new directions. Firstly, we show how to write operational semantics as modular components and how to combine such components to specify complete languages. Secondly, we show how the categorical nature of Turi's operational semantics makes it ideal for implementation in a functional programming language such as Haskell
Modularity and implementation of mathematical operational semantics
Structural operational semantics is a popular technique for specifying the meaning of programs by means of inductive clauses. One seeks syntactic restrictions on those clauses so that the resulting operational semantics is well-behaved. This approach is simple and concrete but it has some drawbacks. Turi pioneered a more abstract categorical treatment based upon the idea that operational semantics is essentially a distribution of syntax over behaviour. In this article we take Turi's approach in two new directions. Firstly, we show how to write operational semantics as modular components and how to combine such components to specify complete languages. Secondly, we show how the categorical nature of Turi's operational semantics makes it ideal for implementation in a functional programming language such as Haskell
Tool support for reasoning in display calculi
We present a tool for reasoning in and about propositional sequent calculi.
One aim is to support reasoning in calculi that contain a hundred rules or
more, so that even relatively small pen and paper derivations become tedious
and error prone. As an example, we implement the display calculus D.EAK of
dynamic epistemic logic. Second, we provide embeddings of the calculus in the
theorem prover Isabelle for formalising proofs about D.EAK. As a case study we
show that the solution of the muddy children puzzle is derivable for any number
of muddy children. Third, there is a set of meta-tools, that allows us to adapt
the tool for a wide variety of user defined calculi
Logical Specification of Operational Semantics
Various logic-based frameworks have been proposed for specifying the operational semantics of programming languages and concurrent systems, including inference systems in the styles advocated byPlotkin and by Kahn, Horn logic, equational specifications, reductionsystems for evaluation contexts, rewriting logic, and tile logic.We consider the relationship between these frameworks, and assess theirrespective merits and drawbacks - especially with regard to the modularity of specifications, which is a crucial feature for scaling up to practicalapplications. We also report on recent work towards the use of the Maudesystem (which provides an efficient implementation of rewriting logic) asa meta-tool for operational semantics
Gentzen-Prawitz Natural Deduction as a Teaching Tool
We report a four-years experiment in teaching reasoning to undergraduate
students, ranging from weak to gifted, using Gentzen-Prawitz's style natural
deduction. We argue that this pedagogical approach is a good alternative to the
use of Boolean algebra for teaching reasoning, especially for computer
scientists and formal methods practionners
Foundations of Modular SOS
A novel form of labelled transition system is proposed, wherethe labels are the arrows of a category, and adjacent labels in computations are required to be composable. Such transition systems provide thefoundations for modular SOS descriptions of programming languages.Three fundamental ways of transforming label categories, analogous tomonad transformers, are provided, and it is shown that their applicationspreserve computations in modular SOS. The approach is illustrated withfragments taken from a modular SOS for ML concurrency primitives
- …