Supongamos que tenemos un lenguaje simple que consiste en los términos:
- si son términos, entonces también lo es i f
Ahora asuma las siguientes reglas de evaluación lógica:
Supongamos que también agregamos la siguiente regla funky:
Para este lenguaje simple con las reglas de evaluación dadas, deseo demostrar lo siguiente:
Teorema: Si y r → t entonces hay algún término u tal que s → T y T → T .
Estoy probando esto por inducción en la estructura de . Aquí está mi prueba hasta ahora, todo funcionó bien, pero estoy atrapado en el último caso. Parece que la inducción en la estructura de r no es suficiente, ¿alguien puede ayudarme?
Prueba. Por inducción en , separaremos todas las formas que r puede tomar:
- es una constante, nada que demostrar ya que una forma normal no evalúa nada.
- si es verdadero, entonces r 2 más r 3 . (a) ambas derivaciones se realizaron con la regla E-IfTrue. En este caso s = t , entonces no hay nada que probar. (b) una derivación se realizó con la regla E-IfTrue, la otra con la regla E-Funny. Suponga que r → s se realizó con E-IfTrue, el otro caso se prueba de manera equivalente. Ahora sabemos que s = r 2 . También sabemos que t = si es verdadero, entonces r ′ 2 más r 3 y que existe alguna derivación r 2 → (la premisa). Si ahora elegimosu=r ′ 2 , concluimos el caso.
- si es falso entonces r 2 más r 3 . Equivalentemente probado como arriba.
- si r 1 entonces r 2 más r 3 con r 1 ≠ verdadero o falso. (a) ambas derivaciones se realizaron con la regla E-If. Ahora sabemos que s = si r ′ 1 entonces r 2 más r 3 y t = si r ″ 1 entonces r 2 más r 3 . También sabemos que existen derivaciones r 1 → r ′ 1y (las premisas). Ahora podemos usar la hipótesis de inducción para decir que existe algún término r ‴ 1 tal que r ′ 1 → r ‴ 1 y r ″ 1 → r ‴ 1 . Ahora concluimos el caso diciendo u = si r ‴ 1 entonces r 2 más r 3 y notando que s → u y t →por la regla E-If. (b) una derivación fue realizada por la regla E-If y otra por la regla E-Funny.
Este último caso, donde una derivación fue realizada por E-If y otra por E-Funny es el caso que me falta ... Parece que no puedo usar las hipótesis.
Ayuda será muy apreciada.
Respuestas:
Okay, so let's consider the case thatr=ift1thent2elset3 , s has been derived by applying the E-If rule and t has been derived by applying the E-Funny rule: So s=ift′1thent2elset3 where t1→t′1 and t=ift1thent′2elset3 where t2→t′2 .
Theu we're looking for is u=ift′1thent′2elset3 . s→u follows from rule E-Funny and t→u follows from rule E-If.
fuente
A little terminology may help if you want to look this up: these rules are rewriting rules, they have nothing to do with type systems¹. The property you're trying to prove is called confluence; more specifically, it's strong confluence: if a term can be reduced in different ways at one step, they can converge back at the next step. In general, confluence allows there to be any number of steps and not just one: ifr→∗s and r→∗t then there is u such that s→∗u and t→∗u — if a term can be reduced in different ways, no matter how far they've diverged, they can eventually converge back.
The best way to prove a property of such inductively defined rewriting rules is by induction over the structure of the derivation of the reduction, rather than the structure of the reduced term. Here, either works, because the rules follow the structure of the left-hand term, but reasoning on the rules is simpler. Instead of diving into the term, you take all pairs of rules, and see what term could be a left-hand side for both. In this example, you will get the same cases in the end, but a bit faster.
In the case that gives you trouble, one side reduces the “if” part and the other side reduces the “then” part. There's no overlap between the two parts that change (t1 in [E-If], t2 in [E-IfFunny]), and there's no constraint on t2 in [E-If] or on t1 in [E-IfFunny]. So when you have a term to which both rules apply — which must be of the form ifr1thenr2elser3 , you can choose to apply the rules in either order:
¹ You'll sometimes see types and rewriting together, but at their core they're orthogonal concepts.
fuente