26.09.2013 Views

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Sentences<br />

7.4. AN INSTITUTION FOR RSLI<br />

An RSLI Σ-sentence is a boolean value expression, which is well-formed<br />

according to the static semantics <strong>of</strong> RSL and is within the subset <strong>of</strong> RSLI.<br />

Sentence Morphisms<br />

As a specification represents a signature and a collection <strong>of</strong> sentences, the<br />

transformation rules do not only define a transformation between the signatures<br />

<strong>of</strong> the specifications but also a transformation between sentences. An<br />

RSLI sentence morphism Sen(σ) : Sen(Σ) → Sen(Σ ′ ) should be defined<br />

such that it respects the defined transformation rules for sentences.<br />

Sentence Functor<br />

The functor Sen : Sign → Set is a functor that maps signatures Σ in Sign to<br />

the set Sen(Σ) <strong>of</strong> Σ-sentences and maps each signature morphism σ : Σ → Σ ′<br />

in Sign to the sentence morphism Sen(σ) : Sen(Σ) → Sen(Σ ′ ) as described<br />

above.<br />

Models<br />

Let Σ = 〈A, OP, V 〉 be a signature. An RSLI Σ-model is a triple m =<br />

〈mA, mOP , sinit〉 where<br />

where<br />

• mA : Id →m Types, such that dom mA = dom A and mA(a) =<br />

M(A ∗ (a)). That is mA maps type identifiers <strong>into</strong> the types their abbreviations<br />

denote.<br />

• mOP : Id →m Values, such that dom mOP = dom OP and mOP (op) ∈<br />

M(OP (op)). That is mOP maps value identifiers <strong>into</strong> the values they<br />

denote. These values must be in the types denoted by their type expressions.<br />

• sinit ∈ Store. That is sinit denotes the initial store that maps variable<br />

identifiers to their initial values.<br />

• A ∗ is a function that takes a type expression to its canonical form,<br />

i.e. a type expression not referring to any type identifiers, by recursively<br />

expanding type identifiers according to their abbreviations.<br />

• M : T (A, V ) → Types is a meaning function mapping type expressions<br />

<strong>into</strong> the types they denote: M(t) = Value A ∗ (t).<br />

A type is a set <strong>of</strong> values, also known as a value domain. Valuet denotes<br />

the value domain for a type expression t ∈ T (∅, V ), e.g.:<br />

63

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!