Está en la página 1de 112

Practico 1

Conjuntos inductivos

Luis Sierra

Instituto de Computaci
on

11 y 14 de marzo

Luis Sierra (InCo) Pr


actico 1 Curso 2011 1 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, ab, aabb, aaabbb, aaaabbbb, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z }| {
{, ab, aabb, aaabbb, a aaabbb b, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z }| {
{, ab, aabb, a aabb b, aaaabbbb, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z}|{
{, ab, a ab b, aaabbb, aaaabbbb, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, ab, aabb, aaabbb, aaaabbbb, . . .}
Cada nueva palabra incorpora una a al comienzo y una b al final.
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, ab, aabb, aaabbb, aaaabbbb, . . .}
Cada nueva palabra incorpora una a al comienzo y una b al final.

2 Si w S, entonces awb S
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, ab, aabb, aaabbb, aaaabbbb, . . .}
Cada nueva palabra incorpora una a al comienzo y una b al final.
1 S
2 Si w S, entonces awb S
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, a, ab, aba, abab, ababa, ababab, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z }| {
{, a, ab, aba, abab, ababa, ababa b, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z }| {
{, a, ab, aba, abab, abab a, ababab, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z}|{
{, a, ab, aba, aba b, ababa, ababab, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z}|{
{, a, ab, ab a, abab, ababa, ababab, . . .}
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, a, ab, aba, abab, ababa, ababab, . . .}
Cada nueva palabra incorpora una letra al final
1 S
2 Si w S, entonces wa S
3 Si w S, entonces wb S

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, a, ab, aba, abab, ababa, ababab, . . .}
Cada nueva palabra incorpora una letra al final
1 S
2 Si w S, entonces wa S
3 Si w S, entonces wb S
Pero esta es la definicion de {a, b} .

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, a, ab, aba, abab, ababa, ababab, . . .}
Cada nueva palabra incorpora una letra al final
1 S
2 Si w S, entonces wa S
3 Si w S, entonces wb S
Pero esta es la definicion de {a, b} . No queremos que nuestras reglas se
compliquen; es mejor buscar otras regularidades.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z }| {
{, a, ab, aba, abab, ababa, ab abab, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z}|{
{, a, ab, aba, abab, ab aba , ababab, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
z}|{
{, a, ab, aba, ab ab , ababa, ababab, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades
{, a, ab, aba, abab, ababa, ababab, . . .}
Cada nueva palabra incorpora ab al comienzo
1 S
2 aS
3 Si w S, entonces abw S

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

z }| {
{, ab, abab, ababab, ab ababab, . . . , ba, baba, bababa, babababa, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

z }| {
{, ab, abab, ab abab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

z }| {
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, ba bababa, . . .}

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Cada nueva palabra incorpora ab o ba al comienzo


1  S1 1  S2
2 Si w S1 , entonces abw S1 2 Si w S2 , entonces baw S2

Luis Sierra (InCo) Pr


actico 1 Curso 2011 2 / 29
Definiciones inductivas
Dar la definicion inductiva de cada lenguaje
{, ab, aabb, aaabbb, aaaabbbb, . . .}
{, a, ab, aba, abab, ababa, ababab, . . .}
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Buscando regularidades

{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, babababa, . . .}

Cada nueva palabra incorpora ab o ba al comienzo


1  S1 1  S2
2 Si w S1 , entonces abw S1 2 Si w S2 , entonces baw S2
La union como definicion inductiva
1 Si w S1 , entonces w S
2 Si w S2 , entonces w S
Luis Sierra (InCo) Pr
actico 1 Curso 2011 2 / 29
PIP y ERP

Pauta: Prueba usando principios de induccion


1 Establezca claramente el principio de inducci
on adecuado
2 Escriba claramente la propiedad a probar
3 Pruebe todos los casos bases de acuerdo al PIP
4 Pruebe todos los casos inductivos de acuerdo al PIP

Luis Sierra (InCo) Pr


actico 1 Curso 2011 3 / 29
PIP y ERP

Pauta: Prueba usando principios de induccion


1 Establezca claramente el principio de inducci
on adecuado
2 Escriba claramente la propiedad a probar
3 Pruebe todos los casos bases de acuerdo al PIP
4 Pruebe todos los casos inductivos de acuerdo al PIP

Pauta: Definicion usando esquemas de recursion primitivos


1 Establezca claramente la definici
on inductiva del dominio
2 Defina la funcion en los casos base
3 Defina la funcion en los casos inductivos

Luis Sierra (InCo) Pr


actico 1 Curso 2011 3 / 29
Numerales binarios

Definicion inductiva
1 Si b {0, 1}, entonces b B
2 Si b {0, 1} y w B, entonces wb B

Defina las funciones ...


long : B N
eval : B N

eval
long eval(0) := 0
long(b) := 1 eval(1) := 1
long(wb) := 1 + long(w ) eval(w 0) := 2 eval(w )
eval(w 1) := 2 eval(w ) + 1

Luis Sierra (InCo) Pr


actico 1 Curso 2011 4 / 29
Concatenacion


1 Si w 0 , entonces h, w 0 i
2 Si hw , w 0 i y a , entonces haw , w 0 i

Luis Sierra (InCo) Pr


actico 1 Curso 2011 5 / 29
Concatenacion


1 Si w 0 , entonces h, w 0 i
2 Si hw , w 0 i y a , entonces haw , w 0 i

Definicion de concatenacion
append :
append(, w 0 ) := w 0
append(aw , w 0 ) := a append(w , w 0 )

Luis Sierra (InCo) Pr


actico 1 Curso 2011 5 / 29
Concatenacion


1 Si w 0 , entonces h, w 0 i
2 Si hw , w 0 i y a , entonces haw , w 0 i

Definicion de concatenacion
append :
append(, w 0 ) := w 0
append(aw , w 0 ) := a append(w , w 0 )

Demuestre que ...


:: append(, u) = u)
(u
:: append(u, ) = u)
(u
v , w :: append(u, append(v , w )) =
(u,
append(append(u, v ), w ))
Luis Sierra (InCo) Pr
actico 1 Curso 2011 5 / 29
Una prueba trivial

Demuestre que ...


:: append(, u) = u)
(u

Demostracion
Aplicacion inmediata de la definici
on de append.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 6 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ?) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ?) = w
P(w , ) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ?) = w
P(w , ?) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ?) = w
P(w , ?) := append(w , ) = w
P(w ) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva rapida

Demuestre que ...


:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
0 :: P(, w 0 ))
1 (w

, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a

Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w , w 0 ) := append(w , w 0 ?) = w
P(w , ?) := append(w , ) = w
P?(w ) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 7 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
1 P()
2 , w : P(w ) : P(aw ))
(a
Entonces, P se cumple para todos los elementos de

Luis Sierra (InCo) Pr


actico 1 Curso 2011 8 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
1 P()
2 , w : P(w ) : P(aw ))
(a
Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 8 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Establezca claramente el principio de induccion adecuado


Sea P una propiedad sobre los objetos de que cumple
1 P()
2 , w : P(w ) : P(aw ))
(a
Entonces, P se cumple para todos los elementos de

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Pauta: Determinar el PIP adecuado


Sea A un lenguaje (inductivo). Para probar una propiedad de la forma
A :: P(a)) el mejor candidato a investigar es el PIP para A. Pero
(a
podra ser algun otro.
Luis Sierra (InCo) Pr
actico 1 Curso 2011 8 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 9 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso base: P()


Tenemos que probar:
append(, ) = .
Inmediato, por la
definicion de append.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 9 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


Tenemos que probar:
Caso base: P() append(w , ) = w = append(aw , ) = aw .
Tenemos que probar:
append(, ) = .
Inmediato, por la
definicion de append.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 9 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


Tenemos que probar:
Caso base: P() append(w , ) = w = append(aw , ) = aw .
Tenemos que probar:
append(, ) = . append(aw , ) = aw
Inmediato, por la = (Def. append)
definicion de append. a append(w , ) = aw
= (Igualdad entre palabras)
append(w , ) = w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 9 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


Caso base: P() TI
= (Def. append)
Inmediato, por la
a append(w , ) = aw
definicion de append.
= (Igualdad entre palabras)
HI

En las transparencias ...


... no escribiremos siempre todo el texto necesario. Hay fragmentos que
los docentes omitiremos.
Luis Sierra (InCo) Pr
actico 1 Curso 2011 9 / 29
Una prueba inductiva simple:
:: append(u, ) = u)
(u

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


Caso base: P() TI
= (Def. append)
Inmediato, por la
a append(w , ) = aw
definicion de append.
= (Igualdad entre palabras)
HI

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 9 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )

Caso base: P()


Inmediato, por la
definicion de append.

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


append(aw , )
Caso base: P()
Inmediato, por la
definicion de append.

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


append(aw , )
Caso base: P()
= (Def. append)
Inmediato, por la
definicion de append.

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


append(aw , )
Caso base: P()
= (Def. append)
Inmediato, por la a append(w , )
definicion de append.

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


append(aw , )
Caso base: P()
= (Def. append)
Inmediato, por la a append(w , )
definicion de append. = (HI)

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Otra presentacion de la misma prueba inductiva

Escriba claramente la propiedad a probar


P(w ) := append(w , ) = w

Caso inductivo: P(w ) = P(aw )


append(aw , )
Caso base: P()
= (Def. append)
Inmediato, por la a append(w , )
definicion de append. = (HI)
aw .

Conclusion
:: append(w , ) = w )
(w

Luis Sierra (InCo) Pr


actico 1 Curso 2011 10 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso base: P()


append(, append(v , w ))
= (Def.)
append(v , w )
= (Def.)
append(append(, v ), w )

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso inductivo: P(u) = P(au)


append(au, append(v , w ))
Caso base: P()
append(, append(v , w ))
= (Def.)
append(v , w )
= (Def.)
append(append(, v ), w )

append(append(au, v ), w ).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso inductivo: P(u) = P(au)


append(au, append(v , w ))
Caso base: P() = (Def.)
append(, append(v , w )) a append(u, append(v , w ))
= (Def.)
append(v , w )
= (Def.)
append(append(, v ), w )

append(append(au, v ), w ).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso inductivo: P(u) = P(au)


append(au, append(v , w ))
Caso base: P() = (Def.)
append(, append(v , w )) a append(u, append(v , w ))
= (Def.)
append(v , w ) a append(append(u, v ), w )
= (Def.) = (Def.)
append(append(, v ), w ) append(a append(u, v ), w )
= (Def.)
append(append(au, v ), w ).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso inductivo: P(u) = P(au)


append(au, append(v , w ))
Caso base: P() = (Def.)
append(, append(v , w )) a append(u, append(v , w ))
= (Def.) = (HI)
append(v , w ) a append(append(u, v ), w )
= (Def.) = (Def.)
append(append(, v ), w ) append(a append(u, v ), w )
= (Def.)
append(append(au, v ), w ).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad

Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))

