Il mondo del clubbing oggi è l’assenza dei set live, del floor, del contatto, delle serate nei club . A Roma, una delle capitali europee della musica elettronica, questa è una mancanza che pesa, si sente, anche sulle produzioni. Oltre che per le inevitabili ripercussioni economiche sul settore del clubbing e sul comparto dell’Intrattenimento, le produzioni musicali al tempo del covid sono differenti perché l’ispirazione arriva da prospettiva inedita. Cosi anche per Sirocco e Zefiro, i venti del clubbing sulla pandemia. Sirocco. Lo scirocco magrebino, l’Euro greco e romano, il vento caldo che scorre dall’aurora. Zefiro. Il vento moderato, a volte freddo e mutevole eppure saldo nella sua promessa, il vento che anticipa la primavera, l’araldo del cambiamento.

22 Febbraio 2021

JAK

Mercato della Rete, Scenari

Introduzione alle stringhe logiche
Ogni insieme di numeri ascrivibile a regole aritmetiche è definito da un valore posizionale che muta a seconda dell’ordine con cui vengono espressi i decimali che lo rappresentano. Lo stesso discorso vale per il linguaggio moderno, ad esclusione di alcune rare eccezioni, dove ogni carattere costituente una parola ha valore in base alla posizione che occupa. Qualsiasi siano ampiezza e rilevanza di un insieme di informazioni, ciò che ne definisce il significato di termine, la logica interpretativa, è quell'associazione simbolica assegnatagli in base a coordinate interpretative stabilite nell'ambito dei sistemi formali scelti per contestualizzarlo.

Qualsiasi informazione composta da una sequenza di caratteri di lunghezza arbitraria, con o senza senso logico, è qui definita stringa se il suo contenuto può essere riprodotto tipograficamente. Una stringa è descritta dall’insieme dei caratteri costituenti il proprio alfabeto di riferimento ed è isomorfa rispetto al numerale che ne esprime il corrispettivo valore posizionale calcolato in base all’ordine in cui sono disposti i caratteri che la compongono. Il contesto assegna alla parola un significato (o un non significato) di termine, una forma, che altrimenti non avrebbe: descriviamo questo tipo di contestualizzazione come sistema formale e definiamo stringa logica una qualsiasi stringa che abbia senso compiuto all’interno del proprio sistema formale.

Questo articolo è parte integrante del progetto di divulgazione informativa JEET ALL KEYS : PRIMALITY ALGORITHM e rappresenta il primo di una serie di contributi editoriali a cadenza periodica (mensile) che – tutti insieme – definiscono la documentazione ufficiale  AMN  dell’hash proprietaria _JAK (o JAK) nella sua versione JAK HPA. Il contenuto di ogni articolo della serie JAK è sviluppato come modulo informativo indipendente, perché riteniamo che la loro utilità non debba essere circoscritta ad una sola ispirazione progettuale.

La parola CXXIII è una stringa differente dalla parola CXIIIX perché la rappresentazione tipografica delle due parole è diversa a causa della posizione occupata da una delle X, e per la semantica attribuitale dal contesto in cui la utilizziamo. I caratteri costituenti una parola sono simboli che inizialmente non rivestono alcun significato ma che lo assumono nel momento in cui li utilizziamo per dare forma ad una descrizione (che sia concreta, sensoriale o ancora simbolica). La parola CXXXIII se interpretata come l’unione di simboli romani descrive un numero che trova contesto nel latino, il suo linguaggio naturale. Una volta imparato il significato della parola in un dato linguaggio, questo significato diventa simbolo utile per la creazione di nuove proposizioni a loro volta simboli per nuove descrizioni formali coerenti alle regole del linguaggio utilizzato.

Uno dei significati simbolici più noti e comuni è quello che associamo alla parola numero. Lasciando fuori contesto disquisizioni, seppure importanti, relative alla predisposizione innata della mente al conteggio numerico – qualità che non è prerogativa esclusiva degli esseri umani – il concetto stesso di numero è entrato nella Storia dell’Uomo nel momento in cui l’essere umano ha iniziato a valutare determinate informazioni relative al proprio contesto, perché d’interesse pratico per la propria quotidianità, tramandandone l’esperienza e creando in tal modo condizioni d’imprinting generazionale.

Non sarebbe così azzardato supporre che l’uomo cominciò a contare quando abbandonò lo stato di cacciatore-raccoglitore per iniziare il suo lungo cammino di agricoltore-allevatore. In quel momento, numerosi beni, come i chicchi di grano, i capi di bestiame o i recipienti, smisero di avere un uso immediato e diventarono prodotti: questo passaggio comportò la nascita di determinate operazioni di computo. – Enrique Gracián

