Предположим, у нас есть простой язык, который состоит из терминов:
- если являются терминами, то
Теперь предположим следующие логические правила оценки:
Предположим, мы также добавили следующее веселое правило:
Для этого простого языка с данными правилами оценки я хочу доказать следующее:
Теорема: если и то существует некоторый член такой, что и .r → t u s → u t → u
Я доказываю это индукцией по структуре . Вот мое доказательство до сих пор, все сработало хорошо, но я застрял в самом последнем случае. Кажется, что индукции на структуру не достаточно, кто-нибудь может мне помочь?р
Доказательство. Индукцией по мы отделим все формы, которые может принимать :р
- - это константа, доказывать нечего, так как нормальная форма ничего не оценивает.
- r 2 r 3 s = t r → s s = r 2 t = r ′ 2 r 3 r 2 → r ′ 2 u = r ′ 2 если истина, то иначе . (а) оба вывода были сделаны с помощью правила E-IfTrue. В этом случае , поэтому доказывать нечего. (б) один вывод был сделан с помощью правила E-IfTrue, другой - с помощью правила E-Funny. Предположим, что было сделано с E-IfTrue, другой случай эквивалентно доказан. Теперь мы знаем, что . Мы также знаем, что если true, то иначе и что существует некоторый дифференциал (предпосылка). Если мы теперь выберем , мы завершаем дело.
- r 2 r 3 если ложь, то иначе . Эквивалентно доказано как выше.
- r 1 r 2 r 3 r 1 ≠ s = r ′ 1 r 2 r 3 t = r ″ 1 r 2 r 3 r 1 → r ′ 1 r 1 → r ″ 1 r ‴ 1 r ′ 1 → r ‴ 1 если то иначе с true или false. (а) оба вывода были сделаны с правилом E-If. Теперь мы знаем, что если то иначе и если то иначе . Мы также знаем, что существуют дифференциации и (предпосылки). Теперь мы можем использовать гипотезу индукции, чтобы сказать, что существует некоторый термин такой чтои . Теперь мы завершим случай, сказав if тогда иначе и заметив, что и по правилу E-If. (б) один вывод был произведен по правилу E-If, а другой - по правилу E-Funny.
В последнем случае, когда один вывод был сделан E-If, а другой - E-Funny, это случай, которого я пропускаю ... Кажется, я не могу использовать гипотезы.
Помощь будет высоко ценится.
Ответы:
Хорошо, давайте рассмотрим случай, когда , s было получено путем применения правила E-If, а t было получено путем применения правила E-Funny: So s = i fr=ift1thent2elset3 s t где t 1 → t ′ 1 и t = i fs=ift′1thent2elset3 t1→t′1 где t 2 → t ′ 2 .t=ift1thent′2elset3 t2→t′2
которого мы ищем является у = я пu . s → u следует из правила E-Funny, а t → u следует из правила E-If.u=ift′1thent′2elset3 s→u t→u
источник
Небольшая терминология может помочь, если вы хотите посмотреть это: эти правила переписывают правила , они не имеют ничего общего с системами типов¹. Свойство, которое вы пытаетесь доказать, называется слиянием ; более конкретно, это сильное слияние : если термин может быть сокращен различными способами за один шаг, они могут сходиться обратно на следующем шаге. В общем случае слияние допускает любое количество шагов, а не один: если и r → ∗ t, то существует u такой, что s → ∗ u и t → ∗ ur→∗s r→∗t u s→∗u t→∗u - если термин может быть сокращен по-разному, независимо от того, насколько далеко они разошлись, они могут в конечном итоге вернуться назад.
Лучший способ доказать свойство таких индуктивно определенных правил переписывания - это индукция по структуре производного сокращения, а не по структуре сокращенного члена. Здесь либо работает, потому что правила следуют структуре левого термина, но рассуждение о правилах проще. Вместо того, чтобы углубляться в термин, вы берете все пары правил и смотрите, какой термин может быть левой стороной для обоих. В этом примере вы получите те же случаи в конце, но немного быстрее.
В случае, если это доставляет вам неприятности, одна сторона уменьшает часть «если», а другая сторона уменьшает часть «тогда». Там нет перекрытия между двумя частями, которые изменяются ( в [E-If], t 2 в [E-IfFunny]), и нет никаких ограничений на t 2 в [E-If] или на t 1 в [E- IfFunny]. Поэтому , когда у вас есть термин , к которому оба правила применения - которые должны иметь вид я еt1 t2 t2 t1 , вы можете применить правила в любом порядке:ifr1thenr2elser3
Sometimes Иногда вы будете видеть типы и переписывать вместе, но по своей сути они являются ортогональными понятиями.
источник