public State Add(State state)
 {
     _states.Add (state);
     return state;
 }
 public Transition(string label, double probability, State from, State to)
 {
     this.Label = label;
     this.Probability = probability;
     this.To = to;
     this.From = from;
 }
 public Transition(string label, State from, State to)
     : this(label, 1, from, to)
 {
 }
 public Transition(double probability, State from, State to)
     : this("", probability, from, to)
 {
 }
 public Transition(State from, State to)
     : this("", 1, from, to)
 {
 }
 public State(State copy)
 {
     Identifier        = copy.Identifier;
     Initial           = copy.Initial;
     ValidPropositions = copy.ValidPropositions;
 }