Consideriamo due stringhe create utilizzando l’alfabeto decimale 0123456789: la stringa 123 ha un significato differente da quello della stringa 0102. La differenza sta nella posizione occupata dai caratteri numerici: la posizione del carattere 2 della prima stringa vale 10 volte in più la posizione che occupa nella seconda stringa. Le due stringhe esaminate hanno un differente valore posizionale. Quante stringhe composte da un solo carattere decimale si possono creare utilizzando tutti i caratteri dell’alfabeto? 10. Allo stesso modo, quante stringhe di due caratteri decimali si possono creare? 100, posizionando per convenzione il secondo carattere a sinistra del precedente e così via. La posizione del carattere 2 della prima stringa vale 10 volte più di quella assunta nella seconda stringa perché rappresenta 10 elevato a potenza. Il carattere 1 della prima stringa vale 100 volte in più (10 elevato al quadrato) di quello che avrebbe se posizionato come primo carattere a destra.

  • Il valore posizionale della stringa decimale 123: 1 x 100 + 2 x 10 + 3 = 123
  • Il valore posizionale della stringa 0102: 0 x 1000 + 1 x 100 + 0 x 10 + 2 = 102

Lo stesso metodo applicato alla lettura di una stringa decimale vale per qualsiasi altro insieme di stringhe. Calcoliamo il valore posizionale della stringa A01, generata utilizzando un alfabeto composto dai caratteri alfanumerici [0-9a-zA-Z] – vale a dire dall’alfabeto decimale 0123456789 e dai due alfabeti letterali abcdefghijklmnopqrstuvwxyz e ABCDEFGHIJKLMNOPQRSTUVWXYZ – ad ognuno dei quali abbiamo assegnato un valore numerico da 0 a 61 con 0 uguale a 0 e Z uguale a 61:

  • Il valore di A: 11 x 622 = 42284
  • Il valore di 0: 0 x 621 = 0
  • Il valore di 1: 1 x 620 = 1
  • A01 = 42284 + 0 + 1 = 42285

La stringa A01 ha un valore posizionale calcolato sulla base dei 62 caratteri d’alfabeto ordinati in modo specifico: A01base62 ha un valore posizionale uguale a 42285 solo in relazione ai valori numerici assegnati ai caratteri dell’alfabeto.

Si parla di isomorfismo quando due strutture complesse si possono applicare l’una sull’altra, cioè far corrispondere l’una all’altra, in modo tale che per ogni parte di una delle strutture ci sia una parte corrispondente nell’altra struttura; in questo contesto diciamo che due parti sono corrispondenti se hanno un ruolo simile nelle rispettive strutture. – Gödel, Escher, Bach: un’eterna ghirlanda brillante

Isomorfismo – corrispondenza biunivoca tra due strutture che preservano le proprietà degli elementi costituenti

Esiste sempre un isomorfismo tra un carattere e il suo valore posizionale: la stringa CXXIIIbase52 (insieme [a-zA-Z]) ha un valore posizionale differente rispetto a quello che avrebbe se trattata in base62; la stringa 42285base10 corrisponderà sempre alla stringa A01base62 solo nel caso in cui siano mantenute le relazioni iniziali tra caratteri e valori numerici. A01base62 vale 42285 in relazione ad un determinato sistema formale.

Un sistema formale definisce i margini d’azione, le formalizzazioni, entro cui sia possibile dimostrare o non dimostrare rigorosamente un insieme di assiomi. Un sistema formale è coerente con sé stesso quando una formalizzazione non produce due teoremi contrapposti. In questo contesto consideriamo con il termine assioma una regola formale che ci permetta di interpretare il valore di una stringa, e con teorema il risultato dell’interpretazione. Ogni sistema formale è caratterizzato da:

  • un alfabeto (base d’insieme o base formale),
  • una grammatica (regole di rappresentazione tipografica) che stabilisca quando una parola (stringa) sia ben formata,
  • un insieme delle parole ben formate,
  • una o più regole di inferenza (isoformismi ciclici) che definiscono n insiemi di parole ben formate perché rispettano precise regole di grammatica inferenziale.

In generale, consideriamo sistema formale un qualsiasi sistema di numerazione o linguaggio o sistema di comunicazione che abbia le caratteristiche summenzionate: data una stringa di lunghezza arbitraria è sempre possibile risalire ad almeno un sistema formale di cui la stringa sia teorema. Parliamo di conversione di base nel momento in cui vogliamo tradurre una stringa nel linguaggio proprio di un altro sistema formale isomorfo all’originale. In questo contesto il significato di termine isomorfismo è utilizzato esclusivamente se sussiste una relazione univoca e unica tra stringa e valore posizionale: da due stringhe differenti deve essere impossibile derivare lo stesso teorema.

Un sistema formale riproducibile tipograficamente deve poter essere associato a simboli utili per catturarne il significato, normalizzandolo: la stringa 4 + 3 = 7 ha significato di quattro più tre uguale sette per il sistema aritmetico che ci permette di associare il simbolo + alla regola di addizione e il simbolo uguale alla regola di risultato, ma il suo significato cambia radicalmente se la stringa è interpretata essa stessa come simbolo definito dalla sua rappresentazione tipografica binaria; e cambierebbe ancora se ogni elemento della stringa fosse a sua volta trattato come simbolo, ad esempio associando:

  • al 4 il significato di io,
  • al + il significato di termine teorema traducibile con sono oppure è
  • al 3 il significato di un essere umano,
  • al 5 un animale,
  • al simbolo = il significato e il simbolo risultante è

