because of how we apply boundary conditions.

We have:

````
# action of a on a vector u
a(u) = a(u_bc) + a(u_0)
# u_bc known (it's the zero vector with bcs applied), u_0 unknown
       = M u_0 + a(u_bc)

# system
a == L
M u_0 = L - a(u_bc)

So we have to apply boundary conditions to u_bc and compute the action, then assemble
L - a(u_bc)

finally, we need to make sure the bcs are in place for the solve so we need to apply them to L - a(u_bc)
````

I believe this is coming in David's lecture series.