De binaire vertaling van het haakformalisme in een vooraf gekozen universum is nogal vanzelfsprekend. Toch krijgen we hiermee nieuwe rekenkracht aangeboden.

We starten met een reeds besproken voorbeeld van de tabel van mogelijke combinaties van <> en <<>>:


1

2

3

4

b

<>

<>

<<>>

<<>>

a

<>

<<>>

<>

<<>>

<<a><b>>

<>

<<>>

<<>>

<<>>

We merken dat de drie welgevormde haakuitdrukkingen ook gecodeerd zijn als een unieke combinatie van 4 binaire posities. De ordening voor de posities van a en b zal de ordening bepalen van <<a><b>>.

Net zoals in een getal eenheden, tientallen, honderdtallen bij conventie een welbepaalde ordening krijgen (van rechts naar links), kunnen we ook hier op analoge wijze de binaire posities horizontaal ordenen, waarbij we voor de eerste positie zoals bij de getallen voor de meest rechtse kiezen.

Kiezen we voor <<>> de binaire 1 en voor <> de binaire 0 (waarbij we er expliciet op wijzen dat dit geen getallen zijn maar conventionele binaire symbolen) dan wordt <<a><b>> dus binair gecodeerd als 1110.

We bouwen dus het isomorfisme van een welgevormde haakuitdrukking met een binaire code op door het inzicht te benutten dat het haakformalisme eigenlijk een formalisering is van patronen die kunnen herkend worden los van de interpretatie van de symbolen. De opbouw kan als volgt beschreven worden: neem één bit, dat is dus 1 versus 0. Men kan nu kiezen om de hoog-bit 1 af te beelden op <<>> en de laag-bit 0 af te beelden op <>, of omgekeerd. We moeten wel kiezen maar de concrete keuze is onbelangrijk zolang we maar consequent blijven (dat is de betekenis van een patroon). Laten we de 1 afbeelden op <<>>. Neem nu twee bits en je krijgt vier mogelijkheden 11, 10, 01 en 00. Een essentiële eis is nu dat het patroon hetzelfde moet blijven, hoe groot je universum ook zou zijn. Dus als je 1 afbeeldt op <<>> in een één-bit universum dan moet je 11 afbeelden op <<>> in een twee-bit universum. Dus 11 beeld je af op <<>>, 00 op <>, en 10 kan op a afgebeeld worden en 01 op <a>. Hier heb je natuurlijk ook weer een keuze, maar het patroondenken dwingt je om te kiezen en consequent te blijven. Met vier bits moet het patroon van <> hetzelfde blijven, je beeldt dit dus af op 0000, moet het patroon van a dus ook hetzelfde blijven en dus wordt a afgebeeld op 1010, en je moet een nieuw patroon introduceren voor b, en dat wordt dan 1100 en <b> wordt 0011. Je kan hierin het patroon van a versus <a> herkennen maar dan met een verdubbeling van individuele bits naast elkaar. Met acht bits moet het patroon van <<>> ook hetzelfde blijven, dus dit beelden we af op 11111111, moet ook het patroon van a hetzelfde blijven en dus wordt a 10101010, wordt b 11001100 en je moet een nieuw patroon introduceren voor c, en dat wordt dan 11110000. Dit gaat door zolang je bijkomende onderscheidingen nodig hebt voor de modellering die je voor ogen hebt en met een beperkt aantal onderscheidingen bereik je al een gigantisch aantal patronen. Het denken in patronen maakt het mogelijk dat hetzelfde (bijvoorbeeld a) in een universum van gelijk welke grootte kan voorgesteld worden (het patroon moet enkel herhaald worden). De variabele is dus het aantal onderscheidingen, en zoals <<a><b>> een welgevormde haakuitdrukking is in een universum met meer onderscheidingen, zo is ook 11101110 welgevormd in drie onderscheidingen, 1110111011101110 in vier onderscheidingen enz…. Wat hier nu duidelijk wordt is dat de binaire string expliciet in een bepaald universum “werkt”, terwijl het nodige universum voor de welgevormde haakuitdrukking <<a><b>> volledig impliciet kan blijven (<<a><b>> is bijvoorbeeld niet verschillend van <<a><b>><<>> en dus niet verschillend van <<a><b><c<c>> of <<a><b><c<b><<a>c>> enz...).