4 + 3 = 7 allora equivale alla frase io sono un essere umano ed il mio simbolo è il 7. Questo non significa necessariamente che ogni riproduzione tipografica sia teorema di un sistema formale coerente. “Io sono un essere umano e il simbolo risultante è 7” non è una stringa di un sistema coerente in quanto lo stesso sistema può produrre la stringa “un animale è un essere umano e il simbolo risultante è 7”: la definizione di “7” produce teoremi in contrasto. Non è fuori luogo sottolineare che un sistema incoerente potrebbe essere associabile ad un sistema coerente, così come un sistema incoerente potrebbe essere sottoinsieme di un insieme coerente e viceversa come nel caso del sistema x2 + 1 = 0.

Se ogni sistema formale definito da insiemi di caratteri tipografici ascrivibili a regole aritmetiche è definito da un valore posizionale che muta a seconda dell’ordine con cui vengono espressi i decimali che lo rappresentano, allora lo stesso discorso vale per il linguaggio contemporaneo, ad esclusione di alcune rare eccezioni, dove ogni carattere costituente una parola ha valore in base alla posizione che occupa. La comunione di caratteristiche costituenti insiemi posizionali differenti garantisce la loro interpretazione – una portabilità – trasversale e commutativa:

  • tutte le stringhe appartenenti ad insiemi posizionali possono essere tradotte in un valore numerico,
  • possiamo far interagire un valore numerico con valori di altri insiemi a patto di preservarne le caratteristiche necessarie per garantirne la reversibilità,
  • ogni elemento costituente un insieme nativo può essere descritto da un valore numerico a patto di rendere portabile anche la sua interpretazione.

Il sistema formale di riferimento in ambito informatico è l’insieme base2 [0-1], il sistema binario, dove il carattere si chiama bit (dall’inglese binary digit) e vale 0 oppure 1, funzionale alle architetture dei computer per il suo legame duale con i circuiti elettrici e con i campi elettromagnetici nei quali gli stati sono due (acceso | spento). Qualsiasi stringa composta da una sequenza di 0 e 1 è definibile stringa binaria. Vedremo in seguito come questa definizione possa essere espansa, particolareggiata e dettagliata da molte altre informazioni a seconda dei contesti, non necessariamente informatici.

Il sistema binario permette di tradurre stringhe di qualsiasi base utilizzando combinazioni di 0 e 1 in modo equivalente a quello utilizzato per costruire una qualsiasi stringa con il sistema decimale. Cominciando a contare da zero abbiamo:

sistema binariosistema decimale
00
11

Finiti i caratteri disponibili dell’insieme base2 non dobbiamo fare altro che applicare le stesse regole di costruzione del sistema decimale mettendo un 1 in colonna e 0 nella colonna successiva…

sistema binariosistema decimale
102
113

… e cominciando una nuova colonna ogni volta che finiscono i caratteri utilizzabili:

sistema binariosistema decimale
1004
1015
1106
1117
10008
10019
101010
101111
110012
110113
111014
111115

Appare subito chiaro che la rappresentazione di un numero ragionevole richiede molti bit, per questo motivo le architetture informatiche furono ottimizzate su larga scala già alla fine degli anni ’80 dello scorso secolo, tra hardware e linguaggi di programmazione, per lavorare con stringhe di bits basate sui 16 valori conteggiati in precedenza: il sistema esadecimale.

sistema binariosistema decimalesistema esadecimale
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F

Ad ogni carattere del sistema esadecimale vengono associati 4 bit, aggiungendo gli zeri necessari a sinistra laddove le stringhe binarie hanno una lunghezza inferiore a 4. Questo tipo di associazioni sono descritte con il termine conversione di base, l’esempio più semplice di come possano comunicare insiemi posizionali differenti secondo le regole enunciate in precedenza: quale che sia la base di conversione utilizzata, è possibile passare da una base all’altra solo preservando le informazioni necessarie per far dialogare in ordine logico gli insiemi posizionali che ne concertano le traduzioni.

L’introduzione del sistema esadecimale in informatica non fu uniforme. Originariamente esistevano svariati modi di rappresentare una stringa esadecimale a seconda del linguaggio di programmazione utilizzato, ma nel tempo prevalse la necessità di standardizzare il sistema come accadde per il verso di scrittura dei bit. Attualmente ci sono due tipologie di stringhe esadecimali considerate standard a seconda che si utilizzino letterali minuscoli (abcdef) o maiuscoli (ABCDEF) ed entrambe sono accolte nativamente dai linguaggi di programmazione più noti, producendo le stesse conversioni se il dialogo avviene tra sistemi standardizzati.

