public void AddValueAssumption(string variableID, VariableDataTypes dataType, object value) { //Variables Z3Variable variable = _variables[variableID]; Term variableTerm = variable.Term; //Exception handling if (_valueAssumptions.ContainsKey(variableID)) throw new Exception("An assumption already exists for the given variable!"); if (variable.DataType != dataType) throw new Exception("Variable is of a different data type than " + dataType.ToString() + "!"); //Create, register and assert the assumption Z3ValueAssumption assumption = CreateValueAssumption(variableTerm, dataType, value); AssertValueAssumption(assumption); _valueAssumptions.Add(variableID, assumption); }
public void AddOrModifyValueAssumption(string variableID, VariableDataTypes dataType, object value) { //Variables Z3Variable variable = _variables[variableID]; Term variableTerm = variable.Term; //Exceptions if (variable.DataType != dataType) throw new Exception("Variable is of a different data type than " + dataType.ToString() + "!"); //Remove assumption, if it already exists if (_valueAssumptions.ContainsKey(variableID)) { RemoveValueAssumption(variableID); } //Add the new assumption AddValueAssumption(variableID, dataType, value); }