# Checks (D1)-(D3) for D6 (target 5) and (D1),(T1),(T2) for T7 (target 7). No arguments. D6=[[(0,1,1),(0,3,1),(1,4,-1),(2,0,1)],[(0,1,1),(1,2,1),(2,0,-1)],[(0,3,-1),(0,1,1),(1,4,1),(2,0,1)]] T7=[[(0,4,1),(1,1,-1),(2,0,1)],[(0,5,-1),(0,6,-1),(1,3,-1),(2,1,1)],[(0,5,-1),(0,4,1),(1,2,-1),(2,0,-1)]] def w(x,y,z): p=(x,y,z) if sorted(p)!=[0,1,2]: return 0 inv=sum(1 for i in range(3) for j in range(i+1,3) if p[i]>p[j]) return -1 if inv%2 else 1 def d1(D,kap): ok=True for x in range(3): for y in range(3): for z in range(3): s=sum(f*g*e for (a,u,f) in D[0] if a==x for (b,v,g) in D[1] if b==y for (c,t,e) in D[2] if c==z and u+v+t==kap) if s!=w(x,y,z): ok=False return ok print("D6 (D1):",d1(D6,5),flush=True) dev=max(abs(u+v+t-5) for (_,u,_) in D6[0] for (_,v,_) in D6[1] for (_,t,_) in D6[2]) print("D6 (D2) max deviation",dev,"<=5:",dev<=5,flush=True) print("D6 (D3) max height",max(u for row in D6 for (_,u,_) in row),flush=True) print("D6 height-0 options have x=2:",all(x==2 for row in D6 for (x,u,_) in row if u==0),flush=True) print("T7 (D1) with target 7:",d1(T7,7),flush=True) print("T7 (T1) row1+row3 never 7:",all(u+t!=7 for (_,u,_) in T7[0] for (_,t,_) in T7[2]),flush=True) print("T7 (T2):",all(x==2 for (x,u,_) in T7[0]+T7[2] if u==0) and all(u>0 for (_,u,_) in T7[1]),flush=True)