premier_quartier 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
METTREpoint:Oreal:Vreal:V 
GAUCHEpoint:VOreal:V   
DROITpoint:VOreal:V   
HAUTpoint:VOreal:V   
BASpoint:VOreal:V   
EST_DANS_CERCLEpoint:V    bool

(2) CANONICAL TRACES

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

AUXILIARY FUNCTIONS

coord_x: <point> <real>

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

coord_y: <point> <real>

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

(3) SEMANTICS

ACCESS-PROGRAMS

Legality(METTRE(n, x, y)) =

ConditionValue
x 0.0 y 0.0%legal%
x < 0.0 y < 0.0%dehors du premier quartier%

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

Legality(GAUCHE((n, T), a)) =

ConditionValue
T = _ %pas initialise%
T _ coord_x(T) - a < 0.0%dehors du premier quartier%
T _ coord_x(T) - a 0.0%legal%

GAUCHE((n, T) , a) = METTRE(*, coord_x(T) - a, coord_y(T))

Legality(DROIT((n, T), a)) =

ConditionValue
T = _ %pas initialise%
T _%legal%

DROIT((n, T) , a) = METTRE(*, coord_x(T) + a, coord_y(T))

Legality(HAUT((n, T), a)) =

ConditionValue
T = _ %pas initialise%
T _%legal%

HAUT((n, T) , a) = METTRE(*, coord_x(T), coord_y(T) + a)

Legality(BAS((n, T), a)) =

ConditionValue
T = _ %pas initialise%
T _ coord_y(T) - a < 0.0%dehors du premier quartier%
T _ coord_y(T) - a 0.0%legal%

BAS((n, T) , a) = METTRE(*, coord_x(T), coord_y(T) - a)

Legality(EST_DANS_CERCLE(T)) =

ConditionValue
T = _ %pas initialise%
T _%legal%

EST_DANS_CERCLE(T) = coord_x(T) * coord_x(T) + coord_y(T) * coord_y(T) 1.0