6 research outputs found
Format Unraveled
International audiencePretty-printing can be described as finding a good-looking solution to typeset data according to a set of formatting conventions. Oppen [6] pioneered the field with an algorithmic solution to pretty-printing, using the notions of boxes and break hints. The Format module is a direct descendant of this work: it is unfortunately often misunderstood or even misused. The first goal of this article is to enhance the available documentation about Format by explaining its basic and advanced features but also its relationship and differences with Oppen's seminal work. The second goal is to investigate the links that Format has with the document-based pretty-printing tradition fostered by the lazy programming community [3, 4, 9, 10]
Towards a verified compiler prototype for the synchronous language SIGNAL
International audienceSIGNAL belongs to the synchronous languages family which are widely used in the design of safety-critical real-time systems such as avionics, space systems, and nuclear power plants. This paper reports a compiler prototype for SIGNAL. Compared with the existing SIGNAL compiler, we propose a new intermediate representation (named S-CGA, a variant of clocked guarded actions), to integrate more synchronous programs into our compiler prototype in the future. The front-end of the compiler, i.e., the translation from SIGNAL to S-CGA, is presented. As well, the proof of semantics preservation is mechanized in the theorem prover Coq. Moreover, we present the back-end of the compiler, including sequential code generation and multithreaded code generation with time-predictable properties. With the rising importance of multi-core processors in safety-critical embedded systems or cyber-physical systems (CPS), there is a growing need for model-driven generation of multithreaded code and thus mapping on multi-core. We propose a time-predictable multi-core architecture model in architecture analysis and design language (AADL), and map the multi-threaded code to this model
On the logical complexity of cyclic arithmetic
We study the logical complexity of proofs in cyclic arithmetic
(), as introduced in Simpson '17, in terms of quantifier
alternations of formulae occurring. Writing for (the logical
consequences of) cyclic proofs containing only formulae, our main
result is that and prove the same
theorems, for all . Furthermore, due to the 'uniformity' of our
method, we also show that and Peano Arithmetic ()
proofs of the same theorem differ only exponentially in size.
The inclusion is obtained by proof
theoretic techniques, relying on normal forms and structural manipulations of
proofs. It improves upon the natural result that is
contained in . The converse inclusion, , is obtained by calibrating the approach of Simpson '17 with
recent results on the reverse mathematics of B\"uchi's theorem in
Ko{\l}odziejczyk, Michalewski, Pradic & Skrzypczak '16 (KMPS'16), and
specialising to the case of cyclic proofs. These results improve upon the
bounds on proof complexity and logical complexity implicit in Simpson '17 and
also an alternative approach due to Berardi & Tatsuta '17.
The uniformity of our method also allows us to recover a metamathematical
account of fragments of ; in particular we show that, for , the consistency of is provable in but not
. As a result, we show that certain versions of McNaughton's
theorem (the determinisation of -word automata) are not provable in
, partially resolving an open problem from KMPS '16
Cyclic Hypersequent System for Transitive Closure Logic
We propose a cut-free cyclic system for transitive closure logic (TCL) based on a form of hypersequents, suitable for automated reasoning via proof search. We show that previously proposed sequent systems are cut-free incomplete for basic validities from Kleene Algebra (KA) and propositional dynamic logic (PDL), over standard translations. On the other hand, our system faithfully simulates known cyclic systems for KA and PDL , thereby inheriting their completeness results. A peculiarity of our system is its richer correctness criterion, exhibiting ‘alternating traces’ and necessitating a more intricate soundness argument than for traditional cyclic proofs.</p