Download - ARITMÉTICA EN EL λ -CÁLCULO

Transcript
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))))