A01base62 = 42285base10 = 1010010100101101base2.

In ogni caso, da ora quando ci riferiremo a una stringa ci riferiremo a insiemi di stringhe normalizzate in base256: stringhe i cui caratteri siano tutti riproducibili in base2 [01] (bit), ognuno di lunghezza massima pari a 8 bits.

A01base256 = 4272177base10 = 10000010011000000110001base2

In informatica una stringa di 8 bits rappresenta l’unità di misura chiamata byte. Un byte può assumere valori da 0 a 255 (28-1); una stringa di 256 bytes può assumere valori da 0 a un valore decimale enorme la cui rappresentazione tipografica corrisponde a 22048-1. La sequenza bit 110001 vale 49base256 , la sua rappresentazione tipografica come byte corrisponde al carattere letterale “1” e la sua stringa binaria è anche la sua struttura atomica, non essendoci base inferiore isomorfa alla base 2: il bit se letterale può a sua volta rappresentare un insieme definito da insiemi di bit annidati, ma ciò non toglie che qualsiasi isomorfismo annidato raggiunga il massimo dettaglio nella sua rappresentazione tipografica in base 2. Quando parleremo di struttura atomica di una stringa ci riferiremo sempre alla sua stringa binaria, così come per atomi di una stringa intenderemo l’insieme di bit definenti una stringa dopo la sua conversione in base2. In questi contesti il termine informazione sarà sempre sinonimo di stringa, così come stringa sarà sinonimo di informazione.

Le conversioni da base256 a base2 (e viceversa) avvengono a livello atomico il che, semplificando, significa: l’architettura di un computer supporta a livello nativo il dialogo tra queste due basi. Allo stesso modo possiamo considerare native anche le conversioni da base256 a base16 standard (esadecimale) e viceversa, così come quelle da base16 a base2 e viceversa: un carattere base16 è isomorfo ad una combinazione di 4 bit, così un carattere base256 corrisponde sempre ad una coppia di caratteri base16. Ugualmente, consideriamo seminative le conversioni di base isomorfe a tutte le combinazioni possibili di n bits, vale a dire a tutte le basi pari a 2n con n maggiore o uguale (>=) a 1. Calcolare il valore base8 di A01base256 significa in primo luogo ottenerne la stringa binaria per poi pareggiare bit in modo da poterli suddividere in blocchi uguali, ciascuno di 3 bits, e ad essi assegnare il corrispettivo carattere in base8 [0-7]:

A01base256 = 010 000 010 011 000 000 110 001 = 20230061base8

Abbiamo aggiunto uno zero a sinistra della stringa binaria per poterla suddividerla in 8 blocchi uguali. Il numero di zeri necessario per pareggiare (normalizzare) una stringa è facilmente ottenibile grazie all’aritmetica modulare. Introdotta da Johann Friedrich Carl Gauss alla fine del 1700 con il principio generante dell’Orologio, l’aritmetica modulare è un potente strumento di calcolo applicabile a problemi ben più complessi della normalizzazione di una stringa. Prendendo a riferimento la base8 [0-7] e disponendo su una riga, da sinistra a destra, l’insieme dei caratteri di base dal carattere con valore numerico più basso a quello con valore più alto, si possono generare n righe di numeri progressivi secondo la stessa logica di disposizione della riga iniziale:

001234567
1169101112131415
22417181920212223
33225262728293031
44033343536373839
54841424344454647
65649505152535455
76457585960616263

La prima colonna a sinistra riporta i giri dell’orologio impostato sulle 8 ore, mentre la seconda colonna riporta i multipli di ogni giro delle sue lancette. Così come il quadrante di un orologio utilizzato per misurare il trascorrere del tempo ha 12 numeri (da 0 a 11) distribuiti lungo un perimetro predefinito (o semplicemente riprodotti in digitale), l’orologio immaginato da Gauss propone lo stesso schema di distribuzione e di lettura: le 22 in un orologio di 12 ore corrispondono alle 10; le 22 nell’orologio di 8 ore corrispondono alle 6 perché il 22 si trova nella colonna 6. Il numero 22 appartiene alla classe del 6 in un orologio (modulo) di 8 classi e per arrivarci dobbiamo far compiere due giri completi all’orologio (raggiungendo le 16) e poi quasi un altro giro completo (6 ore) fermandoci alle 22. Quanto fatto corrisponde a dividere 22 per 8 calcolando il resto della divisione che è 6, e significa affermare che 22 equivale a 6 in un modulo (orologio) di 8 quadranti: 22 ≡ 6 (mod 8). Il simbolo ≡ è quello convenzionalmente utilizzato per indicare un’eguaglianza modulare, ma da ora per nostra comodità utilizzeremo comunque il simbolo = riportando le espressioni modulari secondo la grammatica seguente: 22 mod 8 = 6, 22 = 6 mod 8.

