Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conjuntos inductivos
Luis Sierra
Instituto de Computaci
on
11 y 14 de marzo
Buscando regularidades
{, ab, aabb, aaabbb, aaaabbbb, . . .}
Buscando regularidades
z }| {
{, ab, aabb, aaabbb, a aaabbb b, . . .}
Buscando regularidades
z }| {
{, ab, aabb, a aabb b, aaaabbbb, . . .}
Buscando regularidades
z}|{
{, ab, a ab b, aaabbb, aaaabbbb, . . .}
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
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} .
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.
Buscando regularidades
z }| {
{, a, ab, aba, abab, ababa, ab abab, . . .}
Buscando regularidades
z}|{
{, a, ab, aba, abab, ab aba , ababab, . . .}
Buscando regularidades
z}|{
{, a, ab, aba, ab ab , ababa, ababab, . . .}
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
Buscando regularidades
Buscando regularidades
z }| {
{, ab, abab, ababab, ab ababab, . . . , ba, baba, bababa, babababa, . . .}
Buscando regularidades
z }| {
{, ab, abab, ab abab, abababab, . . . , ba, baba, bababa, babababa, . . .}
Buscando regularidades
z }| {
{, ab, abab, ababab, abababab, . . . , ba, baba, bababa, ba bababa, . . .}
Buscando regularidades
Buscando regularidades
Definicion inductiva
1 Si b {0, 1}, entonces b B
2 Si b {0, 1} y w B, entonces wb B
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
1 Si w 0 , entonces h, w 0 i
2 Si hw , w 0 i y a , entonces haw , w 0 i
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 )
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 )
Demostracion
Aplicacion inmediata de la definici
on de append.
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
, hw , w 0 i : P(w , w 0 ) : P(aw , w 0 ))
2 (a
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Conclusion
:: append(w , ) = w )
(w
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
append(append(au, v ), w ).
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
append(append(au, v ), w ).
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
Propiedad a probar
def
P(u) := (v , w :: append(u, append(v , w )) =
append(append(u, v ), w ))
Conclusion
:: (v
(u , w :: append(u, append(v , w )) =
append(append(u, v ), w )))
Propiedad a probar
def
P(u) := append(u, append(v , w )) = append(append(u, v ), w )
Conclusion
:: append(u, append(v , w )) = append(append(u, v ), w ))
(u
=
4
0 16
=
4
36
0
4 = 0 23 + 4
16 = 4 22 + 0
0
=
4 36 = 4 23 + 4
0 = 0 22 + 0
Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )
Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )
Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )
Propiedad
P(v ) := eval(append(u, v )) = eval(u) 2long(v ) + eval(v )
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).
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 :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 :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
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)
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)
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)
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)
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)
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)
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)
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)
f0 :BZ
f 0 (0) := 1
f 0 (1) := 0
f 0 (w 0) := f 0 (w )
f 0 (w 1) := long(w )
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
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)
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 )
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
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)
Ecuaciones para c0
c0 : N N
c0 (0) := 1
c0 (1) := 1
c0 (2 n) := c0 (n)
c0 (2 n + 1) := c0 (1)
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)
Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))
Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))
Ecuaciones para c1
c1 :NN
c1 (0) := 1
c1 (1) := 1
c1 (2 n) := c1 (n)
c1 (2 n + 1) := c1 (2 (n + 1))
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)
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)
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)
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)
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)
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)
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)