abstract sclass AbstractThoughtSpace { AbstractThoughtSpace parent; // takes unshortened query abstract L get(S query); // existence of triple has already been checked abstract S postTriple(T3 t); abstract int size(); public bool hasTriple(S a, S b, S c) { L webs = ai_withoutInvalidWebs(nodesToWebs(shortestList3( get(a), get(b), get(c)))); ret webs_search_noVar_bool(webFromTriples(a, b, c), webs); } }