/// <summary>
 /// Constructor
 /// </summary>
 /// <param name="LeftExpression">First expression</param>
 /// <param name="RightExpression">Second expression</param>
 public LogicOr(LogicExpression LeftExpression, LogicExpression RightExpression)
 {
     this.Left  = LeftExpression;
     this.Right = RightExpression;
     //if (LeftExpression.Type != Type.SigmaType || RightExpression.Type != Type.SigmaType)
     //    throw new ArgumentException();
     this.Type = Type.SigmaType;
 }
示例#2
0
        public BoundedExists(string VariableName, NumExpression Bound, LogicExpression Predicate)
        {
            this.VariableName = VariableName;
            this.Bound        = Bound;
            this.Predicate    = Predicate;
            string internalVar = "%" + VariableName;
            var    step        = new LogicVariable(internalVar) | Predicate;

            DeSugar = new RecLogicExpression(Bound, new LogicFalse(), VariableName, internalVar, step);
        }
示例#3
0
 public NumThe(string VariableName, LogicExpression Expression)
 {
     this.VariableName = VariableName;
     this.Expression   = Expression;
 }
 public LambdaExpression(string VariableName, LogicExpression Expression)
 {
     this.VariableName = VariableName;
     this.Expression   = Expression;
 }