Operation: Issue a Book
? Inputs: copy c?, reader r?
? Copy must be shelved initially: c? ? shelved
? Reader must be registered: r? ? readers
? Reader must have less than maximum number of books on loan:
#(issued ? {r?}) < maxloans
? Copy must be recorded as issued to the reader:
issued' = issued ? {c? r?}
? The stock and the set of registered readers are unchanged:
stock' = stock; readers' = readers