Caso base: P() Caso inductivo: P(u) = P(au)


... ...

Conclusion
:: (v
(u , w :: append(u, append(v , w )) =
append(append(u, v ), w )))

Luis Sierra (InCo) Pr


actico 1 Curso 2011 11 / 29
Asociatividad: encuentre las diferencias

Propiedad a probar
def
P(u) := append(u, append(v , w )) = append(append(u, v ), w )

Caso base: P() Caso inductivo: P(u) = P(au)


... ...

Conclusion
:: append(u, append(v , w )) = append(append(u, v ), w ))
(u

Luis Sierra (InCo) Pr


actico 1 Curso 2011 12 / 29
Parametros

Pauta: Pruebas parametricas


Supongamos que A es un lenguaje inductivo y queremos probar una
A, y B :: Q(x, y )).
propiedad (x
Podemos probar inductivamente que cualquier elemento de A cumple
B :: Q(x, y )), o
que (y

Luis Sierra (InCo) Pr


actico 1 Curso 2011 13 / 29
Parametros

Pauta: Pruebas parametricas


Supongamos que A es un lenguaje inductivo y queremos probar una
A, y B :: Q(x, y )).
propiedad (x
Podemos probar inductivamente que cualquier elemento de A cumple
B :: Q(x, y )), o
que (y
podemos fijar el parametro y , y probar Q(x, y ).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 13 / 29
Parametros

Pauta: Pruebas parametricas


Supongamos que A es un lenguaje inductivo y queremos probar una
A, y B :: Q(x, y )).
propiedad (x
Podemos probar inductivamente que cualquier elemento de A cumple
B :: Q(x, y )), o
que (y
podemos fijar el parametro y , y probar Q(x, y ).
La primera estrategia es mas fuerte, y la segunda es mas simple de
escribir.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 13 / 29
Pegando numerales binarios

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Pegando numerales binarios

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Pegando numerales binarios

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Pegando numerales binarios

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Pegando numerales binarios















=















4
0 16

=
4
36
0

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Pegando numerales binarios

4 = 0 23 + 4


16 = 4 22 + 0

0

=
4 36 = 4 23 + 4

0 = 0 22 + 0

Luis Sierra (InCo) Pr


actico 1 Curso 2011 14 / 29
Un teorema complicado?
v B :: eval(append(u, v )) = eval(u) 2long(v ) + eval(v ))
(u,

Luis Sierra (InCo) Pr


actico 1 Curso 2011 15 / 29
Un teorema complicado?

Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )

