Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 1 Expressibility in the Lambda Calculus with letrec Clemens Grabmayer and Jan Rochel Dept. of Philosophy, and Dept. of Computer Science NWO-project Realising Optimal Sharing Utrecht University TeReSe-Meeting RWTH Aachen, 28 March 2012
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 2 Which infinite λ -terms are expressible finitely in λ letrec ? Example letrec f = λ xy . f y x in f λ xy . λ xy . ( λ xy . ( ... y x ) y x ) y x ։ ։ ▽
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 3 Which infinite λ -terms are expressible finitely in λ letrec ? Example letrec f = λ xy . f y x in f λ xy . λ xy . ( λ xy . ( ... y x ) y x ) y x ։ ։ ▽ λ x λ y @ λ x @ λ y x λ x @ ։ ։ ▽ y λ y @ x @ y @ x . . . y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 4 Which infinite λ -terms are expressible finitely in λ letrec ? Example letrec f = λ xy . f y x in f λ xy . λ xy . ( λ xy . ( ... y x ) y x ) y x ։ ։ ▽ λ x λ a λ y λ b @ λ x @ @ λ y x λ c a λ x ։ β @ ։ ։ ▽ ։ y @ λ y @ x λ d b @ y @ @ x . . . c . . . y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 5 Which infinite λ -terms are expressible finitely in λ letrec ? Example letrec f = λ xy . f y x in f λ xy . λ xy . ( λ xy . ( ... y x ) y x ) y x ։ ։ ▽ λ x λ a λ y λ b @ λ x λ a @ @ λ y x λ b λ c a ։ λ x ։ β ։ β @ ։ ։ ▽ ։ λ c y @ λ y @ x λ d λ d b . . @ y . @ @ x . . . c . . . y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 6 Which infinite λ -terms are expressible finitely in λ letrec ? Example letrec f = λ xy . f y x in f λ xy . λ xy . ( λ xy . ( ... y x ) y x ) y x ։ ։ ▽ λ x λ a λ y λ b @ λ x λ a @ @ λ y x λ b λ c a ։ λ x λ x ։ β ։ β @ ։ ։ ▽ ։ λ c և և ▽ y @ λ y @ x λ d λ d b . . @ y . @ @ x . . . c . . . y letrec f = λ x . f in f
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 7 What makes a λ -terms inexpressible in λ letrec ? Example λ a λ b @ λ c a @ λ d b @ . . . c
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 8 What makes a λ -terms inexpressible in λ letrec ? λ a λ b @ λ c a @ λ d b @ . . . c
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 9 What makes a λ -terms inexpressible in λ letrec ? λ a λ λ b λ @ @ λ c a λ @ @ λ d b λ @ @ . . . . . c .
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 10 What makes a λ -terms inexpressible in λ letrec ? λ a λ a λ λ b λ b λ @ @ @ λ c a λ c a λ @ @ @ λ d λ d b b λ @ @ @ . . . . . . . c . c . scope
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 11 What makes a λ -terms inexpressible in λ letrec ? λ a λ a λ a λ λ b λ b λ b λ @ @ @ @ λ c a λ c a λ c a λ @ @ @ @ λ d λ d λ d b b b λ @ @ @ @ . . . . . . . . . c . c . c . scope + scope
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 12 What makes a λ -terms inexpressible in λ letrec ? λ x λ y @ @ x λ x y λ y @ @ x . . . y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 13 What makes a λ -terms inexpressible in λ letrec ? λ x λ λ y λ @ @ @ x @ λ x y λ λ y λ @ @ @ x @ . . . . y . .
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 14 What makes a λ -terms inexpressible in λ letrec ? λ x λ λ x λ y λ λ y @ @ @ @ x @ @ x λ x y λ λ x y λ y λ λ y @ @ @ @ x @ @ x . . . . . y . . . . y scope
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 15 What makes a λ -terms inexpressible in λ letrec ? λ x λ λ x λ x λ y λ λ y λ y @ @ @ @ @ x @ @ @ x x λ x y λ λ x λ x y y λ y λ λ y λ y @ @ @ @ @ x @ @ @ x x . . . . . . y . . . . . . y y scope + scope
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 16 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous )
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 17 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) ( ρ @ i ) : pre n ([ x 1 ... x n ] app ( Z 0 ( � x ) , Z 1 ( � x ))) → pre n ([ x 1 ... x n ] Z i ( � x )) ( i ∈ { 0 , 1 } ) ( ρ λ ) : pre n ([ x 1 ... x n ] abs ([ x n + 1 ] Z ( � x ))) → pre n ([ x 1 ... x n + 1 ] Z ( � x )) ( ρ S ) : pre n + 1 ([ x 1 ... x n + 1 ] Z ( x 1 ,..., x n )) → pre n ([ x 1 ... x n ] Z ( x 1 ,..., x n ))
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 18 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 19 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ ( λ x ) λ y . x x y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 20 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ xy ) x x y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 21 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ xy ) x x y → @ 1 ( λ xy ) y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 22 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y () λ x . λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ xy ) x x y → @ 1 ( λ xy ) y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 23 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ () λ x . λ y . x x y → λ ( λ x ) λ y . x x y ( λ x ) λ y . x x y → λ ( λ xy ) x x y → @ 1 ( λ xy ) y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 24 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ () λ x . λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ xy ) x x y ( λ xy ) x x y → @ 1 ( λ xy ) y
Grabmayer, Rochel Expressibility in the Lambda Calculus with letrec 25 A CRS for observing infinite λ -terms: Reg + ( ρ @ i ) : ( λ x 1 ... x n ) M 0 M 1 → ( λ x 1 ... x n ) M i ( i ∈ { 0 , 1 } ) ( ρ λ ) : ( λ x 1 ... x n ) λ x n + 1 . M 0 → ( λ x 1 ... x n + 1 ) M 0 ( ρ S ) : ( λ x 1 ... x n + 1 ) M 0 → ( λ x 1 ... x n ) M 0 ( if λ x n + 1 is vacuous ) Example ( λ x . λ y . x x y ) () λ x . λ y . x x y → λ () λ x . λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ x ) λ y . x x y → λ ( λ xy ) x x y → @ 0 ( λ xy ) x x y → @ 1 ( λ xy ) x x ( λ xy ) y
Recommend
More recommend