Bitcoin's scripting language is intentionally primitive—it can basically do addition and multiplication.
Building a ZK proof verifier in this environment is like writing assembly code to solve advanced cryptography.
The 1GB verifier compressed to 4MB chunks through 'tricks' shows what's possible within Bitcoin's constraints.