Я пытаюсь понять линейную логику, чтобы лучше понять системы линейного типа. Однако, когда я прочитал правила, я не в состоянии получить интуицию позади него , как я сделал в модальной логике - означает требуются , как в Крипке кадров требуются для каждого достижимого мира [ ◊ является возможно с учетом необходимыми изменения]. Но я не могу найти какое-либо интуитивное объяснение двойственности и того, какая из пар соединения / дизъюнкции (если есть) соответствует ∧ и ∨ .
lo.logic
type-theory
linear-logic
Мацей Печотка
источник
источник
Ответы:
Я не уверен, что этот вопрос идеально подходит для CSTheory, но, учитывая, что он уже собирает голоса, вот ответ, который кто-то мог бы дать, если бы этот вопрос был размещен на cs.stackexchange .
Чтобы понять понятие дуальности линейной логики , которое разделяет конъюнкцию и дизъюнкцию гораздо дальше, чем мы привыкли в обычной логике, я рекомендую не рассматривать линейную логику с точки зрения ресурсов (хотя это важное чтение ). Вместо этого думайте о линейных логических формулах A как о процессах, которые взаимодействуют в порту / имени / канале. Насколько мне известно, эта интерпретация была впервые изложена в (1), но уже упоминалась в оригинальной работе Жирара. Как изображение:( ⋅ )⊥ A
(Я не знаю , как правильно центр изображений здесь.) Линейное соединение ⊗ B интерпретируются как запущенные процессы A и B в параллели . Процесс ⊗ B передает пары ( , б ) на своем порте, где происходит от A и B является B связи «с.A ⊗ B A В A ⊗ B ( а , б ) a A б В
Дуализация (что является отрицанием линейной логики) переключает вход и выход. Следовательно, сопряженное A ⊗ B является( . )⊥ A ⊗ B
В этом чтение представляет собой процесс , который взаимодействует с A ⊗ B .A⊥⅋ B⊥ A ⊗ B
Линейный логический эквивалент дизъюнкции может быть дан аналогично теоретико-процессуальному чтению. Формула
также следует рассматривать как два процесса и B параллельно, но вместо того, чтобы активно отправлять сообщения, они ждут, когда среда решит, какой запускать. Так & B сидит там, ожидая ее русло немного информации , которая принимает решения , если & B должны работать как A или B . Это «параллельная» версия i / f / t h e n / e l s e на языках последовательного программирования. Двойной ( A & B ) ⊥A В A & B A & B A В я ф/ Тчен / елые ( A & B )⊥ из & B являетсяA & B
может рассматриваться как процесс отправки 1 бита информации в , а именно: «продолжить как A » или «продолжить как B ». Это похоже на в I е т р у й т ч е н Р х л ы х Q , вычисляемые Р , а я е е L сек х т ч е н Р х л ы х Q , вычисляемая Q , за исключением того, что при выборе междуA & B A В я ф т т у й т ч е н Р е л ы е Q п я ф еL сек е т ч е н Р е л ы е Q Q и Б теперь сделаны окружающей средой.A В
Оператор! Также имеет теоретико-процессную интерпретацию: если читается как процесс, то ! A можно читать как выполняющий бесконечно много процессов A параллельно.При этом чтении аксиом ⊢ A линейных логики становится простыми проводами «» , которые пересылают сообщения от процессов A ⊥ к процессам А . Эта интерпретация аксиом уже есть в сетках доказательства Жирара (3).A ⊢ A A⊥ A
Эта теоретико-процессуальная интерпретация оказала влияние и породила много последующей работы, такой как, например, (2) для типов сеансов. Тем не менее, есть некоторые крайние случаи, которые делают его немного неловким, и, насколько мне известно, он не был создан для идеальной работы для полной линейной логики даже в 2017 году.
1. Абрамский С. Вычислительные интерпретации линейной логики .
2. П. Вадлер, Предложения как сеансы .
3. Википедия, Сеть доказательств .
источник