7,643 research outputs found
Towards a formally verified microkernel using the Frama-C toolset
This dissertation is included in the MSc course in Computer Science of the University
of Beira Interior. It is a Formal Method’s related dissertation, where it’s used an Hoare Logic based paradigm, the Design by Contract (DbC).
This project consists in doing a Formal Verification of an industrial real-time Operating System (OS) kernel. The OS kernel that is verified is the eXtending free/open-source reaL-time execUtive for oN-board space Applications (xLuna). It is an OS from a
portuguese company, CSW. The code that was verified is the real source code of
xLuna. More precisely the source code of the Interrupt request (IRQ) Manager module.
The platform that was used to do the verification is the FRAmework for Modular
Analyses of C (Frama-C) Toolset which is a platform that allows the verification of C
code. Some incompatibilities were found in the use of the Frama-C in the source code
of the IRQ Manager. Both results and Frama-C incompatibilities will be analyzed in
the dissertation
Extending Hybrid CSP with Probability and Stochasticity
Probabilistic and stochastic behavior are omnipresent in computer controlled
systems, in particular, so-called safety-critical hybrid systems, because of
fundamental properties of nature, uncertain environments, or simplifications to
overcome complexity. Tightly intertwining discrete, continuous and stochastic
dynamics complicates modelling, analysis and verification of stochastic hybrid
systems (SHSs). In the literature, this issue has been extensively
investigated, but unfortunately it still remains challenging as no promising
general solutions are available yet. In this paper, we give our effort by
proposing a general compositional approach for modelling and verification of
SHSs. First, we extend Hybrid CSP (HCSP), a very expressive and process
algebra-like formal modeling language for hybrid systems, by introducing
probability and stochasticity to model SHSs, which is called stochastic HCSP
(SHCSP). To this end, ordinary differential equations (ODEs) are generalized by
stochastic differential equations (SDEs) and non-deterministic choice is
replaced by probabilistic choice. Then, we extend Hybrid Hoare Logic (HHL) to
specify and reason about SHCSP processes. We demonstrate our approach by an
example from real-world.Comment: The conference version of this paper is accepted by SETTA 201
A General Framework for Sound and Complete Floyd-Hoare Logics
This paper presents an abstraction of Hoare logic to traced symmetric
monoidal categories, a very general framework for the theory of systems. Our
abstraction is based on a traced monoidal functor from an arbitrary traced
monoidal category into the category of pre-orders and monotone relations. We
give several examples of how our theory generalises usual Hoare logics (partial
correctness of while programs, partial correctness of pointer programs), and
provide some case studies on how it can be used to develop new Hoare logics
(run-time analysis of while programs and stream circuits).Comment: 27 page
A semantic foundation for hidden state
We present the first complete soundness proof of the antiframe
rule, a recently proposed proof rule for capturing information hiding
in the presence of higher-order store. Our proof involves solving a
non-trivial recursive domain equation, and it helps identify some of the
key ingredients for soundness
Bounded Refinement Types
We present a notion of bounded quantification for refinement types and show
how it expands the expressiveness of refinement typing by using it to develop
typed combinators for: (1) relational algebra and safe database access, (2)
Floyd-Hoare logic within a state transformer monad equipped with combinators
for branching and looping, and (3) using the above to implement a refined IO
monad that tracks capabilities and resource usage. This leap in expressiveness
comes via a translation to "ghost" functions, which lets us retain the
automated and decidable SMT based checking and inference that makes refinement
typing effective in practice.Comment: 14 pages, International Conference on Functional Programming, ICFP
201
Several types of types in programming languages
Types are an important part of any modern programming language, but we often
forget that the concept of type we understand nowadays is not the same it was
perceived in the sixties. Moreover, we conflate the concept of "type" in
programming languages with the concept of the same name in mathematical logic,
an identification that is only the result of the convergence of two different
paths, which started apart with different aims. The paper will present several
remarks (some historical, some of more conceptual character) on the subject, as
a basis for a further investigation. The thesis we will argue is that there are
three different characters at play in programming languages, all of them now
called types: the technical concept used in language design to guide
implementation; the general abstraction mechanism used as a modelling tool; the
classifying tool inherited from mathematical logic. We will suggest three
possible dates ad quem for their presence in the programming language
literature, suggesting that the emergence of the concept of type in computer
science is relatively independent from the logical tradition, until the
Curry-Howard isomorphism will make an explicit bridge between them.Comment: History and Philosophy of Computing, HAPOC 2015. To appear in LNC
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
- …