MACHINE Rename_Narr(maxint,maxidx)
CONSTRAINTS
maxint > 0 &
maxint <= 2147483646 &
maxidx <= 2147483646
SEES Bool_TYPE
VARIABLES Rename_Narr
INVARIANT Rename_Narr: 1..maxidx --> 0..maxint
INITIALISATION Rename_Narr:: 1..maxidx --> 0..maxint
OPERATIONS
bb <-- Rename_TST_IDX_NARR(ii) =
PRE ii: NAT
THEN
bb := bool(ii:1..maxidx)
END;
vv <-- Rename_MAX_IDX_NARR(ii,jj) =
PRE
ii: 1..maxidx &
jj: 1..maxidx &
ran((ii..jj) <| Rename_Narr) /= {}
THEN
vv::Rename_Narr~[{max(ran((ii..jj) <| Rename_Narr))}]
END;
vv <-- Rename_MIN_IDX_NARR(ii,jj) =
PRE
ii: 1..maxidx &
jj: 1..maxidx &
ran((ii..jj) <| Rename_Narr) /= {}
THEN
vv::Rename_Narr~[{min(ran((ii..jj) <| Rename_Narr))}]
END;
vv <-- Rename_VAL_NARR(ii) =
PRE ii:1..maxidx
THEN
vv:=Rename_Narr(ii)
END;
Rename_STO_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
Rename_Narr(ii):=vv
END;
Rename_ADD_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx &
Rename_Narr(ii)+vv <= maxint
THEN
Rename_Narr(ii):=Rename_Narr(ii)+vv
END;
Rename_MUL_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx &
Rename_Narr(ii)*vv <= maxint
THEN
Rename_Narr(ii):=Rename_Narr(ii)*vv
END;
Rename_SUB_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx &
Rename_Narr(ii) >= vv
THEN
Rename_Narr(ii):=Rename_Narr(ii)-vv
END;
Rename_DIV_NARR(ii,vv) =
PRE
vv:1..maxint &
ii:1..maxidx
THEN
Rename_Narr(ii):=Rename_Narr(ii)/vv
END;
Rename_MOD_NARR(ii,vv) =
PRE
vv:1..maxint &
ii:1..maxidx
THEN
Rename_Narr(ii):=Rename_Narr(ii)-vv*(Rename_Narr(ii)/vv)
END;
bb <-- Rename_EQL_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)=vv)
END;
bb <-- Rename_NEQ_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)/=vv)
END;
bb <-- Rename_GTR_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)>vv)
END;
bb <-- Rename_GEQ_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)>=vv)
END;
bb <-- Rename_SMR_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)<vv)
END;
bb <-- Rename_LEQ_NARR(ii,vv) =
PRE
vv:0..maxint &
ii:1..maxidx
THEN
bb:=bool(Rename_Narr(ii)<=vv)
END;
bb,ii <-- Rename_SCH_LO_EQL_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[{vv}]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_LO_NEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[(0..maxint)-{vv}]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_LO_GEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[vv..maxint]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_LO_GTR_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[vv+1..maxint]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_LO_LEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[0..vv]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_LO_SMR_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[ 0..vv-1]
IN
bb:=bool(ss/={}) ||
ii:= min(ss \/ {maxidx})
END
END;
bb,ii <-- Rename_SCH_HI_EQL_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[{vv}]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
bb,ii <-- Rename_SCH_HI_NEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[(0..maxint)-{vv}]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
bb,ii <-- Rename_SCH_HI_GEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[vv..maxint]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
bb,ii <-- Rename_SCH_HI_GTR_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[vv+1..maxint]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
bb,ii <-- Rename_SCH_HI_LEQ_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[0..vv]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
bb,ii <-- Rename_SCH_HI_SMR_NARR(jj,kk,vv) =
PRE
vv:0..maxint &
jj:1..maxidx &
kk:1..maxidx
THEN
LET ss BE
ss = (jj..kk) /\ Rename_Narr~[ 0..vv-1]
IN
bb:=bool(ss/={}) ||
ii:= max(ss \/ {1})
END
END;
Rename_SRT_ASC_NARR(ii,jj) =
PRE
ii:1..maxidx &
jj:1..maxidx &
ii <= jj
THEN
ANY ff,aa,bb,cc WHERE
ff: (ii..jj) >->> (ii..jj) &
bb: NAT +-> (0..maxint) &
bb = (ff;Rename_Narr) &
!kk.(kk:ii..jj-1 => bb(kk) <= bb(kk+1)) &
aa = (1..ii-1) <| Rename_Narr &
cc = (jj+1..maxidx) <| Rename_Narr
THEN
Rename_Narr := aa \/ bb \/ cc
END
END;
Rename_SRT_DSC_NARR(ii,jj) =
PRE
ii:1..maxidx &
jj:1..maxidx &
ii <= jj
THEN
ANY ff,aa,bb,cc WHERE
ff: ii..jj >->> ii..jj &
bb: NAT +-> (0..maxint) &
bb = (ff;Rename_Narr) &
!kk.(kk:ii..jj-1 => bb(kk) >= bb(kk+1)) &
aa = (1..ii-1) <| Rename_Narr &
cc = (jj+1..maxidx) <| Rename_Narr
THEN
Rename_Narr := aa \/ bb \/ cc
END
END;
Rename_REV_NARR(ii,jj) =
PRE
ii:1..maxidx &
jj:1..maxidx &
ii <= jj
THEN
LET aa,bb,cc BE
aa = (1..ii-1) <| Rename_Narr &
bb = %kk.(kk:ii..jj | Rename_Narr(jj+ii-kk)) &
cc = (jj+1..maxidx) <| Rename_Narr
IN
Rename_Narr := aa \/ bb \/ cc
END
END;
Rename_RHT_NARR(ii,jj,nn) =
PRE
ii:1..maxidx &
jj:1..maxidx &
nn:1..maxidx &
ii <= jj
THEN
LET aa,bb,cc BE
aa = (1..ii+nn-1) <| Rename_Narr &
bb = %kk.(
kk:ii+nn..min({maxidx,jj+nn}) | Rename_Narr(kk-nn)
) &
cc = (jj+nn+1..maxidx) <| Rename_Narr
IN
Rename_Narr := aa \/ bb \/ cc
END
END;
Rename_LFT_NARR(ii,jj,nn) =
PRE
ii:1..maxidx &
jj:1..maxidx &
ii <= jj &
nn:1..maxidx
THEN
LET aa,bb,cc BE
aa = (1..ii-nn-1) <| Rename_Narr &
bb = %kk.(
kk:max({1,ii-nn})..jj-nn | Rename_Narr(kk+nn)
) &
cc = (jj-nn+1..maxidx) <| Rename_Narr
IN
Rename_Narr := aa \/ bb \/ cc
END
END;
Rename_SWP_NARR(ii,jj) =
PRE
ii: 1..maxidx &
jj: 1..maxidx
THEN
Rename_Narr:= (
Rename_Narr<+{ii |-> Rename_Narr(jj), jj |-> Rename_Narr(ii)}
)
END;
/************** save/restore host byte order **************/
Rename_SAV_NARR = BEGIN skip END;
Rename_RST_NARR =
BEGIN Rename_Narr :: 1..maxidx --> 0..maxint END;
/************** save/restore network byte order **************/
Rename_SAVN_NARR = BEGIN skip END;
Rename_RSTN_NARR =
BEGIN Rename_Narr :: 1..maxidx --> 0..maxint END
END
Analysed Constructs
Hypertext Constructs Page
On-line Help
Help Contents Page
Index
Document Last Updated: Wed Aug 25 17:35:56 1999

B-Toolkit Beta 4.55