Luis Sierra (InCo) Pr


actico 1 Curso 2011 15 / 29
Un teorema complicado?

Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )

Caso base: P(b)


eval(u) 2long(1) + eval(1)
=
eval(u) 21 + 1
=
eval(u1)
=
eval(append(u, 1))
Y falta resolverlo para b = 0.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 15 / 29
Un teorema complicado?

Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )

Caso inductivo: P(w ) = P(wb)

eval(u) 2long(w 0) + eval(w 0) =


= 2 (eval(u) 2long(w ) + eval(w ))
eval(u) 21+long(w ) + 2 eval(w ) =
= 2 eval(append(u, w ))
2 eval(u) 2long(w ) + 2 eval(w ) =
= eval(append(u, w )0)
2 (eval(u) 2long(w ) + eval(w )) =
= eval(append(u, w 0))

Y falta resolverlo para b = 1.


Luis Sierra (InCo) Pr
actico 1 Curso 2011 15 / 29
Un teorema complicado?

Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )

Caso inductivo: P(w ) = P(wb)

eval(u) 2long(w 0) + eval(w 0) =


= 2 (eval(u) 2long(w ) + eval(w ))
eval(u) 21+long(w ) + 2 eval(w ) = (HI)
= 2 eval(append(u, w ))
2 eval(u) 2long(w ) + 2 eval(w ) =
= eval(append(u, w )0)
2 (eval(u) 2long(w ) + eval(w )) =
= eval(append(u, w 0))

Y falta resolverlo para b = 1.


Luis Sierra (InCo) Pr
actico 1 Curso 2011 15 / 29
No complicado, sino tedioso

Pauta: Resolver teoremas (por induccion)


Simplificar la tesis (desenrollando definiciones inductivas)
Simplificar la hipotesis (desenrollando definiciones inductivas)
Usar lo que sabemos de las cosas simples (hip
otesis inductiva)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 16 / 29
No complicado, sino tedioso

Pauta: Resolver teoremas (por induccion)


Simplificar la tesis (desenrollando definiciones inductivas)
Simplificar la hipotesis (desenrollando definiciones inductivas)
Usar lo que sabemos de las cosas simples (hip
otesis inductiva)

Trampa!!!
Lamentablemente, casi todo el desarrollo anterior es incorrecto. Una vez
dada una definicion, no puedo acomodarla para mis intereses. Preciso otra
definicion de append, o probar que append(u, w )b = append(u, wb).

Luis Sierra (InCo) Pr


actico 1 Curso 2011 16 / 29
Discordancias entre conjuntos y funciones

Que computan las siguientes funciones?

f :BN g :BB h : B {T , F }
f (0) := 1 g (0) := 0 h(0) := F
f (1) := 0 g (1) := 1 h(1) := T
f (w 0) := 1 + f (w ) g (w 0) := g (w )0 h(w 0) := h(w )
f (w 1) := 0 g (w 1) := 1 h(w 1) := T

Luis Sierra (InCo) Pr


actico 1 Curso 2011 17 / 29
Discordancias entre conjuntos y funciones

Que computan las siguientes funciones?

f :BN g :BB h : B {T , F }
f (0) := 1 g (0) := 0 h(0) := F
f (1) := 0 g (1) := 1 h(1) := T
f (w 0) := 1 + f (w ) g (w 0) := g (w )0 h(w 0) := h(w )
f (w 1) := 0 g (w 1) := 1 h(w 1) := T

f (0010001000) = 3 g (0010001000) = 1000 h(0010001000) = T

Luis Sierra (InCo) Pr


actico 1 Curso 2011 17 / 29
Discordancias entre conjuntos y funciones

Que computan las siguientes funciones?

f :BN g :BB h : B {T , F }
f (0) := 1 g (0) := 0 h(0) := F
f (1) := 0 g (1) := 1 h(1) := T
f (w 0) := 1 + f (w ) g (w 0) := g (w )0 h(w 0) := h(w )
f (w 1) := 0 g (w 1) := 1 h(w 1) := T

f (0010001000) = 3 g (0010001000) = 1000 h(0010001000) = T


Quiero

f 0 (0010001000) = 6 g 0 (0010001000) = 0010001

Luis Sierra (InCo) Pr


actico 1 Curso 2011 17 / 29
Buscando la funcion a partir de una propiedad

Propiedad
P(w ) := f (w ) + f 0 (w ) + 1 = long(w )

