internal override void ToMonaString(StringBuilder sb, CharSetSolver solver) { string s = BitVecUtil.GetIntBinaryString(label); var c = s[0]; if (c == '1') { sb.AppendFormat("is_{0}({1})", c, set); } else { sb.AppendFormat("~is_{0}({1})", c, set); } for (int i = 1; i < s.Length; i++) { sb.Append(" & "); c = s[i]; if (c == '1') { sb.AppendFormat("is_{0}({1})", c, set); } else { sb.AppendFormat("~is_{0}({1})", c, set); } } }
internal override void ToMonaString(StringBuilder sb, CharSetSolver solver) { var addOr = false; foreach (var bv in solver.GenerateAllCharacters(pred, false)) { if (addOr) { sb.Append(" | "); } else { addOr = true; } string s = BitVecUtil.GetIntBinaryString(bv); sb.Append("("); var c = s[0]; if (c == '1') { sb.AppendFormat("is_{0}({1})", c, set); } else { sb.AppendFormat("~is_{0}({1})", c, set); } for (int i = 1; i < s.Length; i++) { sb.Append(" & "); c = s[i]; if (c == '1') { sb.AppendFormat("is_{0}({1})", c, set); } else { sb.AppendFormat("~is_{0}({1})", c, set); } } sb.Append(")"); } }