EUSA3: Usage Support Agent  Behaviour External View 
Store Information in Database 
If the Usage Support Agent receives a communication that 
medicine has been taken, then the agent stores this information in 
the patient database. 
 
∀t:TIME, γ:TRACE, M:MEDICINE   state(γ, t, input(USA)) |= 
       communicated_from_to(medicine_used(M), 
medicine_box_agent,  
       usage_support_agent) & 
⇒ ∃t’:TIME  t ≤ t’≤ t + e [ state(γ, t’, output(USA)) |=    
                           performing_in(store_usage(M, t), 
patient_database) ] 
 
EUSA4: Usage Support Agent  Behaviour External View 
Store Send Early Warning Message to Patient 
If the Usage Support Agent receives a communication that the 
patient attempted to take medicine too early, then the agent sends 
an SMS to the patient cell phone. 
 
 
∀t:TIME, γ:TRACE, M:MEDICINE   state(γ, t, input(USA)) |=            
                           
communicated_from_to(too_early_intake_intention,   
 
                           medicine_box_agent, usage_support_agent) & 
⇒ ∃t’:TIME  t ≤ t’≤ t + e  [ state(γ, t’, output(USA)) |=  
      
communication_from_to(put_medicine_back_and_wait_for_signal,  
      usage_support_agent, patient_cell_phone) ] 
 
EUSA5: Usage Support Agent  Behaviour External View Send 
Approximated Concentration to Medicine Box Agent 
If the history of medicine usage implies a certain medicine level, 
then the Usage Support Agent communicates this value to the 
Medicine Box Agent. 
 
 
∀t:TIME, γ:TRACE, M:MEDICINE, C:REAL 
history_implied_value(γ, input(USA), t, M, C)  ⇒ 
∃t’  t≤ t’≤ t+e &    state(γ, t’, output(USA)) |=  
                                    communication_from_to(medicine_level(M, 
C),  
                                    usage_support_agent, medicine_box_agent) 
 
Besides the Usage Support Agent, the Medicine Box 
Agent (MBA) plays an important role within the 
system as well. From an external perspective, the 
MBA has three behavioural properties. The first 
(EMBA1) expresses that the MBA should 
communicate to the Usage Support Agent that 
medicine has been taken by the patient. This only 
occurs when the medicine is not taken too early. 
Properties EMBA2 and EMBA3 concern the 
communication in case of an early intake. First of 
all, the MBA should sound a beep (EMBA2), and 
furthermore, the MBA should communicate this 
information to the USA (EMBA3). Again, a 
parameter  e is used to specify the maximum delay 
for these properties. Note that these properties are 
later referred to as EMBA, which is the conjunction 
of the three properties specified below. 
 
EMBA1: Medicine Box Agent  Behaviour External View 
Communicate Usage Non-Early Intake 
When the medicine box agent observes medicine is taken from 
position X,Y in the box and the medicine is of type M, and the 
medicine level of M communicated to the agent is C, and 
furthermore, the medicine level plus a dose does not exceed the 
overall maximum, then the medicine box agent outputs medicine 
has been taken to the Usage Support Agent. 
 
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE 
state(γ, t, input(medicine_box_agent) |=  
  observed_result_from(medicine_taken_from_position(    
    x_y_coordinate(X, Y)), medicine_box) & 
state(γ, t, input(medicine_box_agent) |=  
  communicated_from_to(medicine_level(M, C),  
  usage_support_agent, medicine_box_agent) & 
C+DOSE <= MAX_MEDICINE_LEVEL & 
medicine_at_location(X, Y, M) 
⇒ ∃t’:TIME  t ≤ t’≤ t + e   [ state(γ, t’, output(medicine_box_agent) |=  
      communication_from_to(medicine_used(M), 
medicine_box_agent,  
      usage_support_agent) ] 
 
EMBA2: Medicine Box Agent  Behaviour External View 
Communicate Beep when Early Intake 
When the medicine box agent observes medicine is taken from 
position X,Y in the box and the medicine is of type M, and the 
medicine level of M communicated to the agent is C, and 
furthermore, the medicine level plus a dose exceeds the overall 
maximum, then the medicine box agent outputs a beep to the 
Patient. 
 
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE 
state(γ, t, input(medicine_box_agent) |=  
  observed_result_from(medicine_taken_from_position( 
  x_y_coordinate(X, Y)), medicine_box) & 
state(γ, t, input(medicine_box_agent) |=  
  communicated_from_to(medicine_level(M, C),  
  usage_support_agent, medicine_box_agent) & 
C+DOSE > MAX_MEDICINE_LEVEL & 
medicine_at_location(X, Y, hiv_slowers) 
⇒ ∃t’:TIME  t ≤ t’≤ t + e  [state(γ, t’, output(medicine_box_agent) |=  
 communication_from_to(sound_beep, medicine_box_agent, 
patient) ] 
 
EMBA3: Medicine Box Agent  Behaviour External View 
Communicate Early Intake to Usage Support Agent 
When the medicine box agent observes medicine is taken from 
position X,Y in the box and the medicine is of type M, and the 
medicine level of M communicated to the agent is C, and 
furthermore, the medicine level plus a dose exceeds the overall 
maximum, then the medicine box agent outputs a communication 
concerning this early intake intention to the Usage Support Agent. 
 
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE 
state(γ, t, input(medicine_box_agent) |=  
  observed_result_from(medicine_taken_from_position( 
  x_y_coordinate(X, Y)), medicine_box) & 
state(γ, t, input(medicine_box_agent) |=  
  communicated_from_to(medicine_level(M, C),  
  usage_support_agent, medicine_box_agent) & 
C+DOSE > MAX_MEDICINE_LEVEL & 
medicine_at_location(X, Y, hiv_slowers) 
⇒ ∃t’:TIME  t ≤ t’≤ t + e [ state(γ, t’, output(medicine_box_agent) |=  
  communication_from_to(too_early_intake_intention,  
  medicine_box_agent, usage_support_agent) ] 
 
Furthermore, a number of properties are specified 
for the external behavior of the other components. 
These properties include basic forwarding of 
information by the patient cell phone (PCP), the 
doctor cell phone (DCP), communication between 
various communicating components (CP). 
Furthermore, it includes the specification of the 
observation results of performing actions in the 
medicine box (EMD), the storage of information in  
the database (PDP), and the transfer of those actions 
and observations (WP). 
Finally, in order for such external behavioral 
properties to establish the global property, certain 
assumptions need to be made concerning the 
behavior of the doctor and of the patient. For the 
proof, the minimal behavior of the patient is used. 
This minimal behavior is specified by stating that 
the patient should at least respond to the doctor 
FORMAL ANALYSIS OF INTELLIGENT AGENTS FOR MODEL-BASED MEDICINE USAGE MANAGEMENT
153