Calcolo Quantico
Un'area molto interessante è l'applicazione di varie categorie monoidali al calcolo quantistico. Alcuni potrebbero sostenere che anche questa è fisica, ma il lavoro è svolto da persone nei dipartimenti di informatica. Un primo articolo in quest'area è una semantica categorica dei protocolli quantistici di Samson Abramsky e Bob Coecke; molti lavori recenti di Abramsky e Coecke e altri continuano a lavorare in questa direzione.
In questo corpus di lavori i protocolli quantistici sono assiomatizzati come (certi tipi di) categorie chiuse compatte. Tali categorie hanno un bellissimo linguaggio grafico in termini di diagrammi a stringa (e a nastro). Le equazioni nella categoria corrispondono a determinati movimenti delle stringhe, come raddrizzare una corda aggrovigliata ma non annodata, che a sua volta corrisponde a qualcosa di significativo nella meccanica quantistica, come un teletrasporto quantistico.
L'approccio categorico offre una visione logica di alto livello su ciò che in genere comporta calcoli di livello molto basso.
Teoria dei sistemi
Coalgebra è stata utilizzata come framework generale per modellare sistemi (flussi, automi, sistemi di transizione, sistemi probabilistici). La sua teoria è radicata nella teoria delle categorie, essendo basata sulla nozione di -coalgebra , dove
è un funzione che descrive la struttura del sistema di transizione. Pertanto, il tipo di sistema cambia con il funzione di base, ma gran parte della teoria, come la nozione di bisimulazione, è applicabile a tutti i funzioni. La teoria delle categorie consente anche la costruzione modulare di logiche modali
per il ragionamento su sistemi descritti come coalgebre.FF
Trasformazioni grafiche
Le trasformazioni grafiche possono essere espresse abbastanza bene nel linguaggio della teoria delle categorie. Questo ha trovato applicazione, ad esempio, nella trasformazione dei modelli (come nei modelli UML) e in altri formalismi di modellazione visiva. L'approccio si svolge nella categoria dei grafici e degli omomorfismi grafici. In primo luogo, un pushout può essere visto come una costruzione di incollaggio: dati due grafici . Un grafico e due morfismi ed
indicano le parti che i due grafici hanno in comune. Il pushout unifica queste parti, aggiungendo le parti rimanenti di e , in effetti, incollando e
insieme Psol1, G2Pe1: P→ G1e2: P→ G2sol1sol2sol1sol2P .
Un doppio pushout viene utilizzato per descrivere una trasformazione del grafico. La regola è rappresentata da una tupla , dove indica la precondizione della regola, indica la condizione post della regola e indica la parte del grafico a cui applicare la regola. Esistono mappe da e , una delle quali verrà utilizzata per abbinare una parte del grafico originale, l'altra per creare il grafico risultante. descrive la parte del grafico da eliminare. descrive la parte da creare. Una mappa da
in un contesto( L , K, R )LRKl : K→ Lr : K→ RL ∖ KR ∖ KdKgrafico deve essere fornito e la pushout di e mappa deve uguagliare il grafico di interesse . Il pushout di e
dà quindi il risultato dell'esecuzione della trasformazione.DdlsoldK
Linguaggi di programmazione (tramite MathOverflow)
Ci sono state molte applicazioni della teoria delle categorie nella progettazione dei linguaggi di programmazione e della teoria dei linguaggi di programmazione. Ampie risposte sono disponibili su MathOverflow. https://mathoverflow.net/questions/3721/programming-languages-based-on-category-theory )
https://mathoverflow.net/questions/4235/relating-category-theory-to-programming-language-theory .
Bigraphs - Calcoli di processo
Infine, ci sono i bigraph di Milner , un quadro generale per la descrizione e il ragionamento sui sistemi di agenti interagenti. Può essere visto come un quadro generale per il ragionamento sulle algebre di processo e le loro teorie strutturali e comportamentali. L'approccio si basa anche su pushout.