can we construct a UTXO which is spendable only via proof of work?

Do the current bitcoin opcodes and transaction size limits allow constructing a UTXO which is only spendable if a specified amount of work has been performed?

So the spender, would provide a nonce as input to the script. Then the script would essentially perform a highly simplified version of how bitcoin's block headers are verified (the nonce is combined with some other data, hashed, and the hash is compared with a "target.").

Without OP_CAT and with arithmetic limited to 4 byte inputs, do I understand correctly that the above would be impossible? Or is there some workaround?

Is this the type of thing that taproot makes possible when/if it goes live, or no?