Caso base
f (0) + f 0 (0) + 1
=
1 + f 0 (0) + 1
=
1
=
long(0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 18 / 29
Buscando la funcion a partir de una propiedad

Propiedad
P(w ) := f (w ) + f 0 (w ) + 1 = long(w )

Caso base
f (0) + f 0 (0) + 1
=
1 + f 0 (0) + 1
= (Si f 0 (0) = 1)
1
=
long(0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 18 / 29
Buscando la funcion a partir de una propiedad

Propiedad
P(w ) := f (w ) + f 0 (w ) + 1 = long(w )

Caso base
f (0) + f 0 (0) + 1 f (1) + f 0 (1) + 1
= =
1 + f 0 (0) + 1 0 + f 0 (1) + 1
= (Si f 0 (0) = 1) =
1 1
= =
long(0) long(1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 18 / 29
Buscando la funcion a partir de una propiedad

Propiedad
P(w ) := f (w ) + f 0 (w ) + 1 = long(w )

Caso base
f (0) + f 0 (0) + 1 f (1) + f 0 (1) + 1
= =
1 + f 0 (0) + 1 0 + f 0 (1) + 1
= (Si f 0 (0) = 1) = (Si f 0 (1) = 0)
1 1
= =
long(0) long(1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 18 / 29
Caso inductivo

Caso inductivo
f (w 0) + f 0 (w 0) + 1
=
1 + f (w ) + f 0 (w 0) + 1
=
1 + f (w ) + f 0 (w ) + 1
=
1 + long(w )
=
long(w 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 19 / 29
Caso inductivo

Caso inductivo
f (w 0) + f 0 (w 0) + 1
=
1 + f (w ) + f 0 (w 0) + 1
= (Si f 0 (w 0) = f 0 (w ))
1 + f (w ) + f 0 (w ) + 1
=
1 + long(w )
=
long(w 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 19 / 29
Caso inductivo

Caso inductivo
f (w 0) + f 0 (w 0) + 1
= f (w 1) + f 0 (w 1) + 1
1 + f (w ) + f 0 (w 0) + 1 =
= (Si f 0 (w 0) = f 0 (w )) 0 + f 0 (w 1) + 1
1 + f (w ) + f 0 (w ) + 1 =
= 1 + long(w )
1 + long(w ) =
= long(w 1)
long(w 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 19 / 29
Caso inductivo

Caso inductivo
f (w 0) + f 0 (w 0) + 1
= f (w 1) + f 0 (w 1) + 1
1 + f (w ) + f 0 (w 0) + 1 =
= (Si f 0 (w 0) = f 0 (w )) 0 + f 0 (w 1) + 1
1 + f (w ) + f 0 (w ) + 1 = (Si f 0 (w 1) = long(w ))
= 1 + long(w )
1 + long(w ) =
= long(w 1)
long(w 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 19 / 29
Hallamos f 0 !

f0 :BZ
f 0 (0) := 1
f 0 (1) := 0
f 0 (w 0) := f 0 (w )
f 0 (w 1) := long(w )

Luis Sierra (InCo) Pr


actico 1 Curso 2011 20 / 29
Hallamos f 0 !

f0 :BZ
f 0 (0) := 1
f 0 (1) := 0
f 0 (w 0) := f 0 (w )
f 0 (w 1) := long(w )

Pero ...
Por que no usar simplemente f 0 (w ) := long(w ) f (w ) 1

Luis Sierra (InCo) Pr


actico 1 Curso 2011 20 / 29

Arboles

Definicion inductiva
Sea = B {, , ), (}. Definimos inductivamente T con las siguientes
reglas
1 Si b B, entonces b T
2 Si t1 T y t2 T , entonces (t1 t2 ) T
3 Si t1 T y t2 T , entonces (t1 t2 ) T

Visualizaciones

((10100000100)000100)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 21 / 29
Evaluacion en un arbol

Definicion inductiva
Sea = B {, , ), (}. Definimos inductivamente T con las siguientes
reglas
1 Si b B, entonces b T
2 Si t1 T y t2 T , entonces (t1 t2 ) T
3 Si t1 T y t2 T , entonces (t1 t2 ) T

Definicion recursiva
eval : T N
eval(b) := evalB (b)
eval((t1 t2 )) := eval(t1 ) + eval(t2 )
eval((t1 t2 )) := eval(t1 ) eval(t2 )

Luis Sierra (InCo) Pr


actico 1 Curso 2011 22 / 29
Evaluacion en un arbol contextualizado

Definicion inductiva
Sea = B {, , ), (} V . Definimos inductivamente T con las
siguientes reglas
1 Si b B, entonces b T
2 Si v V , entonces v T
3 Si t1 T y t2 T , entonces (t1 t2 ) T
4 Si t1 T y t2 T , entonces (t1 t2 ) T

Definicion recursiva
eval : T (V N) N
eval(b, ) := evalB (b)
eval(v , ) := (v )
eval((t1 t2 ), ) := eval(t1 , ) + eval(t2 , )
eval((t1 t2 ), ) := eval(t1 , ) eval(t2 , )
Luis Sierra (InCo) Pr
actico 1 Curso 2011 23 / 29
Evaluaciones

Luis Sierra (InCo) Pr


actico 1 Curso 2011 24 / 29
Una familia de funciones

Familia c (con n > 0)


ck : N N
ck (0) := 1
ck (1) := 1
ck (2 n) := ck (n)
ck (2 n + 1) := ck (2 n k + k + 1)

La funcion uno satisface todas las ecuaciones


uno(0) = 1
uno(1) = 1
uno(2 n) = uno(n)
uno(2 n + 1) = uno(2 n k + k + 1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 25 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c0
c0 : N N
c0 (0) := 1
c0 (1) := 1
c0 (2 n) := c0 (n)
c0 (2 n + 1) := c0 (2 n 0 + 0 + 1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 26 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c0
c0 : N N
c0 (0) := 1
c0 (1) := 1
c0 (2 n) := c0 (n)
c0 (2 n + 1) := c0 (1)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion Al computar con un impar, se demora un paso. Al computar
con un par, como n > 0, el argumento decrece
estrictamente, y N esta bien fundado.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 26 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c1
c1 : N N
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 n 1 + 1 + 1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 27 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 27 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion Al computar con un par, como n > 0, el argumento decrece
estrictamente.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 27 / 29
Formas complicadas de definir cosas simples

Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion Al computar con un par, como n > 0, el argumento decrece
estrictamente. Al computar con el impar 2 n + 1, el primer
paso aumenta el tama no del argumento, pero el paso
inmediato posterior lo disminuye hasta n + 1, que es
estrictamente menor.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 27 / 29
Formas simples de no definir cosas

Ecuaciones para c2
c2 : N N
c2 (0) := 1
c2 (1) := 1
c2 (2 n) := c2 (n)
c2 (2 n + 1) := c2 (2 n 2 + 2 + 1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 28 / 29
Formas simples de no definir cosas

Ecuaciones para c2
c2 : N N
c2 (0) := 1
c2 (1) := 1
c2 (2 n) := c2 (n)
c2 (2 n + 1) := c2 (4 n + 3)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 28 / 29
Formas simples de no definir cosas

Ecuaciones para c2
c2 : N N
c2 (0) := 1
c2 (1) := 1
c2 (2 n) := c2 (n)
c2 (2 n + 1) := c2 (4 n + 3)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion Al computar con un par, como n > 0, el argumento decrece
estrictamente.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 28 / 29
Formas simples de no definir cosas

Ecuaciones para c2
c2 : N N
c2 (0) := 1
c2 (1) := 1
c2 (2 n) := c2 (n)
c2 (2 n + 1) := c2 (4 n + 3)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion Al computar con un par, como n > 0, el argumento decrece
estrictamente. Al computar con el impar 2 n + 1, el primer
paso aumenta el tamano del argumento, e intenta resolver el
problema para un impar mayor. Este programa no puede
terminar.

Luis Sierra (InCo) Pr


actico 1 Curso 2011 28 / 29
Formas simples que desconocemos

Ecuaciones para c3
c3 : N N
c3 (0) := 1
c3 (1) := 1
c3 (2 n) := c3 (n)
c3 (2 n + 1) := c3 (2 n 3 + 3 + 1)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 29 / 29
Formas simples que desconocemos

Ecuaciones para c3
c3 : N N
c3 (0) := 1
c3 (1) := 1
c3 (2 n) := c3 (n)
c3 (2 n + 1) := c3 (6 n + 4)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)

Luis Sierra (InCo) Pr


actico 1 Curso 2011 29 / 29
Formas simples que desconocemos

Ecuaciones para c3
c3 : N N
c3 (0) := 1
c3 (1) := 1
c3 (2 n) := c3 (n)
c3 (2 n + 1) := c3 (6 n + 4)

Exhaustividad Los naturales son pares o impares


Superposici
on No se superponen (recordar que n > 0)
Terminacion A
un se desconoce si este programa termina...

Luis Sierra (InCo) Pr


actico 1 Curso 2011 29 / 29

También podría gustarte