static void TestIdempotenceOfDecode3(STBuilderZ3 stb, Sort charSort)
{
var z3p = stb.Solver;
z3p.MainSolver.Push();
STz3 st = MkDecode(stb, charSort);
st.AssertTheory();
//st.ShowAsGraph();
Expr input = z3p.MkFreshConst("input", z3p.MkListSort(charSort));
Expr output1 = z3p.MkFreshConst("output1", z3p.MkListSort(charSort));
Expr output2 = z3p.MkFreshConst("output2", z3p.MkListSort(charSort));
string i;
string o1;
string o2;
var model = z3p.MainSolver.GetModel(z3p.MkAnd(st.MkAccept(input, output1), z3p.MkAnd(st.MkAccept(output1, output2), z3p.MkNeq(output1, output2))), input, output1, output2);
i = model[input].GetStringValue(false);
o1 = model[output1].GetStringValue(false);
o2 = model[output2].GetStringValue(false);
Assert.AreEqual(o1, System.Net.WebUtility.HtmlDecode(i));
Assert.AreEqual(o2, System.Net.WebUtility.HtmlDecode(System.Net.WebUtility.HtmlDecode(i)));
Assert.AreNotEqual(o1, o2);
z3p.MainSolver.Pop();
}