Nell'ambito della formalizzazione matematica con Lean, la gestione delle disuguaglianze e delle disgiunzioni riveste un ruolo cruciale. Un esempio tipico è l’uso delle proprietà del valore assoluto, che spesso si traducono in teoremi come xxx \leq |x| o x+yx+y|x + y| \leq |x| + |y|. Questi enunciati, apparentemente semplici, sono fondamentali per costruire ragionamenti più complessi sulle successioni e la loro convergenza. Il formalismo di Lean permette di strutturare tali dimostrazioni in maniera modulare, con tecniche come il rcases che gestisce le disgiunzioni nidificate e facilita la scomposizione dei casi, supportando la scrittura di prove eleganti e rigorose.

Nel caso delle disgiunzioni, si vedano gli esempi classici quali x<y    x<yx<yx < |y| \iff x < y \lor x < -y o x<y    y<xx<y|x| < y \iff -y < x \land x < y, che illustrano come l’interpretazione di valori assoluti si traduca in condizioni alternative. Questo tipo di ragionamento si estende in modo naturale alla nozione di zero divisori in anelli commutativi o meno. Ad esempio, nel dominio dei numeri reali non esistono zero divisori non banali, una proprietà formalizzata nel teorema eq_zero_or_eq_zero_of_mul_eq_zero. La possibilità di generalizzare questi risultati a domini integrali, anche non commutativi, dimostra la potenza del linguaggio di Lean nel formalizzare strutture algebriche complesse, consentendo prove uniformi ed eleganti di proprietà essenziali.

Un altro strumento fondamentale è la legge del terzo escluso (excluded middle), espressa tramite la proposizione P¬PP \lor \neg P. Questa legge permette di effettuare divisioni in casi che facilitano notevolmente le dimostrazioni, come nel passaggio da una doppia negazione alla sua affermazione positiva. In Lean, il metodo by_cases si rivela particolarmente efficace per applicare questa strategia, consentendo di assegnare etichette alle ipotesi in ciascun ramo, migliorando la leggibilità e la gestione delle dimostrazioni.

Il passo successivo è l’introduzione delle successioni di numeri reali come funzioni da N\mathbb{N} a R\mathbb{R}, e la formalizzazione della loro convergenza. La definizione in Lean è elegante e compatta: una successione ss converge a aa se per ogni ε>0\varepsilon > 0 esiste un indice NN tale che per ogni nNn \geq N, sna<ε|s_n - a| < \varepsilon. Questa definizione, lontana dall’essere meramente formale, riflette perfettamente il concetto classico di convergenza e permette di costruire dimostrazioni formali di proprietà più complesse, come la convergenza della somma di due successioni convergenti.

Per la dimostrazione della convergenza della somma sn+tns_n + t_n a a+ba + b, si impiegano argomenti di natura classica ma formalizzati con rigore: dato ε>0\varepsilon > 0, si scelgono NsN_s e NtN_t per cui ss e tt sono rispettivamente entro ε/2\varepsilon/2 dai loro limiti oltre tali indici, e quindi si prende N=max(Ns,Nt)N = \max(N_s, N_t). L’uso di tecniche come la gestione dei massimi, delle disuguaglianze e degli operatori assoluti è facilitato da tattiche come linarith, congr e simp che automatizzano calcoli e semplificazioni algebriche.

Altre tattiche, come ext, permettono di dimostrare uguaglianze tra funzioni mostrando che i valori coincidenti per ogni argomento implicano l’uguaglianza delle funzioni stesse, mentre convert consente di applicare teoremi a obiettivi che differiscono solo leggermente, gestendo automaticamente le riscritture necessarie per far combaciare enunciati e conclusioni.

Un aspetto da considerare è come Lean consenta di generalizzare teoremi tipici del calcolo reale a contesti più astratti, come anelli commutativi o addirittura anelli non commutativi con la struttura di dominio integrale. Questo richiede una comprensione non banale degli assiomi sottostanti e di come le proprietà algebriche si riflettano nelle dimostrazioni formali, rappresentando un ponte tra algebra astratta e analisi formale.

