def checkerA12inE8(l,basis,orderList):
    print("Checking if conjugate to any of the complete ones:")
    print(checker(l,basis,orderList))

    #These are two two cases where we do not know lambda5: cases 28 and 29
    l28=[(4,), (4,), (0,), (0,)]
    l29=[(5,), (5,)]
    L28=[]
    L28=L28+concat([(0,)],wedge2(l28))
    L28=L28+[(2,0)]
    
    L29=[]
    L29=L29+concat([(0,)],wedge2(l29))
    L29=L29+[(2,0)]

    basisTemp=[[(0)]]
    basisTemp.append(l)
    print("Conjugate to case 28?")
    print(classifyIncomplete(L28,basisTemp,orderList2))
    if len(classifyIncomplete(L28,basisTemp,orderList2))>1:
        print("YES")
    print("Conjugate to case 29?")
    print(classifyIncomplete(L29,basisTemp,orderList2))
    if len(classifyIncomplete(L29,basisTemp,orderList2))>1:
        print("YES")
lambda5.append(expand("[(8,)^2/(4,)^2/(0,)^4]"))


for i in range(1,len(lambda1)):
    lambda2.append(wedge2(lambda1[i]))
    #print(dimChecker(lambda2[i]))


orderList2=order(2)
L=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
for i in range(1,len(lambda1)):
    L[i]=[]
    L[i]=L[i]+concat([(0,)],lambda2[i])
    L[i]=L[i]+[(2,0)]
    L[i]=L[i]+concat([(1,)],lambda5[i])
    x=checker(L[i],basisA12,orderList2)
 #   print("///////////////////////////////")
 #   print(i)
 #   print(x)
    basisA12.append(L[i])
    basisA12Lambda1.append(lambda1[i])
    checker(L[i],basisA12,orderList2)
 #   if dimChecker(L[i])!=133:
 #       print("////////////////////////////////////")
 #       print(latex(lambda1[i]))
 #       print(dimChecker(L[i]))
 #       print(latex(L[i]))

for i in range(1,1):
    p=""
    p=p+str(i)+"&"
###############################################################

a=[0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0]
orderList = order(7)
basisA17=[[0]]
#We make the basis from basis of A18
a[0]=diagA1(basisA18[1],1,2)
a[1]=removeA1(basisA18[1],1)

basisA17.append(a[0])
basisA17.append(a[1])


a[0]=expand("[(2,0,0,0,0,0,0)/(0,2,0,0,0,0,0)^2/(0,0,2,0,0,0,0)/(0,0,0,2,0,0,0)/(0,0,0,0,2,0,0)/(0,0,0,0,0,2,0)/(0,0,0,0,0,0,2)/(1,2,1,0,0,0,0)/(1,0,1,0,0,0,0)/(1,1,0,1,1,0,0)/(1,1,0,0,0,1,1)/(1,1,0,1,0,0,1)/$(1,1,0,0,1,1,0)/(1,0,1,1,0,1,0)/(1,0,1,0,1,0,1)/(0,1,1,1,1,0,0)/(0,1,1,0,0,1,1)/(0,0,0,1,1,1,1)/(0,2,0,1,0,0,1)/(0,0,0,1,0,0,1)/(0,2,0,0,1,1,0)/(0,0,0,0,1,1,0)/(0,1,1,1,0,1,0)/(0,1,1,0,1,0,1)]")
print("First one in notes corresponds to 1rst one from A18?")
print(checker(a[0], basisA17,orderList ))


a[1]=expand("[(2,0,0,0,0,0,0,0)/(0,2,0,0,0,0,0,0)/(0,0,2,0,0,0,0,0)/(0,0,0,2,0,0,0,0)/(0,0,0,0,2,0,0,0)/(0,0,0,0,0,2,0,0)/(0,0,0,0,0,0,2,0)/(0,0,0,0,0,0,0,2)/(1,1,1,1,0,0,0,0)/(1,1,0,0,1,1,0,0)/(1,1,0,0,0,0,1,1)/(1,0,1,0,1,0,0,1)/(1,0,1,0,0,1,1,0)/(1,0,0,1,1,0,1,0)/(1,0,0,1,0,1,0,1)/(0,0,1,1,1,1,0,0)/(0,0,1,1,0,0,1,1)/(0,0,0,0,1,1,1,1)/(0,1,1,0,1,0,0,1)/(0,1,1,0,0,1,1,0)/(0,1,0,1,1,0,1,0)/(0,1,0,1,0,1,0,1)]")
print(" second that was wrong in notes corresponds to 1rst one from A18?")
print(checker(a[0], basisA17,orderList ))