Tornando a A01base256 nella sua rappresentazione binaria di 23 bits, il numero degli zeri necessari da aggiungere a sinistra della stringa binaria è dato dall’espressione 3 – (23 mod 3).

0012
1645
2978
3121011
4151314
5181617
6211920
7242223

Troviamo l’utilità pratica di un orologio modulare anche nelle moltiplicazioni: il risultato della moltiplicazione del 7 in modulo 3 si ottiene leggendo sulla tabella il valore della seconda colonna di sinistra riportato alla riga precedente. Una volta stabilito un modulo ci si riferisce ai suoi quadranti parlando di classi di appartenenza, così che ogni valore considerato possa essere descritto da precise proprietà che in aritmetica modulare sono sintetizzate dal termine congruenza: l’espressione 23 mod 3 = 2 equivale a dire 23 è congruente con il 2 modulo 3. Le congruenze ci permettono di descrivere un numero in relazione ad un modulo: per sapere se il 23 e il 2 sono congruenti modulo 3 è sufficiente vedere se la loro differenza è multiplo del modulo. 23 – 2 = 21 e 21 è multiplo di 3.

Divisione, moltiplicazione, sottrazione e addizione sono le 4 operazioni aritmetiche di base portabili in aritmetica modulare. L’addizione per esempio, tra stessi moduli o moduli differenti:

  • (23 mod 3 + 14 mod 3) mod 3 = (2 + 2) mod 3 = 4 mod 3 = 1
  • (23 mod 3 + 14 mod 8) mod 3 = (2 + 6) mod 3 = 8 mod 3 = 2

La moltiplicazione ovviamente segue lo stesso principio:

  • (23 mod 3 x 14 mod 8) mod 3 = ( 2 x 6 ) mod 3 = 12 mod 3 = 0

L’aritmetica modulare nel nostro contesto è utile anche per evidenziare come la computazione di due o più valori numerici sia sempre sottesa alle regole strutturali che ne determinano l’appartenenza a ben precisi insiemi posizionali, o altrimenti definibili architetture logiche fondate sui numeri: ogni stringa è definita da caratteri disposti in concerto con gli altri, la cui combinazione determina un significato esprimibile attraverso una stringa numerica prodotte da regole di computazione sottese al sistema formale d’appartenenza.

Una regola di computazione utile in un insieme posizionale può essere tradotta in una regola computazionale di un altro insieme solo in presenza di una struttura semantica in grado di tradurne le caratteristiche, le proprietà e i limiti attraverso attinenze logiche, artefatti logici. Dai numeri alle parole:

  • Il termine luna per un essere umano ha attinenze logiche ma per una formica significa nulla: è utilizzato nel linguaggio umano perché il linguaggio ha metodi utili per rappresentarlo ed utilizzarlo.
  • Un termine di una lingua può essere utilizzato in una computazione perché è un termine posizionale esprimibile in un linguaggio numerico che ha metodi utili per rappresentarlo ed interpretarlo.
Artefàtto, declinazione di Artàto (fatto con arte, lat. "arte factus"), derivazione d'etimo àrte nel suo significato astratto - "l'attività umana e specialmente l'industria manuale applicata alla produzione della natura pei bisogni e pei comodi della vita. - Si prende anche per Metodo o Maestria nell'operare secondo certe regole; ed in questo significato si distinguono le arti in liberali e meccaniche" - è un termine neutro di cui troppo spesso s'evidenzia l'accezione negativa d'uso comune "fatto con artifizio, artificioso, adulterato", mentre fin dall'antichità è utilizzato per indicare la creazione di opere, strumenti, strutture non presenti in natura. Nella sua moderna accezione di significato, Artèfatto è utilizzato anche in contesti di speculazioni intellettuali e filosofiche.

Dire che il termine luna è uno degli elementi costitutivi di un dato sistema formale significa affermare che il termine è definibile da classi logiche e attributi che ne stabiliscono sine qua non l’appartenenza al sistema considerato:

  • Una classe logica è in grado di misurare se stessa e le classi con cui ha in comune attributi propri della classe decisionale dell’insieme a cui appartiene.

In questo senso, semplificando e di molto, l’aritmetica in modulo 3 è un esempio di sistema formale definito da una classe decisionale (regole di computazione) i cui attributi (righe e colonne di appartenenza) ci permettono di valutare le congruenze necessarie per assegnare ad ogni valore una classe logica 23 = 2 mod 3 così come di generare nuove classi interagendo con classi non attinenti ( 23 mod 3 + 14 mod 8 ) mod 2 = 8 mod 2.

  • Una classe logica è in grado di misurarsi con classi logiche di altri insiemi, di trovare attinenze o di creare nuovi insiemi logici, ma non è in grado di misurare il proprio insieme d’appartenenza a causa del limite indotto dalla classe decisionale a cui appartiene.