Nel completare queste dimostrazioni, è importante ricordare che la formalizzazione in Lean richiede una padronanza non solo degli strumenti logici ma anche della gestione efficiente delle ipotesi, delle strutture dati e delle tattiche disponibili, che aiutano a trasformare una prova astratta in una sequenza di passi rigorosi e verificabili da macchina.

L’approccio presentato evidenzia la necessità di mantenere una visione coerente tra la matematica tradizionale e la sua rappresentazione formale: ogni passaggio deve essere giustificato con precisione, ma senza perdere di vista la struttura logica complessiva della dimostrazione. La padronanza di questi strumenti consente di affrontare non solo teoremi elementari ma anche risultati più sofisticati riguardanti successioni, convergenze e strutture algebriche, avvicinando la matematica alla sua formalizzazione più rigorosa.

Che cosa sono le strutture algebriche e come Lean le gestisce?

Le strutture algebriche rappresentano un concetto fondamentale nell'organizzazione e nello studio degli oggetti matematici dotati di operazioni e relazioni specifiche, soggette a determinati assiomi. In generale, una struttura algebrica si presenta come un insieme, detto insieme portatore, accompagnato da operazioni o relazioni che ne determinano la natura e il comportamento. Ad esempio, un insieme parzialmente ordinato è costituito da un insieme P e da una relazione binaria ≤ che è riflessiva e transitiva; un gruppo si compone di un insieme G con un'operazione binaria associativa, un elemento identità e un'operazione che associa a ogni elemento il suo inverso; un anello è dato da un gruppo abeliano dotato di un'operazione moltiplicativa associativa con identità, distributiva rispetto all'addizione, e così via.

Lean, come assistente di dimostrazione, deve riconoscere e trattare queste strutture con efficacia, poiché esse costituiscono la base per lo sviluppo di ragionamenti algebrici complessi. Questo implica la capacità di identificare istanze concrete di strutture (come i numeri interi, razionali e reali, che sono tutti anelli ordinati), gestire notazioni generiche (ad esempio il simbolo * che rappresenta la moltiplicazione in vari contesti), e permettere l'ereditarietà di definizioni e teoremi tra strutture correlate. Una struttura più raffinata può estendere una più generale, conservandone le proprietà e arricchendola di nuove. È tipico, ad esempio, che un anello commutativo estenda la definizione di anello, o che una parte additiva di un anello formi un gruppo additivo, mentre l'anello aggiunge la moltiplicazione e le relative leggi.

Un ulteriore aspetto essenziale è la gestione delle strutture parzialmente incapsulate, dove il tipo portatore α viene tenuto separato dalla struttura vera e propria. Questo consente di combinare i dati in modi flessibili, facilitando la definizione di strutture più complesse o la manipolazione di strutture multiple che condividono la stessa base. Lean implementa queste idee tramite il comando structure, che consente di definire bundle di dati assiomatici con eleganza e rigore.

La duplice natura delle strutture algebriche, da un lato come contenitori di elementi e dall'altro come oggetti matematici a sé stanti, impone che un sistema di dimostrazione come Lean sappia trattare sia gli elementi sia le strutture in modo coerente. Per esempio, la costruzione di prodotti o potenze di gruppi deve generare nuovamente gruppi, e matrici a coefficienti in anelli formano anch’esse anelli. Di conseguenza, l'algebra diventa un linguaggio in cui si può calcolare e ragionare a più livelli, richiedendo un supporto meccanico sofisticato.

Oltre a queste nozioni essenziali, è importante comprendere come la formalizzazione in Lean non sia soltanto una traduzione delle definizioni matematiche, ma una vera e propria infrastruttura per la gestione modulare e compositiva delle strutture. Questo include la capacità di ereditare proprietà, sovrascrivere definizioni per adattarle a nuove situazioni, e integrare teorie multiple in modo armonico. Il linguaggio stesso permette di mantenere la chiarezza e la coerenza formale, evitando duplicazioni e facilitando la manutenzione di basi di conoscenza molto ampie.

