point Module Interface Specification

(0) CHARACTERISTICS

-type specified: point

-features: deterministic, non-parameterized

-foreign types:

(1) SYNTAX

ACCESS-PROGRAMS

Program Name
Arg#1Arg#2Arg#3Result Type
SETPOSpoint:Oreal:Vreal:V 
EQUALpoint:Vpoint:V  bool
GETXpoint:V    real
GETYpoint:V    real
ASSIGNpoint:Vpoint:O   

(2) CANONICAL TRACES

canonical(T) x,y:<real> [T = SETPOS(*, x, y) ]

_ SETPOS(*, 0.0, 0.0)

AUXILIARY FUNCTIONS

coord_x: <point> <real>

coord_x(T) = x where x,y:<real> [T = SETPOS(*, x, y) ]

coord_y: <point> <real>

coord_y(T) = y where x,y:<real> [T = SETPOS(*, x, y) ]

(3) SEMANTICS

ACCESS-PROGRAMS

Legality(SETPOS(n, x, y)) = %legal%

SETPOS(n , x, y) = SETPOS(*, x, y)

Legality(EQUAL(T, U)) = %legal%

EQUAL(T, U) = T = U

Legality(GETX(T)) = %legal%

GETX(T) = coord_x(T)

Legality(GETY(T)) = %legal%

GETY(T) = coord_y(T)

Legality(ASSIGN(T, n)) = %legal%

ASSIGN(T, n ) = T