Академический Документы
Профессиональный Документы
Культура Документы
Operation Schema:
Updated operation
Boarding of a Passenger:
BoardingSuccess
ΔBus
P?:person
Msg!:MESSAGE
(P?∉Passengers)∧(#Passengers< Buscapacity)⇒(Passengers′=Passengers∪{P?})∧ Msg!=ok
BoardingFailure
ΞBus
P?:person
Msg!:MESSAGE
(P?∈Passengers)∨(#Passengers<Buscapacity)⇒Msg!=error
Leaving a Passenger:
LeavingSuccess
ΔBus
P?:person
Msg!:MESSAGE
(P?∈Passengers)⇒Passengers′=Passengers∖{P?}∧Msg!=ok
LeavingFailure
ΞBus
P?:person
Msg!:MESSAGE
(P?∉Passengers)⇒Msg!=error
[PNAME]
[PHONE]
MESSAGE::=ok|error
State Space Schema:
PHONEDIRECTORY
Name : ℙPNAME
Number:ℙPHONE
Person:PHONE ⇸PNAME
Number=dom(Person)
Operation Schema:
Updated operation
Adding Person:
AddPersonSuccess
Δ PHONEDIRECTORY
InputName?:PNAME
InputNum?:PHONE
Msg!:MESSAGE
(InputNum?∉Number)⇒Person′=Person ∪ {InputNum?↦InputName?}∧Msg!=ok
)
AddPersonFailure
ΞPHONEDIRECTORY
InputNum?:PHONE
Msg!:MESSAGE
InputNum?∈Number⇒Msg!=error
Read Person:
ReadByNameSuccess
ΞPHONEDIRECTORY
InputName?:PNAME
OutputNum!:ℙPHONE
Msg!:MESSAGE
OutputNum!={n:PHONE|(n↦InputName?)∈Person}∧ Msg!=ok
ReadByNumSuccess
ΞPHONEDIRECTORY
InputNum?:PHONE
OutputName!:ℙPNAME
Msg!:MESSAGE
OutputName!={p:PNAME|(InputNum?↦p)∈Person}∧ Msg!=ok
ReadFailure
ΞPHONEDIRECTORY
InputName?:PNAME
InputNum?:PHONE
Msg!:MESSAGE
(InputName?∉Name)∧(InputNum?∉Number)⇒Msg!=error
Delete Person:
DeleteSuccess
ΔPHONEDIRECTORY
InputName?:PNAME
InputNum?:PHONE
Msg!:MESSAGE
Person′=Person∖{InputNum?↦InputName?}∧Msg!=ok
DeleteFailure
ΔPHONEDIRECTORY
InputName?:PNAME
InputNum?:PHONE
Msg!:MESSAGE
(InputName?∉Name)t∧(InputNum?∉Number)⇒Msg!=error
Output: