ARITMÉTICA EN EL λ -CÁLCULO

13
ARITMÉTICA EN EL λ-CÁLCULO Inmaculada Berrocal Rincón Pablo Camacho Aires Adrián Muñoz Alba

description

ARITMÉTICA EN EL λ -CÁLCULO. Inmaculada Berrocal Rincón Pablo Camacho Aires Adrián Muñoz Alba. CONTENIDOS. El sistema de numerales ¿Es un sistema adecuado? Operaciones con los numerales de Church Suma Resta Multiplicación El uso de combinadores Numerales de Church y Numerales Estándar - PowerPoint PPT Presentation

Transcript of ARITMÉTICA EN EL λ -CÁLCULO

Page 1: ARITMÉTICA EN EL  λ -CÁLCULO

ARITMÉTICA EN EL λ-CÁLCULO

Inmaculada Berrocal RincónPablo Camacho AiresAdrián Muñoz Alba

Page 2: ARITMÉTICA EN EL  λ -CÁLCULO

2

CONTENIDOS

El sistema de numerales ¿Es un sistema adecuado? Operaciones con los numerales de Church

o Sumao Restao Multiplicación

El uso de combinadores Numerales de Church y Numerales Estándar Otras operaciones

o La igualdad entre pares Churcho Factorial

Page 3: ARITMÉTICA EN EL  λ -CÁLCULO

3

Un sistema N de numerales es una terna N ≡< N, Cero, Suc > donde N es una sucesión de combinadores

N ≡ N0, N1,…

Y Cero y Suc son dos términos (funciones) tales que

Suc Nk = Nk+1

,N ,N N si F,

N N si T,N Cero

21

0

EL SISTEMA DE NUMERALES

Page 4: ARITMÉTICA EN EL  λ -CÁLCULO

4

Se definen de la siguiente forma:C0 ≡ λfx.x

C1 ≡ λfx.fx

C2 ≡ λfx.f(fx)

…Cn+1 ≡ λfx.fn+1(x)

Función sucesor: Suc ≡ λnfx.f (n f x)

Función Test Cero: EsCero ≡ λn.n (λx.F) T

F ≡ λxy.y T ≡ λxy.x

NUMERALES DE CHURCH

siendo

Combinadores

Page 5: ARITMÉTICA EN EL  λ -CÁLCULO

5

¿ES UN SISTEMA ADECUADO?

Un sistema de numerales es adecuado si existe una función Pred (predecesor) tal que:

Pred Nk+1 = Nk

El sistema de numerales de Church podemos decir que es un sistema de numerales adecuado, ya que podemos definir una función Pred que garantiza lo anterior.

Nuestra función Pred es:

Pred ≡ λ nfx. n (λgh.h(gf)) (λu.x) (λu.u)

Page 6: ARITMÉTICA EN EL  λ -CÁLCULO

6

OPERACIONES (I)

Podemos definir la operación suma entre dos números como:

Suma = λ mnfx. m f (n f x)

La resta en el lenguaje lambda calculo es muy sencilla de definir

Resta = λ mn. n Pred mSustituyendo la función predecesor que vimos con anterioridad, nos quedaría:

Resta = λ mp. p (λ nfx. n (λgh.h(gf)) (λu.x) (λu.u)) m

Page 7: ARITMÉTICA EN EL  λ -CÁLCULO

7

OPERACIONES (II)

La multiplicación entre dos números definidos en lambda cálculo se puede definir de varias formas:

1) Mult1 = λ mnf. m (n f)

2) Mult2 = λ mn. m (Suma n) 0

Sustituyendo la función Suma que vimos con anterioridad, nos quedaría:

Mult2 = λ mn. m ((λpqfx. p f (q f x)) n) (λfx.x)

lo podemos simplificar como

Mult2 = λ mn. m (λqfx. n f (q f x)) (λfx.x)

Page 8: ARITMÉTICA EN EL  λ -CÁLCULO

8

COMBINADORES (I)

Los combinadores son una versión reducida del lambda cálculo sin tipo. A través de ellas se pueden obtener funciones de orden superior. Existen dos combinadores especiales S y K, definidos de la forma:

S = λxyz.x z (y z)

K = λxy.x

Existe un combinador I ≡ λx.x que se puede expresar en términos de S y K:

I x = S K K x = K x (K x) = x

Page 9: ARITMÉTICA EN EL  λ -CÁLCULO

9

COMBINADORES (II)

Conversión del numeral de Church 0 en un combinador:

C0 = λf. λx.x = λf.I = (K I)

Conversión del numeral de Church 1 en un combinador

C1 = λf. λx.(f x) = λf.(S λx.f λx.x)

= λf.(S (K f) I)= (S λf.(S (K f)) λf.I))= (S (S λf.S λf.(K f)) (K I))= (S (S (K S) (S λf.K λf.f)) (K I))= (S (S (K S) (S λf.K λf.f)) (K I))

= (S (S (K S) (S (K K) I)) (K I))

Page 10: ARITMÉTICA EN EL  λ -CÁLCULO

10

NUMERALES ESTÁNDAR

Otro sistema adecuado de numerales a parte de los pares de Church son los numerales estándar. Se definen:

[0] ≡ I

[n +1] ≡ [F,[n]] ≡ λz.z F[n]

El número 2 se representaría en los numerales estándar como:

[2] = λz.z F [1] = λz.z F (λf.f F I)

Como ya hemos dicho que es un sistema adecuado, sean las funciones SucE (sucesor), PredE (predecesor) y CeroE (test cero) las siguientes:

SucE ≡ λx.[F,x]

PredE ≡ λx.x F

CeroE ≡ λx.x T

Page 11: ARITMÉTICA EN EL  λ -CÁLCULO

11

NUMERALES DE CHURCH Y NUMERALES

ESTÁNDAR

Sería interesante crear unas funciones H y H-1 que sirvan para pasar de un sistema a otro.

{c0, c1, … } H-1 { [0], [1], …}

{c0, c1, … } H { [0], [1], …}

tales que:

H [n] = cn H-1 cn = [n]

Recursividad en las funciones H:

Combinador para puntos fijos Y = λf. (λx. f(x x)) (λx. f (x x))

Page 12: ARITMÉTICA EN EL  λ -CÁLCULO

12

FUNCIONES H Y H-1

Función H-1 que pasa de los pares de Church a los numerales estándar:

H-1 ≡ λg.H-1aux g [0] ≡ λg. H-1

aux g I

H-1aux ≡ Y ϕ -1

aux

ϕ -1aux ≡ λ h.(λgn. COND (EsCero g) n (h (Pred g)

(SucE n)))

Función H que pasa de los numerales estándar a los pares de Church:

H ≡ λg.Haux g c0 ≡ λg. Haux g (λfx.x)

Haux ≡ Y ϕ aux

ϕ aux ≡ λ h.(λgn. COND (CeroE g) n (h (PredE g) (Suc n)))

Page 13: ARITMÉTICA EN EL  λ -CÁLCULO

13

OTRAS OPERACIONES

IGUALDAD ENTRE PARES DE CHURCH Iguales ≡ Y ϑϑ ≡ λh. (λnm. COND (EsCero n)

(COND (EsCero m) T F) (COND (EsCero m) F (h (Pred n)

(Pred m)))

FUNCIÓN FACTORIALFactorial ≡ Y ϖϖ ≡ λh. (λn. (EsCero n) (λfx.fx) (Mult n (h (Pred

n))))