Infine, il lettore dovrebbe considerare che la definizione di una struttura algebrica non è un semplice esercizio di sintassi, ma un atto di astrazione che riflette profondamente la natura delle entità matematiche studiate. La possibilità di manipolare le strutture come oggetti autonomi permette di sviluppare teorie generali e trasferire risultati tra contesti differenti. Questo duplice ruolo delle strutture come insiemi di elementi e come entità matematiche autonome è ciò che rende potente e flessibile l'approccio formale adottato da Lean e da altri sistemi di dimostrazione.

Come si costruiscono e si comprendono le applicazioni lineari, gli spazi vettoriali e i sottospazi nel contesto formale di Lean

Nel contesto formale di Lean, la costruzione e la manipolazione delle applicazioni lineari sono formalizzate in modo rigoroso, utilizzando strutture ben definite come LinearMap e LinearEquiv. La funzione lineare φ\varphi soddisfa la proprietà fondamentale della linearità, cioè φ(x+y)=φ(x)+φ(y)\varphi(x + y) = \varphi(x) + \varphi(y), che si riflette in più formulazioni equivalenti, ma tutte rigorosamente verificate e controllate dal sistema. Questo principio di linearità è alla base della costruzione di mappe più complesse a partire da quelle già definite, per esempio tramite combinatori che consentono di ottenere nuove applicazioni lineari da altre preesistenti.

Nel formalismo Lean, l’argomento esplicito su cui agiscono queste mappe è spesso necessario. Ad esempio, la mappa LinearMap.lsmul\text{LinearMap.lsmul} con argomenti espliciti KK e VV è un caso tipico: KK rappresenta il campo scalare e VV lo spazio vettoriale. La specificazione esplicita permette al sistema di inferire correttamente i tipi e le relazioni tra loro, poiché senza di essa non sarebbe possibile dedurre i contesti di applicazione. La mappa LinearMap.lsmul\text{LinearMap.lsmul} è interessante in sé, in quanto rappresenta un'applicazione lineare da KK considerato come spazio vettoriale su sé stesso verso lo spazio delle applicazioni lineari da VV a VV.

La nozione di LinearEquiv, che formalizza l’idea di isomorfismo lineare tra spazi vettoriali, è un elemento chiave nella teoria formale. Esso consente di trattare funzioni invertibili linearmente, con la funzione inversa che, nel sistema Lean, è rappresentata come f.symmf.symm. La composizione di isomorfismi lineari è anch’essa un isomorfismo, e il sistema formalizza in modo elegante la relazione tra tali composizioni e l’identità, garantendo coerenza tramite proprietà come ff.symm=idf \circ f.symm = id.

Per quanto riguarda gli spazi vettoriali costruiti a partire da altri, si utilizzano prodotti e somme dirette, che nel caso di due spazi vettoriali coincidono nella struttura del prodotto. Lean formalizza queste costruzioni con mappe lineari di proiezione e inclusione, permettendo di definire proprietà universali che regolano la loro composizione. La distinzione tra prodotto e somma è formalmente espressa attraverso proprietà universali, pur essendo nel caso binario praticamente equivalenti, mentre in casi più generali la differenza diventa significativa.

La generalizzazione alle famiglie arbitrarie di spazi vettoriali richiede alcune condizioni tecniche, come l’equivalenza decidibile sugli indici, per formalizzare correttamente somme e prodotti diretti. Anche in questi casi, le proprietà universali giocano un ruolo fondamentale nella definizione delle mappe lineari che collegano le componenti agli spazi sommati o prodotti, così come nelle loro proiezioni o inclusioni.

