Hi,
My name is Pedro andI'm starting to learn TLA+, trying to apply it to my research work. Basically, I am modeling a system with clients, agents and a master agent. The master receives tasks from the clients and assigns these tasks to the agents. A task is simply a record (agent, configuration). And clients must be notified whether success or failure. I am not concerned now with success of the task.
Part the condition for a client request is no other client requesting the same agent to perform a task. I express this here:
CRequest(c, T) ==
/\ T \in Task
/\ tasks[c] = noTask
/\ \A cc \in Clients : tasks[cc] \in Task => tasks[cc].agent # T.agent /\ tasks' = [tasks EXCEPT ![c] = T]
/\ UNCHANGED <<regAgents, assigned, notifications, status>>
The problem is: when I add this condition, TLC runs without errors, but no other actions are executed, except this CRequest. I noticed this looking at