1. A system comprising: a single instruction, multiple data (SIMD) machine configured to: execute a plurality of threads in parallel, the plurality of threads divided among a plurality of blocks; and perform satisfiability checking of a formula including a plurality of predicates, the satisfiability checking comprising: assigning the plurality of predicates to the plurality of threads of the plurality of blocks such that one predicate is assigned to each thread of the plurality of threads; synchronizing the plurality of threads to execute the same instruction on the plurality of predicates at each stage of a parallelized algorithm; and performing the parallelized algorithm, including: at a processing stage, processing the assigned plurality of predicates in the plurality of blocks such that results are calculated based on a proposition; after each processing of the assigned plurality of predicates, at a synchronizing stage, synchronizing the results among the plurality of threads; and after each synchronization of the results, at a proposing stage, each of the plurality of threads proposing a next action, wherein the processing of the assigned plurality of predicates, the synchronizing of the results, and the proposing of the next actions are collectively repeated a plurality of times.