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); }
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); }
/////////////////////////////////////////////////////////// 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); }
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); }
public Expression visit(QuantifiedExpression e) { e.expression.visit(this); return(e); }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //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); }