MACHINE          Rename_Nfnc(maxint,maxfld)

CONSTRAINTS

   maxint <= 2147483646 &
   maxfld <= 2147483646
   
SEES             Bool_TYPE

VARIABLES        Rename_Nfnc

INVARIANT        Rename_Nfnc: 1..maxfld +-> 0..maxint

INITIALISATION   Rename_Nfnc := {}

OPERATIONS

  bb <-- Rename_TST_FLD_NFNC(ff) =
  PRE
    ff: NAT
  THEN
    bb:=bool(ff:1..maxfld)
  END;

 bb <-- Rename_DEF_NFNC(ff) =
  PRE
    ff: 1..maxfld
  THEN
    bb:=bool(ff:dom(Rename_Nfnc))
  END;

  bb,dd <-- Rename_FREE_NFNC =
  IF (1..maxfld )- dom(Rename_Nfnc) /= {}  THEN
    bb := TRUE ||
    dd :: (1..maxfld) - dom(Rename_Nfnc)
  ELSE
    bb := FALSE ||
    dd :: 1..maxfld 
  END;


  Rename_STO_NFNC(ff,vv) =
  PRE
    ff:1..maxfld &
    vv:0..maxint
  THEN 
    Rename_Nfnc(ff):=vv
  END;

  Rename_RMV_NFNC(ff) =
  PRE
    ff:dom(Rename_Nfnc)
  THEN 
    Rename_Nfnc:={ff} <<| Rename_Nfnc
  END;

  Rename_ADD_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc) &
    Rename_Nfnc(ff)+vv <= maxint
  THEN 
    Rename_Nfnc(ff):=Rename_Nfnc(ff)+vv
  END;

  Rename_MUL_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc) &
    Rename_Nfnc(ff)*vv <= maxint
  THEN 
    Rename_Nfnc(ff):=Rename_Nfnc(ff)*vv
  END;

  Rename_SUB_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc) &
    Rename_Nfnc(ff) >= vv
  THEN 
    Rename_Nfnc(ff):=Rename_Nfnc(ff)-vv
  END;

  Rename_DIV_NFNC(ff,vv) =
  PRE
    vv:1..maxint &
    ff:dom(Rename_Nfnc)
  THEN 
    Rename_Nfnc(ff):=Rename_Nfnc(ff)/vv
  END;

  Rename_MOD_NFNC(ff,vv) =
  PRE
    vv:1..maxint &
    ff:dom(Rename_Nfnc)
  THEN 
    Rename_Nfnc(ff):=Rename_Nfnc(ff)-vv*(Rename_Nfnc(ff)/vv)
  END;

  vv <-- Rename_VAL_NFNC(ff) =
  PRE
    ff:dom(Rename_Nfnc)
  THEN 
    vv:=Rename_Nfnc(ff)
  END;


  bb <-- Rename_EQL_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)=vv)
  END;

  bb <-- Rename_NEQ_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)/=vv)
  END;

  bb <-- Rename_GTR_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)>vv)
  END;

  bb <-- Rename_GEQ_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)>=vv)
  END;

  bb <-- Rename_SMR_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)<vv)
  END;

  bb <-- Rename_LEQ_NFNC(ff,vv) =
  PRE
    vv:0..maxint &
    ff:dom(Rename_Nfnc)
  THEN
    bb:=bool(Rename_Nfnc(ff)<=vv)
  END;


/**************  save/restore host byte order **************/

  Rename_SAV_NFNC = BEGIN skip END;

 
  Rename_RST_NFNC =
    BEGIN  Rename_Nfnc  :: 1..maxfld +-> 0..maxint END;



/**************  save/restore network byte order **************/

  Rename_SAVN_NFNC = BEGIN skip END;

 
  Rename_RSTN_NFNC =
    BEGIN  Rename_Nfnc  :: 1..maxfld +-> 0..maxint END



END


Analysed Constructs

Hypertext Constructs Page

On-line Help

Help Contents Page
Index

Document Last Updated: Wed Aug 25 17:35:59 1999

B-Toolkit Beta 4.55