L’insieme base8 è un insieme numerico di otto elementi { 0, 1, 2, 3, 4, 5, 6, 7 } ognuno dei quali è classe logica ed elemento costituente della classe decisionale base8. Le otto classi logiche hanno degli attributi in comune come: l’appartenenza all’insieme dei numeri naturali e l’appartenenza all’insieme dei numeri interi, condizioni che sottintendono comuni regole computazionali a cui si aggiungono quelle regole modulari che fissano i limiti dell’insieme (inferiore e superiore).

Una classe decisionale non ha metodi per misurare l’insieme di cui si fa referente se non tramite i metodi propri dei suoi elementi elettivi, per cui 0 = 8 è condizione falsa se misurata in termini di appartenenza alla classe decisionale base8 ma è condizione vera se misurata in termini di appartenenza numerica al modulo base8.

In ogni teoria matematica T coerente – sufficientemente espressiva da contenere un linguaggio formale computabile aritmeticamente – esiste una formula f tale che né f né -f sono dimostrabili in T; in ogni sistema formale capace di assiomatizzare la teoria elementare dei numeri naturali espressa dalle operazioni aritmetiche di base, è possibile costruire una stringa ben formata che non dimostrabile o confutabile dallo stesso sistema. – Primo dei teoremi di incompletezza di Gödel

0 = 8. Il simbolo “=” interpretato secondo il suo significato booleano.

Invece di determinare la misura dell’accordo formale dei simboli della logica con quelli dei Numeri in generale, è più immediatamente suggerito di confrontarli con i simboli di quantità che ammettano solo i valori 0 e 1. Le leggi, gli assiomi e i processi di tale algebra saranno identici, nella loro estensione completa, alle leggi, gli assiomi e i processi di un’algebra della logica. Esse sarebbero divise solo da differenze di interpretazione. – George Boole

La citazione fu la risposta di Boole alla domanda implicita riguardo quali numeri naturali risolvessero l’eguaglianza x ( x – 1) = 0.

Per quali valori di x si ha x (x – 1) = 0 ? La risposta è 1 e 0.

  • In termini aritmetici è corretto equiparare 1(1-1) = 0 a 0(0-1) = 0.
  • In termini matematici l’equazione -1 = x può essere risolta da 0?
  • In termini logici x esprime una variabile di quantità concreta: vero o falso.

– 1 = vero | falso

Trattare di stringhe logiche significa argomentare di congruenze, appartenenze, significati di termine coerenti a determinati sistemi formali, di vero e falso. In senso lato ma anche pratico significa però anche descrivere un “nuovo” sistema formale di cui tutti gli argomenti finora esposti ne sono elementi costituenti. Il sistema formale a cui ci si riferisce è quello dell’algebra logica di cui l’algebra booleana basata su un alfabeto di due soli valori , vero e falso, è il motivo ispirante nell’intuizione di Boole che nel 1847 ne presentò i principi nel suo libro The Mathematical Analysis of Logic – opera considerata di diritto l’apriprista della logica simbolica ed atto ufficiale di nascita dell’algebra della logica. Il fatto che un libro sia stato ispiratore di un intero insieme algebrico con le sue definizioni, regole e metodi di computazione esclusivi, ha senso compiuto quando consideriamo l’algebra logica come un artefatto creato per misurare in modo esaustivo strutture di insiemi nativi da interpretare.

Così, George Boole, nella prefazione alla sua opera:

Mi sembrava che, malgrado la logica possa essere riguardata con riferimento all’idea di quantità, essa fosse caratterizzata anche da un altro e più profondo sistema di relazioni. Se era legittimo riguardarla dall’esterno come una scienza che attraverso la mediazione del Numero si connette con le intuizioni di spazio e tempo, era legittimo anche riguardarla dall’interno come basata su fatti di ordine diverso che hanno la loro sede nella costituzione della mente. Coloro che hanno familiarità con lo stato attuale della teoria dell’algebra simbolica sono consapevoli che la validità dei procedimenti dell’Analisi non dipende dall’interpretazione dei simboli che vi sono impiegati, ma soltanto dalle leggi che regolano la loro combinazione. Ogni sistema di interpretazione che non modifichi la verità delle relazioni che si suppone esistano tra tali simboli è ugualmente ammissibile, ed è così che il medesimo processo può, secondo uno schema di interpretazione, rappresentare la soluzione di una questione riguardante le proprietà dei numeri, secondo un altro schema quella di un problema di geometria e, secondo un altro ancora, quello di un problema di dinamica o di ottica. Questo principio possiede un’importanza fondamentale e si può affermare che i recenti progressi dell’Analisi pura sono stati in larga misura promossi dall’influenza che esso ha esercitato nel dirigere l’indirizzo della ricerca. La caratteristica che definisce un calcolo autentico consiste in questo: che esso è un metodo fondato sull’impiego di simboli le cui leggi di combinazione sono note e generali, e i cui risultati ammettono un’interpretazione coerente. Il fatto che alle forme oggi esistenti in Analisi venga assegnata un’interpretazione quantitativa è il risultato delle circostanze che determinarono il sorgere di tali forme, e noi non dobbiamo farne una condizione universale dell’Analisi. Sulla base di questo principio generale, io intendo appunto fondare il calcolo logico, e reclamare per esso un posto fra le forme di analisi matematica ormai generalmente riconosciute, senza tenere conto del fatto che, dati il suo soggetto e gli strumenti di cui si avvale, esso deve, per il momento, rimanere isolato. Non fa parte dell’essenza della matematica di essere intimamente connessa con le idee di numero e quantità.

