public override AutomataBDD EncodeComposition(BDDEncoder encoder) { AutomataBDD processAutomataBDD = this.Process.Encode(encoder); // return(AutomataBDD.Guard(this.Condition, processAutomataBDD, encoder.model)); }
/// <summary> /// Return AutomataBDD of the guard process /// </summary> /// <param name="guard">The guard expression of the process P1</param> /// <param name="P1">AutomataBDD of the process P1</param> /// <param name="model"></param> /// <returns></returns> public static AutomataBDD Guard(Expression guard, AutomataBDD P1, Model model) { AutomataBDD result = AutomataBDD.Guard(guard, P1, model); GuardEncodeTick(guard, P1, model, result); // return(result); }
public override AutomataBDD EncodeComposition(BDDEncoder encoder) { AutomataBDD process1BDD = this.FirstProcess.Encode(encoder); AutomataBDD process2BDD = this.SecondProcess.Encode(encoder); // AutomataBDD ifBDD = AutomataBDD.Guard(this.ConditionalExpression, process1BDD, encoder.model); AutomataBDD elseBDD = AutomataBDD.Guard(Expression.NOT(this.ConditionalExpression), process2BDD, encoder.model); // return AutomataBDD.Choice(new List<AutomataBDD> { ifBDD, elseBDD }, encoder.model); }