Infine, i sottospazi lineari vengono rappresentati come strutture bundled, cioè insiemi dotati di operazioni e proprietà che ne garantiscono la chiusura rispetto alle operazioni di somma e moltiplicazione per scalari. Questa rappresentazione permette di usare strumenti formali come il coercion e il membership predicate, che facilitano la manipolazione e la verifica delle proprietà dei sottospazi. Ad esempio, due sottospazi sono uguali se e solo se hanno gli stessi elementi, una proprietà utilizzata tramite il tactic ext nel sistema Lean per dimostrare uguaglianze tra sottospazi.

Un esempio pratico di sottospazio è la realizzazione dell'insieme reale R\mathbb{R} come sottospazio lineare del complesso C\mathbb{C}, formalizzata nel sistema tramite la costruzione del Submodule che ha come portatore l’immagine di R\mathbb{R} in C\mathbb{C}, con la dimostrazione della chiusura rispetto alle operazioni di somma e moltiplicazione per scalari.

Questa formalizzazione rigorosa consente di estendere l’analisi ai sottospazi preimmagine di un’applicazione lineare, permettendo una trattazione precisa e dettagliata delle strutture algebriche coinvolte.

È importante comprendere che tutto questo sistema non è solo un esercizio formale, ma consente di sviluppare una teoria lineare generale e potente, che si applica in modo consistente e verificabile tramite strumenti automatici. La distinzione tra strutture bundle e semplici predicati aiuta a mantenere la coerenza e a facilitare la manipolazione delle entità matematiche complesse.

Oltre a quanto esposto, è fondamentale per il lettore cogliere come la rappresentazione esplicita degli argomenti e delle strutture sia essenziale per una formalizzazione efficace, poiché consente al sistema di inferire correttamente i tipi e le relazioni, evitando ambiguità e garantendo la robustezza delle dimostrazioni. Inoltre, la presenza delle proprietà universali nelle costruzioni di somme e prodotti diretti rivela un legame profondo con la teoria delle categorie, suggerendo una prospettiva più ampia e astratta che può essere esplorata per comprendere meglio la natura delle strutture algebriche.

Infine, la formalizzazione dei sottospazi e delle loro proprietà attraverso strutture bundled e coercizioni offre un modello chiaro per trattare spazi vettoriali e moduli in un contesto più ampio, riflettendo un approccio sistematico e modulare alla teoria lineare che può essere esteso anche ad altri contesti matematici avanzati.

Come si definisce e si studia il calcolo differenziale negli spazi normati?

Ogni spazio normato si arricchisce naturalmente della struttura di spazio metrico, definita dalla distanza d(x,y)=xyd(x,y) = \|x - y\|, da cui consegue anche una struttura topologica. Questo collegamento fondamentale tra norma, metrica e topologia permette di utilizzare in modo coerente concetti di continuità e convergenza. La continuità di una funzione f:XEf: X \to E da uno spazio topologico XX a uno spazio normato EE si riflette nella continuità della norma composta con ff, cioè la funzione xf(x)x \mapsto \|f(x)\| è continua se ff lo è.

Per combinare il concetto di norma con quello di algebra lineare si introduce la nozione di spazio normato su un corpo RR, detto NormedSpace RER E, in cui EE è uno spazio vettoriale su RR e la moltiplicazione scalare soddisfa la proprietà di omogeneità della norma: la norma di axa \cdot x è uguale al valore assoluto di aa moltiplicato per la norma di xx. Questo formalizza la compatibilità tra struttura vettoriale e metrica.

Uno spazio normato completo è detto spazio di Banach. Ogni spazio vettoriale di dimensione finita, su un campo completo dotato di norma non banale, è automaticamente completo. Questo fatto consente di estendere molti risultati dell’analisi classica agli spazi vettoriali di dimensione finita su campi normati più generali, non solo su R\mathbb{R}.

