public override Expression visit(QuantifiedExpression e)
        {
            context.Push(e.ToString());
            base.visit(e);
            context.Pop();

//            addSubexpression(result,context.Peek());
            return(e);
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private Expression removeTypeQuantification(QuantifiedExpression e)
        {
            Expression ne = removeTypeQuantification(e.expression);

            if (!ReferenceEquals(e.expression, ne))
            {
                return(new BasicQuantifiedExpression(procedure, e.quantifier, e.variable, ne, (from trs in e.triggers select trs).ToArray(), e.attributes));
            }
            return(e);
        }
Example #3
0
        public Expression visit(QuantifiedExpression e)
        {
            addExpression(e);

            if (e.type.freeTypeVariables.Count > 0)
            {
                tqStack.Peek().addExpression(e);
            }

            e.type.visit(this);
            e.variable.type.visit(this);
            e.expression.visit(this);
            return(e);
        }
Example #4
0
        ///////////////////////////////////////////////////////////
        public BasicQuantifiedExpression(
            QuantifiedExpression other,
            ExpressionSubstitution s
            )
        {
            scope      = other.scope;
            quantifier = other.quantifier;
            variable   = scope.makeFreshBoundVariable(other.variable.name,
                                                      other.variable.type.substitute(s.typeSubstitution));
            s.add(other.variable.name, new BasicBoundVariableExpression(variable));
            expression = other.expression.substitute(s);
            triggers   = (from trs in other.triggers select trs.substitute(s)).ToArray();
            if (other.attributes != null)
            {
                attributes = (string)(other.attributes.Clone());
            }

            s.remove(other.variable.name);
        }
Example #5
0
        public virtual Expression visit(QuantifiedExpression e)
        {
            BoundVariable newV = visitBoundVariable(e.variable);
            Expression    newE = e.expression.visit(this);
            var           newT = (from trs in e.triggers select trs.visit(this)).ToArray();

            e.type.visit(this);

            Expression result;

            if (!ReferenceEquals(e.variable, newV) || !ReferenceEquals(e.expression, newE) ||
                (e.triggers.Count != newT.Count() || Enumerable.Range(0, e.triggers.Count).Any(i => !ReferenceEquals(e.triggers[i], newT[i]))))
            {
                result = new BasicQuantifiedExpression(procedure, e.quantifier, newV, newE, newT, e.attributes);
            }
            else
            {
                result = e;
            }
            return(result);
        }
Example #6
0
 public Expression visit(QuantifiedExpression e)
 {
     e.expression.visit(this);
     return(e);
 }
Example #7
0
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
        //public virtual Expression visit(BoundVariableExpression v)
        public override Expression visit(QuantifiedExpression e)
        {
            Expression result = checkReplace(base.visit(e));

            return(result);
        }
 public Expression visit(QuantifiedExpression e)
 {
     return(e);
 }