Пример #1
0
        public override AutomataBDD EncodeComposition(BDDEncoder encoder)
        {
            AutomataBDD processAutomataBDD = this.Process.Encode(encoder);

            //
            return(AutomataBDD.Guard(this.Condition, processAutomataBDD, encoder.model));
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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);

        }