If we take the block validation algorithm described in the white paper (Section Blockchain and Mining), it states at point 6:
TXbe the block's transaction list, with
ntransactions. For all
S[i+1] = APPLY(S[i],TX[i]). If any applications returns an error, or if the total gas consumed in the block up until this point exceeds the GASLIMIT, return an error.
Is the bold claim true? I mean if the bold part would be true, would it imply that valid blocks cannot contain transactions with errors? Or is it simply a generic validation algorithm that does not correspond to the real one?
(I know for sure that there are valid blocks with failed transactions, e.g. out of gas exception, callstack overflow, etc., e.g. https://etherscan.io/tx/0x3967f859c56c61f3365f6873ea001985e4e694952a9c22b68be731132c8e3e77)