La categoria degli spazi normati su un campo normato K\mathbb{K} ha come morfismi le applicazioni lineari continue, che in Mathlib si rappresentano come oggetti del tipo E\toL[K]FE \toL[\mathbb{K}] F. Questi morfismi sono strutture “bundled”: oltre alla funzione, contengono la prova della linearità e della continuità. Tale formalizzazione permette di trattare le applicazioni continue lineari sia come funzioni sia come oggetti con proprietà aggiuntive, facilitando ragionamenti e dimostrazioni. Le mappe lineari continue godono di una norma operatore, che è definita come il minimo MM tale che fxMx\|f x\| \le M \|x\| per ogni xx. Questa norma è fondamentale per studiare la stabilità e la continuità uniforme degli operatori lineari.

Si definiscono inoltre isomorfismi lineari continui (continuous linear isomorphisms), che sono equivalenze isometriche tra spazi normati. Un esempio emblematico di risultato avanzato in questo contesto è il teorema di Banach-Steinhaus (o principio della limitatezza uniforme), che afferma che una famiglia puntualmente limitata di applicazioni lineari continue da uno spazio di Banach a uno spazio normato è uniformemente limitata in norma. La dimostrazione si basa sul teorema della categoria di Baire, un risultato topologico profondo, e su proprietà specifiche delle mappe lineari continue, come la norma operatore e chiusura di certi insiemi.

Per definire la derivabilità in spazi normati è necessario introdurre relazioni asintotiche come il "big O" e il "little o". Queste permettono di formalizzare il concetto di comportamento infinitesimale vicino a un punto, essenziale per generalizzare la definizione classica di derivata alle funzioni tra spazi normati. In particolare, la derivata di Fréchet si definisce tramite la proprietà che la differenza tra la funzione e la sua approssimazione lineare tende a zero in modo infinitesimale rispetto alla distanza dal punto di interesse.

Mathlib definisce la derivata Fréchet tramite un predicato HasFDerivAt e una funzione fderiv che restituisce la mappa lineare continua associata alla derivata. Si possono definire anche derivate iterate, con valori in spazi di applicazioni multilineari continue, e funzioni infinitamente differenziabili, incluse quelle analitiche, utilizzando il concetto di Continuità e differenziabilità continue di ordine arbitrario.

Questa struttura teorica costituisce la base per un calcolo differenziale rigoroso e astratto in spazi normati, rendendo possibile estendere i metodi dell’analisi classica a contesti più generali e sofisticati, e supportando formalmente ragionamenti complessi in sistemi di proof assistant come Lean.

È importante notare che la completezza dello spazio normato gioca un ruolo cruciale nella teoria: la definizione di Banach è essenziale per garantire la validità di molti teoremi di analisi funzionale, come il Banach-Steinhaus. Inoltre, la distinzione tra campi normati non banali e quelli triviali permette di trattare casi più generali rispetto ai tradizionali spazi reali o complessi. La struttura di mappa lineare continua come oggetto “bundled” è fondamentale per integrare proprietà algebriche e topologiche in modo coerente e modulare, consentendo una più efficace formalizzazione e manipolazione delle funzioni differenziabili.

Qual è il ruolo delle strutture algebriche parzialmente ordinate nella teoria dei reticoli?

Nel contesto della divisibilità, il massimo comun divisore (gcd) e il minimo comune multiplo (lcm) sono strutture che si comportano analogamente a minimi e massimi. Ogni numero divide lo zero, per cui lo zero può essere considerato come l'elemento massimo rispetto alla divisibilità. Questa osservazione apre la strada a una comprensione più profonda delle relazioni parziali che governano gli insiemi numerici e le loro operazioni.

Le strutture algebriche, come gli anelli commutativi, non si limitano a essere descritte da equazioni: è possibile definire un insieme con una relazione binaria che soddisfi proprietà specifiche quali riflessività, transitività e antisimmetria. Un esempio classico è l’ordine parziale ≤ sui numeri reali, che introduce una gerarchia tra gli elementi senza necessariamente confrontarli tutti fra loro.

