!7 p { new Matches m; S base = "heise.de 2018/04/20 (raw)"; for (S list : mechListsPlusNumber(barCombine(base, "Similar lines"))) { L l = mechList(list); for (S s : mechList(barCombine(list, "Theories"))) { print_noNewLine("Theory " + s + ": "); if "all lines start with *" print(allStartWithIC(l, $1) ? "VERIFIED" : "failed"); else if "all lines end with *" print(allEndWithIC(l, $1) ? "VERIFIED" : "failed"); else if "All lines contain the characters * (possibly not in order)" print(allContainAllCharsIC(l, $1) ? "VERIFIED" : "failed"); else if "All lines contain the characters * exactly once (possibly not in order)" print(isSuperSet(charactersAppearingExactlyOnceInEachString(allToUpper(l)), charsAsList($1)) ? "VERIFIED" : "failed"); else print("Uninterpretable theory"); } } }