# Section 7.1.1:
$OB

###### abstract class $OB

#### Formal Definitions

This abstract class defines a state component which is a set of all instantiations of objects of any class in addition to the vdm model types used wherever this class name is used. In this particular instance the sub-typing test is vacuously true. Note also that SAME has to be an instantiated class, not an abstract one.

types
SAME = Obj_Type ;
Obj_Type = token ; -- see Note 2 below.
$OB = set of Obj_Type
state
objects : $OB
inv obj_types ==
forall obj in set obj_types &
sub_type($OB,obj)

NOTE | 1. See the important note about vdm state in the notes on vdm-sl usage in this specification.
| 2. The vdm type Obj_Type is defined as a token since, being an abstract concept, no specific semantics can be attached to it apart from inheritance (sub-typing) and type equality. It may thus be used in containers, strings, file, etc definitions in the Required Library Abstract classes where the entities in the string, container, etc are of an arbitrary type.

This class is the abstract root class for the Sather language. All classes, irrespective of whether they inherit from other abstractions, implicitly sub-type from this class.

This class defines no features.

| Language Index |  | Library Index |  | Section 7 Index

Comments or enquiries should be made to Keith Hopper. Page last modified: Friday, 17 November 2000. |