fstate_case: fixes y :: "d \<times> d list \<times> 'a \<times> 'b" obtains a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x1 :: "int" where "y = (a__, b__, c__, d__)" and "a__ = DI x1__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" and x1 :: "lambda" and x2a :: "nat \<Rightarrow> contour option" and x1a :: "nat" and x2aa :: "(nat \<times> char list) list" and x3 :: "call" where "y = (aa__, ba__, ca__, da__)" and "aa__ = DC x2__" and "x2__ = (x1a__, x2a__)" and "x1a__ = Lambda x1aa__ x2aa__ x3__" and "length x2aa__ = length ba__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" and x1 :: "lambda" and x2a :: "nat \<Rightarrow> contour option" and x1a :: "nat" and x2aa :: "(nat \<times> char list) list" and x3 :: "call" where "y = (ab__, bb__, cb__, db__)" and "ab__ = DC x2b__" and "x2b__ = (x1b__, x2a)" and "x1b__ = Lambda x1ab__ x2aa x3a__" and "length x2aa \<noteq> length bb__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" where "y = (ac__, bc__, cc__, dc__)" and "ac__ = DP x3b__" and "x3b__ = Plus x1c__" and "bc__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" where "y = (ad__, bd__, cd__, dd__)" and "ad__ = DP x3c__" and "x3c__ = Plus x1d__" and "bd__ = x21__ # x22__" and "x21__ = DI x1ac__" and "x22__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" and x1aa :: "int" where "y = (ae__, be__, ce__, de__)" and "ae__ = DP x3d__" and "x3d__ = Plus x1e__" and "be__ = x21a__ # x22a__" and "x21a__ = DI x1ad__" and "x22a__ = x21aa__ # x22aa__" and "x21aa__ = DI x1aaa__" and "x22aa__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" and x1aa :: "int" and x21b :: "d" and x22b :: "d list" where "y = (af__, bf__, cf__, df__)" and "af__ = DP x3e__" and "x3e__ = Plus x1f__" and "bf__ = x21b__ # x22b__" and "x21b__ = DI x1ae__" and "x22b__ = x21ab__ # x22ab__" and "x21ab__ = DI x1aab__" and "x22ab__ = x21ba__ # x22ba__" and "x22ba__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" and x1aa :: "int" and x21b :: "d" and x22b :: "d list" and x21c :: "d" and x22c :: "d list" where "y = (ag__, bg__, cg__, dg__)" and "ag__ = DP x3f__" and "x3f__ = Plus x1g__" and "bg__ = x21c__ # x22c__" and "x21c__ = DI x1af__" and "x22c__ = x21ac__ # x22ac__" and "x21ac__ = DI x1aa" and "x22ac__ = x21b # x22b" and "x22b = x21c # x22c"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" where "y = (ah__, bh__, ch__, dh__)" and "ah__ = DP x3g__" and "x3g__ = Plus x1h__" and "bh__ = x21d__ # x22d__" and "x21d__ = DI x1ag__" and "x22d__ = x21ad__ # x22ad__" and "x21ad__ = DC x2c__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" and x3a :: "prim" where "y = (ai__, bi__, ci__, di__)" and "ai__ = DP x3h__" and "x3h__ = Plus x1i__" and "bi__ = x21e__ # x22e__" and "x21e__ = DI x1ah__" and "x22e__ = x21ae__ # x22ae__" and "x21ae__ = DP x3aa__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x1a :: "int" and x21a :: "d" and x22a :: "d list" where "y = (aj__, bj__, cj__, dj__)" and "aj__ = DP x3i__" and "x3i__ = Plus x1j__" and "bj__ = x21f__ # x22f__" and "x21f__ = DI x1a" and "x22f__ = x21af__ # x22af__" and "x21af__ = Stop"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" where "y = (ak__, bk__, ck__, dk__)" and "ak__ = DP x3j__" and "x3j__ = Plus x1k__" and "bk__ = x21g__ # x22g__" and "x21g__ = DC x2d__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" and x3a :: "prim" where "y = (al__, bl__, cl__, dl__)" and "al__ = DP x3k__" and "x3k__ = Plus x1l__" and "bl__ = x21h__ # x22h__" and "x21h__ = DP x3ab__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x1 :: "nat" and x21 :: "d" and x22 :: "d list" where "y = (am__, bm__, cm__, dm__)" and "am__ = DP x3l__" and "x3l__ = Plus x1m__" and "bm__ = x21i__ # x22i__" and "x21i__ = Stop"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" where "y = (an__, bn__, cn__, dn__)" and "an__ = DP x3m__" and "x3m__ = prim.If x21j__ x22j__" and "bn__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x1 :: "int" where "y = (ao__, bo__, co__, do__)" and "ao__ = DP x3n__" and "x3n__ = prim.If x21k__ x22k__" and "bo__ = x21ag__ # x22ag__" and "x21ag__ = DI x1n__" and "x22ag__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x1 :: "int" and x21aa :: "d" and x22aa :: "d list" where "y = (ap__, bp__, cp__, dp__)" and "ap__ = DP x3o__" and "x3o__ = prim.If x21l__ x22l__" and "bp__ = x21ah__ # x22ah__" and "x21ah__ = DI x1o__" and "x22ah__ = x21aaa__ # x22aaa__" and "x22aaa__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x1 :: "int" and x21aa :: "d" and x22aa :: "d list" and x21aaa :: "d" and x22aaa :: "d list" where "y = (aq__, bq__, cq__, dq__)" and "aq__ = DP x3p__" and "x3p__ = prim.If x21m__ x22m__" and "bq__ = x21ai__ # x22ai__" and "x21ai__ = DI x1p__" and "x22ai__ = x21aab__ # x22aab__" and "x22aab__ = x21aaaa__ # x22aaaa__" and "x22aaaa__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x1 :: "int" and x21aa :: "d" and x22aa :: "d list" and x21aaa :: "d" and x22aaa :: "d list" and x21aaaa :: "d" and x22aaaa :: "d list" where "y = (ar__, br__, cr__, dr__)" and "ar__ = DP x3q__" and "x3q__ = prim.If x21n__ x22n__" and "br__ = x21aj__ # x22aj__" and "x21aj__ = DI x1q__" and "x22aj__ = x21aa # x22aa" and "x22aa = x21aaa # x22aaa" and "x22aaa = x21aaaa # x22aaaa"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" where "y = (as__, bs__, cs__, ds__)" and "as__ = DP x3r__" and "x3r__ = prim.If x21o__ x22o__" and "bs__ = x21ak__ # x22ak__" and "x21ak__ = DC x2e__"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" and x3a :: "prim" where "y = (at__, bt__, ct__, dt__)" and "at__ = DP x3s__" and "x3s__ = prim.If x21p__ x22p__" and "bt__ = x21al__ # x22al__" and "x21al__ = DP x3a"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x3 :: "prim" and x21 :: "nat" and x22 :: "nat" and x21a :: "d" and x22a :: "d list" where "y = (au__, bu__, cu__, du__)" and "au__ = DP x3t__" and "x3t__ = prim.If x21q__ x22q__" and "bu__ = x21am__ # x22am__" and "x21am__ = Stop"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" where "y = (av__, bv__, cv__, dv__)" and "av__ = Stop" and "bv__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x21 :: "d" and x22 :: "d list" and x1 :: "int" where "y = (aw__, bw__, cw__, dw__)" and "aw__ = Stop" and "bw__ = x21r__ # x22r__" and "x21r__ = DI x1r__" and "x22r__ = []"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x21 :: "d" and x22 :: "d list" and x1 :: "int" and x21a :: "d" and x22a :: "d list" where "y = (ax__, bx__, cx__, dx__)" and "ax__ = Stop" and "bx__ = x21s__ # x22s__" and "x21s__ = DI x1" and "x22s__ = x21a # x22a"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x21 :: "d" and x22 :: "d list" and x2 :: "lambda \<times> (nat \<Rightarrow> contour option)" where "y = (ay__, by__, cy__, dy__)" and "ay__ = Stop" and "by__ = x21t__ # x22t__" and "x21t__ = DC x2"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x21 :: "d" and x22 :: "d list" and x3 :: "prim" where "y = (az__, bz__, cz__, dz__)" and "az__ = Stop" and "bz__ = x21u__ # x22u__" and "x21u__ = DP x3"   | a :: "d" and b :: "d list" and c :: "'a" and d :: "'b" and x21 :: "d" and x22 :: "d list" where "y = (a, b, c, d)" and "a = Stop" and "b = x21 # x22" and "x21 = Stop"