:- dynamic see/3, on/2. % see(Block, X, Y) see(a, 2, 4). see(d, 4, 4). see(e, 4, 2). see(f, 4, 1). see(g, 2, 4). see(h, 2, 4). see(i, 2, 4). see(j, 2, 4). % on(Block, Block_or_Table) on(a, b). on(b, c). on(c, table). on(d, table). on(e, i). on(f, table). on(g, h). on(h, table). on(i, table). on(j, table). % Color(Block) red(a). red(b). red(c). red(d). red(e). blue(f). blue(g). blue(h). blue(i). blue(j).