We wrote a fraud proof system in bitcoin script using only the boolean logic gates, hashlocks, and timelocked. Then we wrote a function that does two things: first, it processes any boolean circuit (i.e. anything that a microchip can process), and second, it converts it so that our fraud proof system can falsify it if it runs incorrectly. Then we wrote a third function: it finds each logic gate in our falsifiable circuit and separates the whole thinf into individual tapleaves in a massive taproot tree, where the connections between circuits are preserved through hashlocks. Finally we made it so that each circuit *also* has a javascript equivalent.
With all of this in place, the prover can run the program in it's javascript circuit form, take the outputs, and send them to the verifier, along with the data he passed into the program. The verifier can then rerun the program, and if any logic gate gives an output different from the one the prover committee to, the verifier can demonstrate the error in the corresponding tapleaf, and take the prover's money.