If I compute the Bach Tensor using the definition via the cotton tensor I get a different result to that using an alternative definition.
M = Manifold(4, 'M')
MChart = M.open_subset('MChart')
Chart.<u,v,x,y> = MChart.chart(r'u:(-oo,+oo) v:(-oo,+oo) x:(-oo,+oo) y:(-oo,+oo)')
gT= MChart.riemannian_metric('gT')
var('du','dv','dx','dy')
dsds= -du*dv+dx*dx+dy*dy+e^(x*y)*du*du
dsds=dsds.expand()
g00=dsds.coefficient(du,2)
g11=dsds.coefficient(dv,2)
g22=dsds.coefficient(dx,2)
g33=dsds.coefficient(dy,2)
g01=dsds.coefficient(du*dv,1)
g01=g01/2
g10=g01
gT[0,0] = g00.factor() #du du
gT[1,1] = g11.factor() #dv dv
gT[2,2] = g22.factor() #dx dx
gT[3,3] = g33.factor() #dy dy
gT[0,1] = g01.factor() #du dv
%display latex
show(gT.display())
Metric=gT
Nabla = Metric.connection()
Bach=(Nabla(Metric.cotton()).up(Metric,3)['^u_aub'])+((Metric.schouten().up(Metric))*(Metric.weyl().down(Metric)))['^uv_aubv']
Bach.display()
Bach=Nabla(Nabla(Metric.weyl().down(Metric))).up(Metric,4).up(Metric,5)['^bd_abcd']-(1/2)*((Metric.ricci().up(Metric))*(Metric.weyl().down(Metric)))['^bd_abcd']