I domini delineati da Boole mettevano in contatto la matematica con la logica creando un archetipo concettuale e filosofico di straordinaria profondità: i numeri incontravano la logica, la logica trattava i numeri come oggetti di pensiero, e i numeri creavano costruzioni logiche per rappresentare insiemi non numerici. Secondo questa visione, ogni oggetto matematico è computabile logicamente perché espressione di un oggetto di pensiero:

  • se ogni oggetto matematico è un oggetto di pensiero, allora un oggetto di pensiero è un oggetto logico con le sue eguaglianze – e quindi ogni eguaglianza può essere risolta come risultato di una computazione;
  • se ogni eguaglianza può essere risolta computando due o più elementi a sinistra e destra del simbolo eletto a eguaglianza, allora ogni oggetto di pensiero può essere computato per eguaglianze perché espressione di oggetti logici.

L’algebra booleana fu qualcosa di mai tentato prima: l’ambizione di essere trasversale ad ogni insieme considerabile, creando un unicum di pensiero che fosse anche uno strumento capace di misurare le probabilità che un elemento x potesse essere eletto a elemento decisionale – o relegato ad elemento neutro – in relazione all’oggetto d’indagine. In questo senso definiamo l’algebra booleana come un potente strumento di speculazione logica con cui è possibile estrapolare gli artefatti logici propri degli insiemi con cui ci rapportiamo per indagarne le proprietà: teoremi, stringhe ben formate, classi logiche derivate, sottoinsiemi nativi, regole di costruzione, isomorfismi etc.

Ad esempio, l’analisi logica dell’insieme modulo base10 { 0, 1, 2, 4, 5, 6, 7, 8, 9 } permette di dimostrare l’appartenenza della classe logica 7 all’insieme dei numeri primi così come all’insieme dei numeri dispari, ma non permette di fare altrettanto con la classe logica 11 – le classi logiche dell’insieme non hanno metodi utili per dimostrarne l’esistenza, seppure ne abbiano di sufficienti per produrla – perché fallisce qualsiasi misurazione tentata con le regole dell’insieme: 11 mod 10 = insieme numeri dispari è condizione vera perché il risultato è attributo della classe logica 1, classe anche non congrua all’insieme dei numeri primi. La classe 11 trova contesto nell’insieme base12 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } ed è riproducibile in base10 come interazione tra le classi logiche del 9 e del 2:

00123456789
120111213141516171819

Il risultato di questa interazione è un nuovo insieme logico definito da tre elementi: la nuova classe dell’11 descrivibile attraverso le classi del 9 e del 2 elette ad attributi della classe decisionale. In termini semplicistici, l’11 è un isomorfismo generato dal prodotto logico di due classi congrue tra loro che traduciamo con tutti i limiti propri del loro linguaggio nativo.

I prodotti logici di due elementi booleani interagiscono in termini di isomorfismo elettivo. Il prodotto 01 = 10 relaziona due classi identiche per estensione ma vuote per concetto. Se 10 = 01 allora esiste eguaglianza per ogni elemento a sinistra e a destra del simbolo uguale, e per estensione esiste eguaglianza per ogni classe di cui l’elemento è attributo eletto alla classe decisionale. Il prodotto logico conseguente è che 1x = x = x1 così come 0x = 0 = x0 che rapporta due classi vuote. Nel caso in cui non ci sia attinenza tra i due elementi, allora il prodotto logico è descritto come “un’aggregazione di parti in un tutto”, ad esempio: 01 + 11 crea una nuova classe di riferimento per le due classi disgiunte. Ecco come si porrebbe in algebra logica il problema relativo alla misurazione dell’insieme 11 aggiunto all’insieme base10:

  • 11 è un numero dispari? 11 mod 10 = 1 è la traduzione del prodotto logico 9 + 2 ed è in questi termini che la risposta è affermativa: abbiamo creato una rappresentazione limitata di come appare la classe 11 in un insieme di cui non è teorema; otteniamo lo stesso risultato per qualsiasi stringabase10 con il primo carattere a destra uguale a 1.
  • 11 è un numero primo? L’insieme dei numeri primi misurabili nel contesto considerato è composto da un paniere di 4 elementi {2, 3, 5, 7} i cui teoremi sono sottesi ad una regola formale fondamentale: un numero primo è un numero divisibile per sé stesso e per uno. La misurazione è possibile solo se siamo in possesso della classe 11 come teorema ma noi abbiamo solo una sua traduzione limitata, e questo in termini di prodotto booleano ha significato nullo: 01 = 10 due classi identiche ma vuote per concetto.

