Próbuję zrozumieć logikę liniową, aby lepiej zrozumieć systemy typu liniowego. Jednak kiedy czytam zasady, nie rozumiem za tym intuicji, jak to zrobiłem w logice modalnej - oznacza, że A jest wymagane, ponieważ w ramkach Kripke A jest wymagane dla każdego osiągalnego świata [ ◊ A to A jest możliwe mutatis mutandis]. Ale nie mogę znaleźć żadnego intuicyjnego wyjaśnienia dualizmu i tego, które pary koniunkcji / rozłączności (jeśli występują) odpowiadają ∧ i ∨ .
lo.logic
type-theory
linear-logic
Maciej Piechotka
źródło
źródło
Odpowiedzi:
Nie jestem pewien, czy to pytanie jest idealne dla CSTheory, ale biorąc pod uwagę, że już zbiera opinie, oto odpowiedź, którą ktoś mógłby udzielić, gdyby pytanie zostało opublikowane na cs.stackexchange .
Aby zrozumieć pojęcie dualności logiki liniowej , która rozdziela koniunkcję i dysjunkcję znacznie dalej niż jesteśmy przyzwyczajeni w konwencjonalnej logice, zalecam nie myśleć o logice liniowej pod względem zasobów (chociaż jest to ważna lektura ). Zamiast tego pomyśl o liniowych formułach logicznych A jako procesach komunikujących się w porcie / nazwie / kanale. Zgodnie z moją najlepszą wiedzą interpretacja ta została rozwinięta w pierwszej części (1), ale nawiązuje do niej już oryginalna praca Girarda. Jako obraz:(⋅)⊥ A
W tym odczytu jest proces, który komunikuje się z .A⊥⅋B⊥ A⊗B
Odpowiednik dysocjacji w logice liniowej może otrzymać podobny odczyt teoretyczny. Formuła
powinny być również postrzegane jako dwa równoległe procesy i , ale zamiast aktywnie wysyłać wiadomości, czekają, aż środowisko zdecyduje, które uruchomić. Więc siedzi tam, czekając na jego kanale na trochę informacji, które decyduje czy powinny działać jako lub . Jest to „równoległa” wersja w sekwencyjnych językach programowania. Podwójny z jestA B A&B A&B A B if/then/else (A&B)⊥ A&B
może być postrzegany jako proces wysyłający 1 bit informacji do , a mianowicie: „kontynuuj jako ” lub „kontynuuj jako ”. Jest to podobne do tego w oceniany na podczas oceniany na , z tym że wybór między i jest teraz dokonywany przez środowisko.B i F T R U e T H E N P e l a e P P I f f danego ł s e t h e n P e l s e Q Q A BA&B A B if true then P else Q P if false then P else Q Q A B
Operator! Ma również interpretację teoretyczną: jeśli jest odczytywany jako proces, to można odczytać jako uruchamiający nieskończenie wiele procesów równolegle.! A AW tym odczytu axioms liniowych logicznych się proste „przewody”, które przekazywania komunikatów z procesów do procesów . Ta interpretacja aksjomatów znajduje się już w siatkach dowodowych Girarda (3).A ⊥ AA⊢A A⊥ A
Ta interpretacja teoretyczna procesu miała wpływ i spowodowała wiele dalszych prac, takich jak np. (2) dla typów sesji. Niemniej jednak istnieją pewne przypadki krawędzi, które sprawiają, że jest to trochę niezręczne, i zgodnie z moją wiedzą nie zostało stworzone, aby działało idealnie dla pełnej logiki liniowej nawet w 2017 roku.
1. S. Abramsky, Interpretacje obliczeniowe logiki liniowej .
2. P. Wadler, Propozycje jako sesje .
3. Wikipedia, siatka próbna .
źródło