RCS "$Id: Act.sig,v 1.5 1998/08/13 11:37:09 pxs Exp $"; (************************************ Act ************************************) (* *) (* Interface for the CWB independent of any particular PA. *) (* *) (*****************************************************************************) signature ACT = sig type act (* I'd like to get rid of eps and tau real soon, keeping just observable *) val tau : act val eps : act (* e.g. in CCS, tau, eps and step are not observable, other actions are *) val observable : act -> bool val hashval : act -> word (* 'a <--> a *) val inverse : act -> act (* make an action out of a string, using conventional 'a, tau, eps, 1*) val mkact : string -> act val mkstr : act -> string val eq : act * act -> bool (* Tau < Eps < Step < a < a' (then lexicographic) *) val le : act * act -> bool (* i.e. can this be a FP to a proposition. Not nec to do with param agents *) (* The idea is, since fps aren't (ARGH!) distinguishable *) (* by their types, at least to rule out absurdities like tau as a formal *) (* parameter. *) val checkCanBeFormalActionParam : act -> unit (* Read an action from Lexing's input stream. *) val readAct : unit -> act structure ActionSet : ORDERED_SET where type Element.element = act (* Will raise ErrorWithReset if variable is unbound *) val actionSetEnvLookup : V.var -> ActionSet.set end