970,622 research outputs found
Refining Nodes and Edges of State Machines
State machines are hierarchical automata that are widely used to structure complex behavioural specifications. We develop two notions of refinement of state machines, node refinement and edge refinement. We compare the two notions by means of examples and argue that, by adopting simple conventions, they can be combined into one method of refinement. In the combined method, node refinement can be used to develop architectural aspects of a model and edge refinement to develop algorithmic aspects. The two notions of refinement are grounded in previous work. Event-B is used as the foundation for our refinement theory and UML-B state machine refinement influences the style of node refinement. Hence we propose a method with direct proof of state machine refinement avoiding the detour via Event-B that is needed by UML-B
Programming Language Features for Refinement
Algorithmic and data refinement are well studied topics that provide a
mathematically rigorous approach to gradually introducing details in the
implementation of software. Program refinements are performed in the context of
some programming language, but mainstream languages lack features for recording
the sequence of refinement steps in the program text. To experiment with the
combination of refinement, automated verification, and language design,
refinement features have been added to the verification-aware programming
language Dafny. This paper describes those features and reflects on some
initial usage thereof.Comment: In Proceedings Refine'15, arXiv:1606.0134
Proving Skipping Refinement with ACL2s
We describe three case studies illustrating the use of ACL2s to prove the
correctness of optimized reactive systems using skipping refinement. Reasoning
about reactive systems using refinement involves defining an abstract,
high-level specification system and a concrete, low-level system. Next, one
shows that the behaviors of the implementation system are allowed by the
specification system. Skipping refinement allows us to reason about
implementation systems that can "skip" specification states due to
optimizations that allow the implementation system to take several
specification steps at once. Skipping refinement also allows implementation
systems to, i.e., to take several steps before completing a specification step.
We show how ACL2s can be used to prove skipping refinement theorems by modeling
and proving the correctness of three systems: a JVM-inspired stack machine, a
simple memory controller, and a scalar to vector compiler transformation.Comment: In Proceedings ACL2 2015, arXiv:1509.05526. arXiv admin note: text
overlap with arXiv:1502.0294
3D mesh refinement procedure using the bisection and rivara algorithms with mesh quality assessment
Mesh refinement procedures for the solution of three dimensional problems are described. The computational\ud
domain is represented by an assembly of tetrahedral elements and the mesh refinement is acheived by the bisection\ud
and Rivara methods using an explicit mesh density function coupled with an automatic 3D mesh generator.\ud
A couple of benchmark examples is used to compare the performance of both refinement methods in terms of mesh\ud
and size qualities, number of generated elements and CPU time consume
An analysis of total correctness refinement models for partial relation semantics I
This is the first of a series of papers devoted to the thorough investigation of (total correctness) refinement based on an underlying partial relational model. In this paper we restrict attention to operation refinement. We explore four theories of refinement based on an underlying partial relation model for specifications, and we show that they are all equivalent. This, in particular, sheds some light on the relational completion operator (lifted-totalisation) due to Wookcock which underlines data refinement in, for example, the specification language Z. It further leads to two simple alternative models which are also equivalent to the others
- …
