How to reuse a "write - once " memory (Preliminary Version)

Storage media such as digital optical disks, PROMS, or paper tape consist of a number of -&-ldquo;write-once-&-rdquo; bit positions (<italic>wits</italic>); each wit initially contains a -&-ldquo;0-&-rdquo; that may later be <italic>irreversibly</italic> overwritten with a -&-ldquo;I-&-rdquo;. We demonstrate that such -&-ldquo;write-once memories-&-rdquo; (<italic>woms</italic>) can be -&-ldquo;rewritten-&-rdquo; to a surprising degree. For example, only 3 wits suffice to represent any 2-bit value in a way that can later be updated to represent any other 2-bit value. For large <italic>k,</italic> 1.29... <italic>k</italic> wits suffice to represent a <italic>k</italic>-bit value in a way that can be similarly updated. Most surprising, allowing <italic>t</italic> writes of a <italic>k</italic>-bit value requires only <italic>t</italic> + <italic>o</italic>(<italic>t</italic>) wits, for any fixed <italic>k</italic>. For fixed <italic>t,</italic> approximately <italic>k.t</italic>/log(<italic>t</italic>) wits are required as <italic>k</italic> -&-rarr; @@@@. An <italic>n</italic>-wit WOM is shown to have a -&-ldquo;capacity-&-rdquo; (i.e. <italic>k.t</italic> when writing a <italic>k</italic>-bit value <italic>t</italic> times) of up to <italic>n</italic>.log(<italic>n</italic>) bits.