De tabel voor alle welgevormde haakuitdrukkingen met twee symbolen kunnen we dan vervolledigen met hun conventioneel binaire codering:

<>

0000

<>

<>

<>

<>

ab

1000

<>

<>

<>

<<>>

<a>b

0100

<>

<>

<<>>

<>

b

1100

<>

<>

<<>>

<<>>

a<b>

0010

<>

<<>>

<>

<>

a

1010

<>

<<>>

<>

<<>>

<<a<b>><<a>b>>

0110

<>

<<>>

<<>>

<>

<<a><b>>

1110

<>

<<>>

<<>>

<<>>

<a><b>

0001

<<>>

<>

<>

<>

<a<b>><<a>b>

1001

<<>>

<>

<>

<<>>

<a>

0101

<<>>

<>

<<>>

<>

<a<b>>

1101

<<>>

<>

<<>>

<<>>

<b>

0011

<<>>

<<>>

<>

<>

<<a>b>

1011

<<>>

<<>>

<>

<<>>

<ab>

0111

<<>>

<<>>

<<>>

<>

<<>>

1111

<<>>

<<>>

<<>>

<<>>

Deze vertaling maakt het isomorfisme duidelijk tussen het haakformalisme en de binaire voorstelling.

We willen er nogmaals expliciet op wijzen dat de bits die hoog-laag coderen ook door andere symbolen dan door 1 en 0 voorgesteld kunnen worden, of kunnen gerealiseerd worden door bijvoorbeeld een willekeurig elektrische potentiaalverschil enz.... Er is dus absoluut geen verschil met de volgende vertalingen:

<>

♠♠♠♠

ab

♣♠♠♠

<a>b

♠♣♠♠

b

♣♣♠♠

a<b>

♠♠♣♠

a

♣♠♣♠

<<a<b>><<a>b>>

♠♣♣♠

<<a><b>>

♣♣♣♠

<a><b>

♠♠♠♣

<a<b>><<a>b>

♣♠♠♣

<a>

♠♣♠♣

<a<b>>

♣♣♠♣

<b>

♠♠♣♣

<<a>b>

♣♠♣♣

<ab>

♠♣♣♣

<<>>

♣♣♣♣

Of nog:

<>

(----)

-

-

-

-

ab

(+---)

-

-

-

+

<a>b

(-+--)

-

-

+

-

b

(++--)

-

-

+

+

a<b>

(--+-)

-

+

-

-

a

(+-+-)

-

+

-

+

<<a<b>><<a>b>>

(-++-)

-

+

+

-

<<a><b>>

(+++-)

-

+

+

+

<a><b>

(---+)

+

-

-

-

<a<b>><<a>b>

(+--+)

+

-

-

+

<a>

(-+-+)

+

-

+

-

<a<b>>

(++-+)

+

-

+

+

<b>

(--++)

+

+

-

-

<<a>b>

(+-++)

+

+

-

+

<ab>

(-+++)

+

+

+

-

<<>>

(++++)

+

+

+

+

Dit is een heel belangrijk onderscheid dat volledig moet bevat worden om het haakformalisme te kunnen begrijpen. Getallen worden in het haakformalisme geïntroduceerd door een extra voorwaarde aan te nemen en we zullen een nieuwe getaltheorie moeten uitwerken. We zullen dan aantonen dat de getalnul eerder een “don't care” modelleert. Beide binaire coderingen 1 en 0 zijn “do cares”.

Merk op dat de niveaus in een tralie nu gegeven worden door het aantal 1 of het aantal 0. Het niveau is dus een abstractie met het karakter van een patroon.