Suponha que temos uma linguagem simples que consiste nos termos:
- se são termos, o mesmo acontece com
Agora assuma as seguintes regras de avaliação lógica:
Suponha que também adicionemos a seguinte regra descolada:
Para esta linguagem simples, com as regras de avaliação fornecidas, desejo provar o seguinte:
Teorema: Se e , existe algum termo tal que e .
Estou provando isso por indução na estrutura de . Aqui está a minha prova até agora, tudo funcionou bem, mas estou preso no último caso. Parece que a indução na estrutura de não é suficiente, alguém pode me ajudar?
Prova. Por indução em , separaremos todas as formas que pode assumir:
- é uma constante, nada a provar, pois uma forma normal não avalia nada.
- se true então else . (a) ambas as derivações foram feitas com a regra E-IfTrue. Nesse caso, , então não há nada a provar. (b) uma derivação foi feita com a regra E-IfTrue, a outra com a regra E-Funny. Suponha que foi feito com o E-IfTrue, o outro caso é comprovado de forma equivalente. Agora sabemos que . Também sabemos que se verdadeiro, então else e que existe alguma derivação (a premissa). Se agora escolhermos , concluiremos o caso.
- r 2 r 3 se falso, então else . Equivalentemente comprovado como acima.
- 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 r ″ 1 → r ‴ 1 u = ‴ se então else com verdadeiro ou falso. (a) ambas as derivações foram feitas com a regra E-If. Agora sabemos que se então else e se então else . Sabemos também que existe deriviations e (nas instalações). Agora podemos usar a hipótese de indução para dizer que existe algum termo tal quee . Agora concluímos o caso dizendo se então else e percebendo que e pela regra E-If. (b) uma derivação foi feita pela regra E-If e uma pela regra E-Funny. R2R3s→ut→u
Neste último caso, em que uma derivação foi feita pelo E-If e uma pelo E-Funny é o caso que estou perdendo ... Parece que não consigo usar as hipóteses.
A ajuda será muito apreciada.