a[2]=expand("[ (2,0,0,0,0,0,0)/(0,2,0,0,0,0,0)/(0,0,2,0,0,0,0)/(0,0,0,2,0,0,0)/(0,0,0,0,2,0,0)/(0,0,0,0,0,2,0)/(0,0,0,0,0,0,2)/(1,1,1,0,0,0,0)^2/(1,0,0,1,1,0,0)^2/(1,0,0,0,0,1,1)^2/(1,1,0,1,0,0,1)/(1,1,0,0,1,1,0)/(1,0,1,1,0,1,0)/(1,0,1,0,1,0,1)/(0,1,1,1,1,0,0)/(0,1,1,0,0,1,1)/(0,0,0,1,1,1,1)/(0,1,0,1,0,0,1)^2/(0,1,0,0,1,1,0)^2/(1,0,1,1,0,1,0)/(1,0,1,0,1,0,1)/(0,0,0,0,0,0,0)^3]")
print(" second fixed in notes corresponds to 1rst one from A18?")
print(checker(a[0], basisA17,orderList ))

a[3]=expand("[ (2,0,0,0,0,0,0)/(0,2,0,0,0,0,0)/(0,0,2,0,0,0,0)/(0,0,0,2,0,0,0)/(0,0,0,0,2,0,0)/(0,0,0,0,0,2,0)/(0,0,0,0,0,0,2)/(1,1,1,0,0,0,0)^2/(1,0,0,1,1,0,0)^2/(1,0,0,0,0,1,1)^2/(1,1,0,1,0,0,1)/(1,1,0,0,1,1,0)/(1,0,1,1,0,1,0)/(1,0,1,0,1,0,1)/(0,1,1,1,1,0,0)/(0,1,1,0,0,1,1)/(0,0,0,1,1,1,1)/(0,1,0,1,0,0,1)^2/(0,1,0,0,1,1,0)^2/(0,0,1,1,0,1,0)^2/(0,0,1,0,1,0,1)^2/(0,0,0,0,0,0,0)^3]")
print("second tefixed in notes corresponds to 1rst one from A18?")
print(checker(a[0], basisA17,orderList ))

    return []

  sols = []
  for i in range(len(vs)):
    sols += assemble(sol + [vs[i]])

  return sols

solutions = assemble([])

print(list(solutions))

for sol in solutions:
  print(sol)
print("Length of solution:")
print(len(solutions))

orderList2=order(2)
basis =[[0]]
for sol in solutions:
    res=[]
    for x in sol:
        for y in x:
            res.append(y)
    if checker(res,basis,orderList5)==-1:
        basis.append(res)
print("length of the basis:")
print(len(basis))
for b in basis:
  print(b)


orderList3=order(3)
basisA13=[[0]]
basisA13Lambda1=[[0]]

for i in range(1,38):
    print("case i")
    LE8[i]=[]
    LE8[i]=concat([(1,1)],lambda1[i])
    LE8[i]=LE8[i]+concat([(1,0)],lambda4[i])
    LE8[i]=LE8[i]+[(2,0,0),(0,2,0)]
    LE8[i]=LE8[i]+concat([(0,0)],lambda2[i])
    LE8[i]=LE8[i]+concat([(0,1)],lambda5[i])
    if dimChecker(LE8[i])!=248:
        print("LE8 does not have dim 248 at i=")
        print(i)
        
    temp=checker(LE8[i],basisA13,orderList3)
    print(temp)
    if temp==-1:
        print("New element, added to basis")
        basisA13.append(LE8[i])
        basisA13Lambda1.append(lambda1[i])
    else:
        print("conjugate")



    temp=temp+concat([(0,0)],l2[i])
    L[i] = temp+concat([(0,1)],l5[i])
    #print("i= "+str(i))
    #print(checker(L[i],basis2,orderList6))
    basis2.append(L[i])

#print("MOVING ON TO CASE b")

for i in range(1,15):
    temp=concat([(1,1)],l1[i])
    temp = temp+concat([(1,0)],l5b[i])
    temp = temp+[(2,0,0,0,0,0),(0,2,0,0,0,0)]
    temp=temp+concat([(0,0)],l2[i])
    L[i] = temp+concat([(0,1)],l5b[i])
    #print("i= "+str(i))
    t=checker(L[i],basis2,orderList6)
    #print(t)
    if t==-1:
        basis2.append(L[i])
#print(len(basis2))

basisTest=[[0]]
print("trying to make them equal")
for i in range(1,15):
    temp=concat([(1,1)],l1[i])
    temp = temp+concat([(1,0)],l5[i])
    temp = temp+[(2,0,0,0,0,0),(0,2,0,0,0,0)]
    temp=temp+concat([(0,0)],l2[i])
    L[i] = temp+concat([(0,1)],l5b[i])
    print("i= "+str(i))
    t=checker(L[i],basisTest,orderList6)