public override bool Visit(VCExprVar node, bool arg) { Contract.Requires(node != null); if (!BoundTermVars.Contains(node) && !KnownVariables.Contains(node)) { string printedName = Namer.GetQuotedName(node, node.Name); Contract.Assert(printedName != null); RegisterType(node.Type); string decl = "(declare-fun " + printedName + " () " + TypeToString(node.Type) + ")"; if (!(printedName.StartsWith("assume$$") || printedName.StartsWith("soft$$") || printedName.StartsWith("try$$"))) { AddDeclaration(decl); } KnownVariables.Add(node); if (declHandler != null) { declHandler.VarDecl(node); } } return(base.Visit(node, arg)); }
protected void AddKnownVariables(IDictionary <int, string> knownVariables) { foreach (var item in knownVariables) { KnownVariables.Add(item.Key, item.Value); } }
public void AddKnownVariable(VCExprVar variable) { if (KnownVariables.Contains(variable)) { return; } KnownVariables.Add(variable); }
public void AddKnownVariable(VCExprVar variable) { if (KnownVariables.Contains(variable)) { return; } KnownVariables.Add(variable); if (declHandler != null) { declHandler.VarDecl(variable); } }
public override bool Visit(VCExprVar node, bool arg) { Contract.Requires(node != null); if (!BoundTermVars.Contains(node) && !KnownVariables.Contains(node)) { string printedName = Namer.GetQuotedName(node, node.Name); Contract.Assert(printedName != null); RegisterType(node.Type); string decl = "(declare-fun " + printedName + " () " + TypeToString(node.Type) + ")"; AddDeclaration(decl); KnownVariables.Add(node); } return(base.Visit(node, arg)); }
private static void AddFormulaNode(List <BaseFormulaNode> nodes, string variableName, bool isNegative) { // Known variable kinda Pi, E, etc... if (KnownVariables.TryGetValue(variableName, out var value)) { if (isNegative) { value *= -1; } var valNode = new NumberNode(value); nodes.Add(valNode); } else { var varNode = new VariableNode(variableName, isNegative); nodes.Add(varNode); } }