C’è un solo modo di entrare in possesso di un teorema non presente in un dato insieme modulo: estendere l’insieme fino ad includere la classe mancante, dando così origine ad un nuovo modulo; trattando con insiemi numerici questo significa applicare la funzione elementare f(x) = x + 1 con x uguale alla base del modulo di partenza. Quanto detto vale per qualsiasi insieme e qualsiasi insieme finito può essere trattato entro i limiti propri di un insieme modulo.

Svetonio in Vite dei Cesari (56, I) tratta del cifrario di Cesare con cui il suo inventore, Caio Giulio Cesare, cifrava i messaggi sostituendo un carattere di un testo in chiaro con un altro carattere scelto a n posizioni di distanza – solitamente un salto di 3 caratteri – in un alfabeto di riferimento, un carattere alla volta dall’inizio alla fine del testo. Un moderno cifrario di Cesare si baserebbe sull’aritmetica modulare ed avrebbe implicite diverse combinazioni di sequenze valide. Ad esempio: salti condizionati in un’alternanza di verso, indice per l’utilizzo di n dizionari progressivi che a loro volta inciderebbero sui salti ed il verso.

Ogni stringa per quanto casuale possa essere è passibile d’interpretazione – ascrivibile ad un sistema formale o principio ispirante di un nuovo sistema – e la sua analisi offre gli spunti necessari per ampliare non solo la sua conoscenza ma anche quella di ogni altro potenziale oggetto d’indagine correlabile all’insieme di cui la consideriamo referente. Nell’indagine di una stringa emergono, a volte solo accennate, connessioni preesistenti inizialmente ignote, per la non conoscenza di un sistema utile a tracciarle, che è possibile correlare a schemi coerenti solo applicandovi un setaccio, un filtro, una procedura logica, un ragionamento o, in termini informatici, quell’algoritmo che potrebbe esserne premessa di conoscenza per lo sviluppo di artefatti logici a misura di problema.

Bibliografia

Gödel, Escher, Bach: un'Eterna Ghirlanda Brillante

1979, Gödel, Escher, Bach: an Eternal Golden Braid, Basic Books, Inc.
1984, Adelphi Edizioni S.p.A. – VII edizione gli Adelphi: settembre 2001
di Douglas R. Hofstadter
Professore di Scienza cognitiva e informatica, già direttore del Centro di Ricerca sui Concetti e la Cognizione all’Indiana University, l’autore propone una fuga metaforica su menti e macchine nello spirito di Lewis Carroll – “Per parafrasare di nuovo Cartesio: ‘Penso; quindi non ho accesso al livello nel quale sommo’. Perché non dovrebbe essere lo stesso per un programma intelligente?” – utilizzando i contrappunti di una Ghirlanda i cui fili matematici, artistici e musicali sono le note di una costruzione intellettuale creata “come una fuga a più voci della mente umana“. E, come nell’offerta musicale, “quando si crede di conoscere tutto, vi si trova sempre qualcosa di nuovo“.

I numeri primi - Un lungo cammino verso l'infinito

2010, Los números primos: un largo camino al infinito, RBA Libros S.A.
2018, Mondo matematico (periodico), RBA Italia S.r.l.
di Enrique Gracián
Il libro è stato scritto con l’intenzione “di mantenere un livello di divulgazione alto, il che significa che il bagaglio di conoscenze matematiche necessarie per la sua lettura è basso“. Si tratta di un’opera “alla portata di tutti i lettori che sanno cosa siano i numeri e le operazioni di base che con essi si possono svolgere, e l’intenzione è che la sua lettura dia loro una idea sommaria di quello che è l’universo dei numeri primi“.

PROGRAMMARE in ASSEMBLY

1988, Programming with Assembly Language, McGraw-Hill Book Company
1989, Gruppo Editoriale Fabbri, Bompiani, Sonzogno, Etas S.p.A.
di David E. Goldberg, Jacqueline A. Jones, Pat H. Sterbenz
Un’introduzione al linguaggio assembly usato nei calcolatori IBM della serie 360 e serie 370, concepita “come sussidiario a libri di testo già esistenti ed usato in questo modo nel Brooklyn College. Abbiamo cercato di compilare un manuale che sia sempre utile, qualunque sia l’approccio dell’insegnante. Così dal capitolo 1 al 6 la materia è utilizzata in modo che tutti gli altri capitoli risultano indipendenti tra di loro e possono essere affrontati in qualsiasi ordine“.

JAK

JAK in WHP – multi acronimo qui riportato nel suo più ampio significato di termine Wide Highway Projects – è il laboratorio di idee AMN con focus orientato allo sviluppo di algoritmi e applicazioni proprietarie web oriented per la sicurezza, la codifica e lo storage di dati: tra stringhe pseudocasuali, hashing, protocolli di autenticazione, crittografia, data search e mining.