Friday 4 August 2017

Optellen

§1.2 Optellen

Nemen we de units 1 van de getallen a en b samen, dan tellen deze direkt tot een getal ab op. In ons systeem zullen we variabelen zonder teken ertussen optellen, niet vermenigvuldigen.
We gebruiken juist een plus teken + om optellen a+b uit te stellen.

Negatieve getallen zijn series minnen -.. en de unit min - zal door 1 bij te tellen 1-=0 verdwijnen, zodat n- een getal aftelt.
Een som mn van gehele getallen is gewoon een serie units zonder scheiding, en direkt reduceerbaar. Sommen van gelijke waarde zijn overal uitwisselbaar.
In unit notatie zullen we enen 1 en minnen - binnen gehele getallen meteen reduceren tot een minimale lengte: hetzij tot een positief aantal enen, hetzij negatief met alleen minnen.

Optellen van positieve gehele getallen is commutatief.

  • 1n ≡ n1 =>
  • mn = 1..n :m = 1..n1 :m- == n1.. :m = nm

Bij eindige getallen blijft het gelijk of een tel er rechts of links bij komt (of af gaat). Zo geeft verwisseling van m+n dezelfde som.
De == herhaalt de evaluatie volgens eerdere regel(s).

# Systematiek 1.2

Een systeem of algoritme is een lijst van regels voor het evalueren van tekst. We scannen of doorzoeken een expressie l-r van links naar rechts tot we een overeenkomst vinden, een match voor een regel. Vervolgens herschrijven we met die regel de gevonden match.

Herschrijfregel P`=Q stelt dat we in alle onderhavige expressies het woord P door Q kunnen vervangen, indien P de eerste l-r match is, die we vanuit dit systeem van regels kunnen maken in de tekst.
Andersom (als Q eerst matcht, P ervoor in de plaats zetten) mag ook, maar dat gaat tegen het verloop van de evaluatie in.
Het cursief accent ` staat symbool voor de scanner cursor.

P`=Q <=> Q`=P
P`=Q <=> PZ`=QZ
P`=Q  => P=Q

Voor een regel P=Q met het is gelijk teken = vormt de hele expressie een match. Herschrijven met `= houdt meer in dan geheel gelijk zijn. De axioma's hierboven impliceren => dit.

Een functie kan een subexpressie nesten (substitueren, plaatsen) binnen de expressie. Recursieve functies nesten een mindere versie van zichzelf herhaaldelijk intern, in plaats van een variabele. Vanaf de binnenste waarde reduceert men de subexpressies daarna (tussen haakjes) tot getal. De variabele wordt zodoende erg groot.

Onze regels werken zonder subexpressies, dus zonder de klassieke recursie. Maar door herhaling van structuren groeien onze getallen minstens even snel als die van andere grote array functies.
Bij het uitwerken van series evaluaties en in vergelijking met andere systemen keren subexpressies (en haakjes) wel terug.

Cijfers zijn onze symbolen voor unaire constanten. Zodat bijvoorbeeld 12=3 de units 1 daarin simpel 1+2 optelt.

2 ≡ 11    9 ≡ 111111111
3 ≡ 111    8 ≡ 11111111
4 ≡ 1111    7 ≡ 1111111
5 ≡ 11111    6 ≡ 111111

Onze regels zijn effectief maar zuinig, niet met aantallen tekens maar met gebruikte types. Waarom meerdere cijfers gebruiken, als dit bij echt grote getallen (vanaf tetratie) niet uitmaakt?

Ook sparen we ronde haakjes () liever uit, door subexpressies niet direkt te nesten. Wel verplaatsen we sterk gegroeide getallen naar eerdere structuren. Ons grote getallensysteem komt langzaam op gang, maar de dominantere structuren halen dat later weer in.

Ronde haakjes omgeven getallen in andere systemen. Zoals in Funix(101010,11) = 42. waar de naam of prefix aangeeft welke functie dit is… Wat is Funix?

Gulliver meegevoerd door de Lilliputters op een groot bed

No comments:

Post a Comment