public TlaTransition(int id, TlaState from, TlaState to, TlaFormula condition) { this.Id = id; this.FromState = from; this.ToState = to; this.Condition = condition; to.RegisterIncoming(this); from.RegisterOutgoing(this); }
private void RemoveState(TlaState state) { _statesById.Remove(state.Id); _statesByName.Remove(state.Name); foreach (var t in state.Outgoings) { _statesById[t.ToState.Id].UnregisterIncoming(t); _allTransitions.Remove(t); } }
public ITlaState CreateState(string name, bool isInitial, bool isAccepting) { var state = new TlaState(this, _statesById.Count, name, isInitial, isAccepting); _statesById.Add(state.Id, state); _statesByName.Add(state.Name, state); if (isInitial) { _initialStates.Add(state); } if (isAccepting) { _acceptingStates.Add(state); } return(state); }