In web3, we have a number of fuzzing tools like foundry's fuzz & invariant tests and Trail of Bits Echidna.
But what are the purposes of symbolic execution tools like manticore and maat?
Fuzz testing still seems to execute code, so I'm not sure I understand the categorical difference between fuzzing and symbolic execution.