Attraverso Lean, un sistema di dimostrazione automatica, è possibile definire variabili di tipo generico α e dotarle di strutture di ordine parziale. Si definiscono proprietà fondamentali come la riflessività (x ≤ x), la transitività (da x ≤ y e y ≤ z si deduce x ≤ z) e l’antisimmetria (se x ≤ y e y ≤ x allora x = y). Questi concetti sono cruciali per formalizzare strutture matematiche in modo rigoroso e meccanizzato.

Oltre all’ordine parziale, si introduce la nozione di ordine stretto <, che rappresenta una relazione di stretta minoranza, definita come "x ≤ y e x ≠ y". Questo consente di formalizzare proprietà come la non riflessività di < (nessun elemento è strettamente minore di se stesso) e la sua transitività. L’uso dei connettivi logici come “e” (∧), “non” (¬) e “diverso da” (≠) è fondamentale per esprimere queste definizioni in maniera formale.

Il passaggio ai reticoli (lattice) estende la nozione di ordine parziale introducendo due operazioni binarie: l'infimo (⊓) e il supremo (⊔), corrispondenti rispettivamente al massimo elemento inferiore e al minimo elemento superiore rispetto all’ordine. Queste operazioni generalizzano le funzioni min e max sui numeri reali e trovano applicazioni in numerosi contesti, quali l’insieme dei numeri naturali con la divisibilità, le intersezioni e unioni di insiemi, le operazioni logiche su valori booleani e persino le strutture più astratte come spazi vettoriali e topologie.

I simboli ⊓ e ⊔ sono spesso indicati anche come infimum/meet e supremum/join. L’insieme di axiomi che ne descrive il comportamento permette di dimostrare proprietà fondamentali quali la commutatività e l’associatività di entrambe le operazioni. È possibile utilizzare tecniche di dimostrazione formale per queste proprietà, evitando ambiguità e facilitando la costruzione di prove complesse.

Inoltre, vi sono le leggi di assorbimento che collegano in modo profondo le due operazioni: x ⊓ (x ⊔ y) = x e x ⊔ (x ⊓ y) = x. Queste identità sono essenziali per comprendere l’interazione tra infimo e supremo e caratterizzano ulteriormente la struttura di un reticolo.

Un ulteriore livello di complessità è rappresentato dai reticoli distributivi, che soddisfano le leggi distributive tra infimo e supremo, analoghe a quelle dell’algebra classica. Non tutti i reticoli sono distributivi, e la costruzione di esempi di reticoli non distributivi con pochi elementi è un esercizio fondamentale per comprendere la varietà delle strutture possibili.

È importante notare che in un reticolo, la presenza di una delle due leggi distributive implica automaticamente l’altra, a condizione che siano soddisfatte le proprietà di commutatività di inf e sup. Questo fatto sottolinea la profonda interconnessione tra le proprietà strutturali e permette di ridurre il numero di assiomi necessari per la definizione.

La combinazione di strutture algebriche con ordini parziali dà origine a entità più sofisticate, come i anelli ordinati strettamente, dove l’operazione d’ordine è compatibile con le operazioni di somma e prodotto. Tali strutture sono fondamentali per sviluppi avanzati in algebra e analisi, permettendo di estendere risultati classici a contesti più generali.

Nel comprendere queste strutture è essenziale considerare non solo le definizioni formali, ma anche le loro interpretazioni e applicazioni nei vari ambiti matematici. La formalizzazione in Lean, con i suoi strumenti come le tattiche apply, calc e trans, offre un ambiente ideale per esplorare in modo rigoroso e guidato le proprietà di queste strutture. Tuttavia, occorre prestare attenzione alla scelta degli elementi intermedi nelle dimostrazioni, per evitare ambiguità e facilitare la costruzione logica.

La padronanza di queste nozioni apre la strada alla comprensione di teoremi più complessi e alla manipolazione di strutture matematiche avanzate. È cruciale comprendere che il linguaggio formale e le dimostrazioni meccanizzate non sono fine a se stesse, ma strumenti potenti per la verifica della correttezza e per l’approfondimento della teoria.