Logica liniară ( logica liniară engleză este o logică substructurală, propus de Jean -Yves Girard ca o rafinare a logicii clasice și intuiționiste , combinând dualitatea primei cu multe proprietăți constructive ale celei din urmă [1] , introdus și folosit pentru raționamentul logic care ține cont de consumul unei anumite resurse [2] ] . Deși logica a fost, de asemenea, studiată în sine, ideile logicii liniare își găsesc aplicații într-o varietate de aplicații mari consumatoare de resurse, inclusiv verificarea protocolului de rețea , limbaje de programare , teoria jocurilor ( semantica jocului ) [2] și fizica cuantică (pentru că logica liniară poate fi considerată ca logica teoriei informației cuantice ) [3] , lingvistică [4] .
Limbajul logicii liniare clasice ( logica liniară clasică engleză , CLL ) poate fi descris în forma Backus-Naur :
A ::= p ∣ p ⊥ | A ⊗ A ∣ A ⊕ A | A & A ∣ A ⅋ A | 1 ∣ 0 ∣ ⊤ ∣ ⊥ | ! A∣ ? AUnde
Simbol | Sens |
---|---|
⊗ | conjuncție multiplicativă („tensor”, ing. „tensor” ) |
⊕ | disjuncție aditivă |
& | conjuncție aditivă |
⅋ | disjuncție multiplicativă ("par", engleză "par" ) |
! | modalitate " desigur " |
? | modalitatea "de ce nu " |
unu | unitate pentru ⊗ |
0 | zero pentru ⊕ |
⊤ | nul pentru & |
⊥ | unitate pentru ⅋ |
Conectivele binare ⊗, ⊕, & și ⅋ sunt asociative și comutative .
Fiecare afirmație A din logica liniară clasică are un dual A ⊥ definit după cum urmează:
( p ) ⊥ = p ⊥ | ( p ⊥ ) ⊥ = p | ||||
( A ⊗ B ) ⊥ = A ⊥ ⅋ B ⊥ | ( A ⅋ B ) ⊥ = A ⊥ ⊗ B ⊥ | ||||
( A ⊕ B ) ⊥ = A ⊥ & B ⊥ | ( A & B ) ⊥ = A ⊥ ⊕ B ⊥ | ||||
(1) ⊥ = ⊥ | (⊥) ⊥ = 1 | ||||
(0) ⊥ = ⊤ | (⊤) ⊥ = 0 | ||||
(! A ) ⊥ = ?( A ⊥ ) | (? A ) ⊥ = !( A ⊥ ) |
În logica liniară (spre deosebire de logica clasică), premisele sunt adesea tratate ca resurse consumabile , astfel încât formula derivată sau inițială poate fi limitată în numărul de utilizări.
Conjuncția multiplicativă ⊗ este similară operației de adunare multimulți și poate exprima uniunea resurselor.
Rețineți că (.) ⊥ este o involuție , adică A ⊥⊥ = A pentru toate afirmațiile. A ⊥ se mai numește și negația liniară a lui A .
Implicația liniară joacă un rol important în logica liniară, deși nu este inclusă în gramatica conjunctivă. Poate fi exprimat în termeni de negație liniară și disjuncție multiplicativă
A ⊸ B := A ⊥ ⅋ B .Ligamentul ⊸ este uneori numit „acadea” ( ing. acadea ) din cauza formei sale caracteristice.
O implicație liniară poate fi utilizată în ieșire atunci când există resurse pe partea stângă, iar rezultatul sunt resursele din implicația liniară dreaptă. Această transformare definește o funcție liniară , care a dat naștere termenului de „logică liniară” [5] .
Modalitatea „desigur” (!) vă permite să desemnați o resursă ca fiind inepuizabilă.
Exemplu. Fie D un dolar și C o baton de ciocolată. Apoi achiziționarea unui baton de ciocolată poate fi notat cu D ⊸ C . Achiziția poate fi exprimată astfel: D ⊗ !( D ⊸ C ) ⊢ C⊗!( D ⊸ C ) , adică dolarul și capacitatea de a cumpăra o baton de ciocolată cu el duc la o baton de ciocolată, iar oportunitatea de a cumpăra un baton de ciocolată rămâne [5] .
Spre deosebire de logica clasică și intuiționistă , logica liniară are două tipuri de conjuncții, ceea ce permite limitarea resurselor să fie exprimată. Să adăugăm la exemplul anterior posibilitatea de a cumpăra o acadea L. Posibilitatea de a cumpăra o ciocolată sau o acadea poate fi exprimată folosind o conjuncție aditivă [6] :
D ⊸ L & C
Desigur, puteți alege doar unul. O conjuncție multiplicativă denotă prezența ambelor resurse. Deci, pentru doi dolari puteți cumpăra atât un baton de ciocolată, cât și o acadea:
D ⊗ D ⊸ L ⊗ C
Disjuncția multiplicativă A ⅋ B poate fi înțeleasă ca „dacă nu A, atunci B”, iar implicația liniară A ⊸ B exprimată prin ea are semnificația „B poate fi dedus din A exact o dată?” [6]
Disjuncția aditivă A ⊕ B denotă posibilitatea atât a lui A cât și a lui B, dar alegerea nu este a ta [6] . De exemplu, o loterie câștig-câștig în care puteți câștiga o acadea sau un baton de ciocolată poate fi exprimată folosind disjuncția aditivă:
D ⊸ L ⊕ C
Pe lângă logica liniară completă, fragmentele sale sunt folosite [7] :
Desigur, această listă nu epuizează toate fragmentele posibile. De exemplu, există diverse fragmente Horn care folosesc implicația liniară (similar cu clauzele Horn ) în combinație cu diverse conjunctive. [opt]
Fragmente de logică sunt de interes pentru cercetători în ceea ce privește complexitatea interpretării lor computaționale. În special, M.I. Kanovich a demonstrat că un fragment MLL complet este NP-complet și un fragment ⊕-Horn al unei logici liniare cu o regulă de slăbire( regulă de slăbire engleză ) PSPACE-full . Acest lucru poate fi interpretat ca însemnând că gestionarea utilizării resurselor este o sarcină dificilă, chiar și în cele mai simple cazuri. [opt]
O modalitate de a defini logica liniară este calculul secvenţial . Literele Γ și ∆ reprezintă liste de propoziții și sunt numite contexte . Într-o secvență, contextul este plasat la stânga și la dreapta lui ⊢ ("ar trebui"), de exemplu: . Mai jos este calculul succesiv pentru MLL în format bidirecțional [7] .
Regulă structurală – permutare. Regulile de inferență din stânga și din dreapta sunt date, respectiv:
Identitate și secțiune :
Conjuncția multiplicativă:
Disjuncția multiplicativă:
Negare:
Reguli similare pot fi definite pentru logica liniară completă, aditivii și exponențialele acesteia. Rețineți că regulile structurale de slăbire și reducere nu au fost adăugate la logica liniară , deoarece, în cazul general, enunțurile (și copiile lor) nu pot apărea și dispărea aleatoriu în secvențe, așa cum este obișnuit în logica clasică.
Logici | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofie • Semantică • Sintaxă • Istorie | |||||||||
Grupuri logice |
| ||||||||
Componente |
| ||||||||
Lista simbolurilor booleene |