top | item 20798271

(no title)

myaccount80 | 6 years ago

It is not reversible because you’re ereasing information. If you want to have a reversible addition you are not allowed to destroy the information.

The same happens if you apply the standard AND operator to two bits because the output is only one bit, therefore it is impossible to figure out the two input bits. To have a reversible AND operator you can define it like this: f(x1, x2, b) = (x1, x2, b XOR (x1 AND x2)). E.g: f(1,1,0) = (1,1,1). From this output you can get back to the input. This way you can implement a NOT gate as well, and all others gates. At the end you can implement addition using bits and your summation becomes reversible :) You can see that with this definition we are not ereasing any information, hence it becomes reversible.

discuss

order

codernyc16|6 years ago

You’d have to do that for all results, not just one. This is basically what an event sourced system does: you store all the events and fold your state, so you can “play back” to any point in time. You could theoretically reverse from the end, but I haven’t seen it done.

setr|6 years ago

Urbit ;-)

Zenst|6 years ago

A transactional database would tick that box, events are stored and can rollback to a point in time.