Results 1 -
3 of
3
Reasoning about pointers in refinement calculus
- In 10th Asia-Pacific Software Engineering Conference (APSEC'03
, 2003
"... Pointers are an important programming concept. They are used explicitely or implicitly in many programming languages. In particular, the semantics of object-oriented programming languages rely on pointers. We introduce a semantics for pointer structures. Pointers are seen as indexes and pointer fiel ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
(Show Context)
Pointers are an important programming concept. They are used explicitely or implicitly in many programming languages. In particular, the semantics of object-oriented programming languages rely on pointers. We introduce a semantics for pointer structures. Pointers are seen as indexes and pointer fields are functions from these indexes to values. Using this semantics we turn all pointer operations into simple assignments and then we use refinement calculus techniques to construct a pointer-manipulating program that checks whether or not a single linked list has a loop. We also introduce an induction principle on pointer structures in order to reduce complexity of the proofs. 1.
Refinement of recursive procedures with parameters in PVS
, 2004
"... We present a shallow embedding in PVS of a predicate transformer semantics of an imperative language suitable for reasoning about recursive procedures with parameters and local variables. We use the PVS dependent type mechanism for implementing program variables of different types. We use an uninter ..."
Abstract
- Add to MetaCart
(Show Context)
We present a shallow embedding in PVS of a predicate transformer semantics of an imperative language suitable for reasoning about recursive procedures with parameters and local variables. We use the PVS dependent type mechanism for implementing program variables of different types. We use an uninterpreted state space and define the program variables behavior by means of certain tree functions that are supposed to satisfy some axioms. Unlike in the implementations mentioned in the literature, we do not need to change the state space when adding local variables or procedure parameters. 1
Opponent
, 2014
"... A subshift is a set of infinite one- or two-way sequences over a fixed finite set, defined by a set of forbidden patterns. In this thesis, we study subshifts in the topological setting, where the natural morphisms between them are ones defined by a (spatially uniform) local rule. Endomorphisms of su ..."
Abstract
- Add to MetaCart
(Show Context)
A subshift is a set of infinite one- or two-way sequences over a fixed finite set, defined by a set of forbidden patterns. In this thesis, we study subshifts in the topological setting, where the natural morphisms between them are ones defined by a (spatially uniform) local rule. Endomorphisms of subshifts are called cellular automata, and we call the set of cellular automata on a subshift its endomorphism monoid. It is known that the set of all sequences (the full shift) allows cellular automata with complex dynamical and com-putational properties. We are interested in subshifts that do not support such cellular automata. In particular, we study countable subshifts, min-imal subshifts and subshifts with additional universal algebraic structure that cellular automata need to respect, and investigate certain criteria of ‘simplicity ’ of the endomorphism monoid, for each of them. In the case of countable subshifts, we concentrate on countable sofic shifts, that is, countable subshifts defined by a finite state automaton. We