school of computing and mathematics, university of huddersfield cas2545: week 11 lecture: n the...

22
School of Comput ing and Mathemat ics, University CAS2545: WEEK 11 LECTURE: The meaning of Algebraic Specifications TUTORIAL/PRACTICAL: Do the exercises given in last week’s handout Look at the revision questions on the web and attempt them without looking at the answers

Post on 19-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

School of Computing and Mathematics, University of Huddersfield

CAS2545: WEEK 11

LECTURE: The meaning of Algebraic Specifications

TUTORIAL/PRACTICAL:

Do the exercises given in last week’s handout

Look at the revision questions on the web and attempt them without looking at the answers

School of Computing and Mathematics, University of Huddersfield

Algebras and Algebraic Specifications

Last week we saw:

- what an algebra was (values + closed, total operations)

- a way to specify algebras by writing Signatures of operation

- we can give a semantics to data types via algebras

But how can we show that an algebra ‘is specified’ by an algebraic specification? And what is the set of algebras specified by the specification?

School of Computing and Mathematics, University of Huddersfield

MODELS of the “Metre” in Paris

The “Metre” in Paris

The “Metre” in BerlinThe “Metre” in London

The “Metre” in MadridThe “Metre” in Rome

School of Computing and Mathematics, University of Huddersfield

MODELS of the “Algebraic Specification” of some Data Type

The Algebraic SpecificationOf the Data Type

Algebras (data types)Algebras (data types)

Algebras (data types)Algebras (data types)

School of Computing and Mathematics, University of Huddersfield

Models of An AlgebraRoughly: A model of an algebraic spec. AS is an algebra A

which conforms to the spec.

THE ALGEBRAIC SPEC is LIKE THE METRE IN PARIS!

To show an algebra A conforms to a specification AS we have to be able to do the following:

1. Map every operation in AS to a unique operation in algebra A.

2. Using this mapping (interpretation), show that the equations in AS are made true.

School of Computing and Mathematics, University of Huddersfield

Models of An Algebra1. e.g. Truth table logic, 3 valued logic are models of Boolean

specification.

2. e.g. decimal positive numbers, decimal positive numbers modulo 5, are models of the ‘Natural’ specification given out in the notes.

3. e.g. the C implementation of boolean type, with true = 1, false = 0, and = &&, not = !, can be said to be a model of the Boolean specification.

4. e.g. all ‘good’ implementations of a STACK data structure are models of the ‘Stack’ specification given out in the notes.

School of Computing and Mathematics, University of Huddersfield

Good and Bad Models of An Algebraic Spec

Models can be good or bad! For example, 3-valued logic is not a good model of Boolean.

The set of models of an alg. spec. as defined is not restricted enough.

To find the ‘good’ models we must look closely at an algebraic specification….

School of Computing and Mathematics, University of Huddersfield

The Term Algebra of an Algebraic Specification

The Term Algebra of an Alg. Spec. AS is a SPECIAL model (its similar idea to the Herbrand Universe of a set of well formed formulae in first order logic)

The Term Algebra is defined by:

set of values = the set of all terms that can be generated using the signature as a generative grammar

set of operations = operations as in the signature of the spec.

School of Computing and Mathematics, University of Huddersfield

Focus on the Type Of Interest If we have a heterogeneous algebra with N carrier

sets, then the values in its term algebra will split into those N sets.

E.g. in stack,

(push init 3) is in stack, (is_empty init) is in bool,

(top (push init 3)) is in nat.

We focus in on the values of the TYPE OF INTEREST (TOI) e.g. stack in the ‘Stack’ spec

School of Computing and Mathematics, University of Huddersfield

Equivalence Classes in a Term Algebra

The values of the term algebra of the TOI fall into distinct equivalence classes

If X, Y are in the TOI, then X = Y if and only if X can be transformed to Y using the equations.

E.g. (push init 3) and (push init (top (push init 3)))

are in the same equivalence class

School of Computing and Mathematics, University of Huddersfield

Equational reasoning (READ section 8.8 in the online book)

Assume we have an equation X = Y in an Algebraic Specification and a member of its term algebra T.

X and Y may contain (universally quantified) variables, T contains only operators / values (no variables).

Then we can use the equation to REWRITE T to another (equal) term T1.

The process is as follows:

1. Find a substring of T called T' that MATCHES with X under substitution sequence S .

2. Apply S to Y to get Y'

3. Replace T' in T with Y' to form new term T1.

School of Computing and Mathematics, University of Huddersfield

Equational reasoning example

Let T = or(and(true,not(false)),false)

Using the axiom:

(3) and(true,b) = b

Substring of T “and(true,not(false))” matches with the LHS of this equation under the substitution S = [not(false) / b ]

Thus we can re-write term T = or(and(true,not(false)),false) to new term:

or(b,false) [not(false) / b ] = or(not(false),false)

School of Computing and Mathematics, University of Huddersfield

Initial Models of An Algebraic Spec

A model is INITIAL if two conditions hold:

1. All distinct values in the model are represented by an equivalence class in the spec’s term algebra

This means NO JUNK - there are no DISTINCT values in the model (algebra) which aren’t represented by some DISTINCT equivalence class.

School of Computing and Mathematics, University of Huddersfield

Initial Models of An Algebraic Spec

2. Each equivalence class in the spec’s term algebra represents a unique value in the model

This means NO CONFUSION - we cannot have 2 equivalence classes in the model that map to the same value in the model.

School of Computing and Mathematics, University of Huddersfield

INITIAL MODEL of an “Algebraic Specification”

The Algebraic SpecificationOf the Data Type

Algebras (data types)values ABCD

Equivalence classes

School of Computing and Mathematics, University of Huddersfield

JUNK!

The Algebraic SpecificationOf the Data Type

Algebras (data types)values ABCDEF

Equivalence classes

School of Computing and Mathematics, University of Huddersfield

CONFUSION!

The Algebraic SpecificationOf the Data Type

Algebras (data types)values ABC

Equivalence classes

School of Computing and Mathematics, University of Huddersfield

The Semantics of An Algebraic Spec

Given an algebraic specification, its meaning is the set of all its

INITIAL MODELS

School of Computing and Mathematics, University of Huddersfield

Algebraic Specs as ‘Objects’

An algebraic spec provides an INTERFACE SPECIFICATION informing a client what services are on offer (class and operations).

This spec. is a good one because it provides the formal syntax AND semantics.

The TOI is a defined CLASS.

School of Computing and Mathematics, University of Huddersfield

Algebraic Specs as ‘Objects’

A specification of an object’s states are the equiv classes of the spec’s term algebra.

However, algebraic specs give no notion of identity and persistence!

Alg. Specs are easily implemented in HASKELL.

School of Computing and Mathematics, University of Huddersfield

Operational semantics of algebraic specifications

Alg. Specs are easily operationalised

(and implemented in HASKELL)

The equations are treat as Left to Right re-write rules (or function definitions). But the equations must be in a certain form to make this work..

School of Computing and Mathematics, University of Huddersfield

Conclusions

Algebraic Specs are using to abstractly define algebras

An algebra conforms to a spec if it is an initial model of that spec.

Equational Algebraic Specs can be prototyped (operationalised) by using the equations are L-R re-write rules