Goal = goal(TraceOrAct, Excl) TraceOrAct = [Action, Action, ...] Action Excl = excl(GateL, ProcIsntL) GateL = [Gate, Gate, ...] Gate = The simple gate (g, gate1,...). ProcInstL = [ProcInst, ProcInst, ...] ProcInst = pi(ProcId, GateL, Num) ProcId = The external name of the process. Num = A number. Action = action(ActGate, EventL, GuardL) GuardL = [Guard, Guard, ...] Guard = ADT ActGate = _ /* Meaning any gate */ exit /* Exits are actions on gate exit... */ Gate EventL = [~] /* Meaning any list of events */ [Event, Event, ...] [Event, Event, ..., ~] Event = out(ADT) in(ValId) ADT = op(ADT, ADT, ...) /* Where op is an internal operator. */ ValId /* Must have been defined before in an in event. */ ValId = Name /* Unspecified sort. */ of(Name, Sort) Name = A string without () and other funny things such as []. Sort = The internal sort.