Lineaarinen logiikka ( englanniksi Linear Logic on alirakennelogiikka, jonka Jean - Yves Girard ehdotti klassisen ja intuitionistisen logiikan jalostukseksi , joka yhdistää edellisen kaksinaisuuden jälkimmäisen moniin rakentaviin ominaisuuksiin [1] , esiteltiin ja käytetään loogiseen päättelyyn, joka ottaa huomioon jonkin resurssin kulutuksen [2] ] . Vaikka logiikkaa on tutkittu myös sellaisenaan, lineaarisen logiikan ideat löytävät sovelluksia erilaisissa resurssiintensiivisissä sovelluksissa, mukaan lukien verkkoprotokollien verifiointi , ohjelmointikielet , peliteoria ( pelin semantiikka ) [2] ja kvanttifysiikka (koska lineaarista logiikkaa voidaan pitää kvanttiinformaatioteorian logiikkana ) [ 3] , kielitiede [4] .
Klassisen lineaarisen logiikan kieli ( englanniksi classic linear logic, CLL ) voidaan kuvata Backus-Naur-muodossa :
A ::= p ∣ p ⊥ | A ⊗ A ∣ A ⊕ A | A & A ∣ A ⅋ A | 1 ∣ 0 ∣ ⊤ ∣ ⊥ | ! A∣ ? AMissä
Symboli | Merkitys |
---|---|
⊗ | kertova konjunktio ("tensori", eng. "tensor" ) |
⊕ | additiivinen disjunktio |
& | additiivinen konjunktio |
⅋ | kertova disjunktio ("par", englanniksi "par" ) |
! | modaalisuus " tietenkin " |
? | modaali " miksi ei " |
yksi | yksikkö ⊗ |
0 | nolla arvolle ⊕ |
⊤ | tyhjä arvolle & |
⊥ | yksikkö ⅋ |
Binäärikonnektiivit ⊗, ⊕, & ja ⅋ ovat assosiatiivisia ja kommutatiivisia .
Jokaisella klassisen lineaarisen logiikan lauseella A on duaali A ⊥ , joka määritellään seuraavasti:
( 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 ⊥ ) |
Lineaarisessa logiikassa (toisin kuin klassisessa logiikassa) tilat käsitellään usein kulutettavina resursseina , joten johdetun tai alkukaavan käyttökertoja voidaan rajoittaa.
Kertova konjunktio ⊗ on samanlainen kuin multiset yhteenlaskuoperaatio ja voi ilmaista resurssien liiton.
Huomaa, että (.) ⊥ on involuutio , eli A ⊥⊥ = A kaikille lauseille. A ⊥ kutsutaan myös A :n lineaariseksi negaatioksi .
Lineaarisella implikaatiolla on suuri rooli lineaarisessa logiikassa, vaikka se ei sisälly konnektiiviseen kielioppiin. Voidaan ilmaista lineaarisella negaatiolla ja multiplikatiivisella disjunktiolla
A ⊸ B := A ⊥ ⅋ B .Nivelsitettä ⊸ kutsutaan joskus "tikkariksi" ( eng. lollipop ) sen ominaismuodon vuoksi.
Lineaarista implikaatiota voidaan käyttää tuotoksessa, kun sen vasemmalla puolella on resursseja ja tuloksena on resurssit oikeasta lineaarisesta implikaatiosta. Tämä muunnos määrittelee lineaarifunktion , josta syntyi termi "lineaarinen logiikka" [5] .
Modaliteetti "tietenkin" (!) antaa sinun määrittää resurssin ehtymättömäksi.
Esimerkki. Olkoon D dollari ja C suklaapatukka. Tällöin suklaapatukan ostoa voidaan merkitä D ⊸ C . Osto voidaan ilmaista seuraavasti: D ⊗ !( D ⊸ C ) ⊢ C⊗!( D ⊸ C ) , eli dollari ja mahdollisuus ostaa sen mukana suklaapatukka johtavat suklaapatukkaan, ja mahdollisuus ostaa suklaapatukka jää [5] .
Toisin kuin klassinen ja intuitionistinen logiikka , lineaarisessa logiikassa on kahdenlaisia konjunktioita, jotka mahdollistavat resurssien rajallisuuden ilmaisemisen. Lisätään edelliseen esimerkkiin mahdollisuus ostaa tikkari L. Mahdollisuus ostaa suklaapatukka tai tikkari voidaan ilmaista käyttämällä additiivinen konjunktio [6] :
D ⊸ L & C
Tietysti voit valita vain yhden. Kertova konjunktio tarkoittaa molempien resurssien läsnäoloa. Joten kahdella dollarilla voit ostaa sekä suklaapatukan että tikkarin:
D ⊗ D ⊸ L ⊗ C
Multiplikatiivinen disjunktio A ⅋ B voidaan ymmärtää "jos ei A, niin B", ja sen kautta ilmaistulla lineaarisella implikaatiolla A ⊸ B on merkitys "voidaanko B johtaa A:sta tasan kerran?" [6]
Additiivinen disjunktio A ⊕ B tarkoittaa sekä A:n että B:n mahdollisuutta, mutta valinta ei ole sinun [6] . Esimerkiksi win-win-arpajaiset, joissa voit voittaa tikkarin tai suklaapatukan, voidaan ilmaista käyttämällä additiivista disjunktiota:
D ⊸ L ⊕ C
Täyden lineaarisen logiikan lisäksi sen fragmentteja käytetään [7] :
Tämä luettelo ei tietenkään tyhjennä kaikkia mahdollisia fragmentteja. Esimerkiksi on olemassa useita Horn-fragmentteja, jotka käyttävät lineaarista implikaatiota (samanlainen kuin Horn-lauseet ) yhdistettynä erilaisten konnektiivien kanssa. [kahdeksan]
Logiikkafragmentit kiinnostavat tutkijoita niiden laskennallisen tulkinnan monimutkaisuuden vuoksi . Erityisesti M.I. Kanovich osoitti, että täydellinen MLL-fragmentti on NP-täydellinen ja lineaarisen logiikan ⊕- sarvifragmentti heikennyssäännöllä( englanniksi heikennyssääntö ) PSPACE-full . Tämän voidaan tulkita tarkoittavan, että resurssien käytön hallinta on vaikea tehtävä, jopa yksinkertaisimmissa tapauksissa. [kahdeksan]
Yksi tapa määritellä lineaarinen logiikka on sekventiolaskenta . Kirjaimet Γ ja ∆ tarkoittavat lauseluetteloita , ja niitä kutsutaan konteksteiksi . Sarjassa konteksti sijoitetaan ⊢:n ("pitäisi") vasemmalle ja oikealle puolelle, esimerkiksi: . Alla on MLL:n laskenta kaksisuuntaisessa muodossa [7] .
Rakenteellinen sääntö - permutaatio. Vasen ja oikea päättelysäännöt on annettu vastaavasti:
Identiteetti ja osasto :
Kertova konjunktio:
Multiplikatiivinen disjunktio:
Kielteisyys:
Samanlaiset säännöt voidaan määritellä täydelliselle lineaarilogiikalle, sen additiivisille ja eksponentiaaleille. Huomaa, että lineaariseen logiikkaan ei ole lisätty rakenteellisia heikentämisen ja vähentämisen sääntöjä , koska yleisessä tapauksessa lauseet (ja niiden kopiot) eivät voi ilmaantua ja kadota satunnaisesti sekvensseissä, kuten klassisessa logiikassa on tapana.
Logiikka | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofia • Semantiikka • Syntaksi • Historia | |||||||||
Logiikkaryhmät |
| ||||||||
Komponentit |
| ||||||||
Luettelo loogisista symboleista |