making formality work for us

Upload: redgoriya

Post on 03-Apr-2018

254 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Making Formality Work for Us

    1/31

    M a k i n g F o r m a l i t y W o r k F o r U s

    R o l a n d B a c k h o u s e

    D e p a r t m e n t o f C o m p u t i n g S c i e n c e ,

    R i j k s u n i v e r s i t e i t G r o n i n g e n ,

    P o s t b o x 8 0 0 ,

    9 7 0 0 A V G r o n i n g e n ,

    T h e N e t h e r l a n d s

    M a y 1 2 , 1 9 8 9

    A b s t r a c t

    F o r m a l r e a s o n i n g i s n o t o r i o u s l y l o n g a n d a r d u o u s i n o r d e r t o u s e

    i t t o r e a s o n e e c t i v e l y i n t h e c o n s t r u c t i o n o f p r o g r a m s i t i s , t h e r e f o r e ,

    p a r a m o u n t t h a t w e d e s i g n o u r n o t a t i o n s t o b e b o t h c l e a r a n d e c o n o m -

    i c a l . T a k i n g e x a m p l e s f r o m A I , f r o m i m p e r a t i v e p r o g r a m m i n g , f r o m

    t h e u s e o f t h e B i r d - M e e r t e n s f o r m a l i s m a n d f r o m c a t e g o r y t h e o r y w e

    d e m o n s t r a t e h o w t h e r i g h t c h o i c e o f w h a t t o d e n o t e a n d h o w i t i s d e -

    n o t e d c a n m a k e s i g n i c a n t i m p r o v e m e n t s t o f o r m a l c a l c u l a t i o n s . B r i e f

    m e n t i o n i s a l s o m a d e o f t h e c o n n e c t i o n b e t w e e n e c o n o m i c a l n o t a t i o n

    a n d p r o p e r t i e s o f t y p e .

    1

  • 7/29/2019 Making Formality Work for Us

    2/31

    2

    F o r e w o r d

    E a r l i e r t h i s y e a r I w a s a n i n v i t e d s p e a k e r a t t h e 5 t h B r i t i s h C o m p u t e r S o c i e t y

    T h e o r e t i c a l C o m p u t e r S c i e n c e C o l l o q u i u m h e l d a t R o y a l H o l l o w a y a n d B e d f o r d

    N e w C o l l e g e , L o n d o n . B e f o r e y o u i s t h e t e x t o f m y l e c t u r e , a l m o s t b u t n o t q u i t e

    a s g i v e n a t t h e c o n f e r e n c e . ( P e r h a p s t h e b e s t w a y t o d e s c r i b e t h e p r e s e n t p a p e r i s

    a s t h e l e c t u r e t h a t I s h o u l d h a v e g i v e n . )

    T h e p u b l i c a t i o n o f t h e t e x t o f t h e l e c t u r e w i l l , I h o p e , b e o f s c i e n t i c v a l u e

    t o m e m b e r s o f t h e a u d i e n c e b u t t h a t i s n o t m y m a i n r e a s o n f o r w a n t i n g t o s e e i t

    p u b l i s h e d i n i t s p r e s e n t f o r m . R a t h e r , i t i s t h a t I w a n t e d t o p r o v i d e a n e x a m p l e o f

    t h e o r g a n i s a t i o n o f a l e c t u r e t h a t y o u n g e r r e s e a r c h e r s m i g h t c r i t i c i s e a n d , p o s s i b l y ,

    l e a r n f r o m .

    N e w l e c t u r e r s h a v e a r i g h t t o s e e k a d v i c e f r o m t h e i r s u p e r v i s o r s a b o u t l e c t u r e

    p r e s e n t a t i o n b u t I s u s p e c t t h a t t h a t a d v i c e i s r a r e l y o e r e d . U n d e r s t a n d a b l y s o

    b e c a u s e , a s s o a p t l y s t a t e d b y D o n a l d A . B l i g h

    1

    , \ a n y o n e w h o h a s t h e t e m e r i t y t o

    o e r i t l a y s h i m s e l f o p e n t o b e s h o t a t w h e n e v e r h e g o e s i n t o t h e l e c t u r e r o o m , . . .

    s i n c e i t i s o f t e n a s s u m e d t h a t h e w i l l b e t h e e m b o d i m e n t o f p e r f e c t i o n " . I c e r t a i n l y

    d o n o t r e g a r d m y o w n l e c t u r i n g t e c h n i q u e a s \ t h e e m b o d i m e n t o f p e r f e c t i o n " a n d ,

    i n d e e d , a m j u s t a s s e n s i t i v e t o c r i t i c i s m a s a n y o t h e r . N e v e r t h e l e s s , I f e e l v e r y

    s t r o n g l y a b o u t t h e i m p o r t a n c e o f i m p r o v i n g t h e s t a n d a r d o f c o m m u n i c a t i o n |

    w h e t h e r i t b e o r a l o r w r i t t e n | w i t h i n t h e c o m p u t i n g s c i e n c e c o m m u n i t y , s o m u c h

    s o t h a t I a m w i l l i n g t o e x p o s e m y s e l f t o b e i n g \ s h o t a t " | s o l o n g a s t h e n e t e e c t

    i s a p o s i t i v e o n e .

    T h e w r i t t e n w o r d i s a d i e r e n t m e d i u m t h a n t h e o v e r h e a d p r o j e c t o r a n d s o i t

    i s n o t p o s s i b l e f o r t h i s t e x t t o r e p r o d u c e f a i t h f u l l y t h e p r e s e n t a t i o n o f t h e l e c t u r e .

    R o u g h l y , h o w e v e r , e a c h g u r e h e r e c o r r e s p o n d s t o a s l i d e i n t h e l e c t u r e . I n a d d i t i o n

    s o m e ( g r o u p s o f ) e q u a t i o n s t h a t a p p e a r i n - l i n e i n t h e t e x t o c c u p i e d a s l i d e . ( N o t e

    t h a t , a p a r t f r o m t h e s e q u e n c e o f t i t l e s i n t h e o p e n i n g p a r a g r a p h , n o n e o f t h e

    t e x t u a l m a t e r i a l w a s r e p r o d u c e d o n a s l i d e I h a v e a s t r o n g a b h o r r e n c e o f l e c t u r e r s

    w h o r e a d a l o u d f r o m t h e i r s l i d e s | a f t e r a l l , t h e a u d i e n c e c a n r e a d t e x t o n a s l i d e

    m u c h f a s t e r t h a n i t c a n b e r e a d o u t , a n d , i n a n y c a s e , s u c h a p r a c t i c e i s a s u r e

    s i g n o f a n a i l i n g m e m o r y . )

    T h e r u l e t h a t e a c h g u r e f o r m e d a s l i d e i s n o t v a l i d i n s e v e r a l c a s e s w h e r e ,

    w i t h i n t h e t e x t , I m a k e a c o m p a r i s o n b e t w e e n t w o c a l c u l a t i o n s ( f o r e x a m p l e , g s .

    8 a n d 9 ) . D u r i n g t h e l e c t u r e I w a s a b l e t o p o i n t t o t h e m o s t s i g n i c a n t p a r t s o f

    1

    W h a t ' s t h e u s e o f l e c t u r e s ? 3 r d e d i t i o n , P e n g u i n B o o k s , H a r m o n d s w o r t h , E n g l a n d

    ( 1 9 7 2 ) .

  • 7/29/2019 Making Formality Work for Us

    3/31

    3

    a c a l c u l a t i o n a s w e l l a s o c c a s i o n a l l y u s i n g o v e r l a y s f o r g r e a t e r e m p h a s i s . I a l s o

    d e c i d e d a t t h e l a s t m i n u t e t o c u r t a i l s o m e o f t h e d i s c u s s i o n b y o m i t t i n g o n e o r

    t w o s l i d e s . N e v e r t h e l e s s , I h a d a s o m e w h a t l a r g e n u m b e r o f s l i d e s f o r a o n e h o u r

    l e c t u r e a n d h a d t o d e l i v e r i t a t a b r i s k p a c e .

    S e v e r a l c o l l e a g u e s h a v e m a d e c o m m e n t s o n t h e t e x t w h i c h I h a v e g r a t e f u l l y

    i n c o r p o r a t e d , e i t h e r w i t h i n t h e t e x t i t s e l f o r a s f o o t n o t e s . I n a d d i t i o n , d u r i n g t h e

    c o u r s e o f t h e l e c t u r e J . R . H i n d l e y m a d e a v e r y v a l u a b l e c o m m e n t o n m y d i s c u s s i o n

    o f W a r s h a l l ' s a l g o r i t h m t h a t I h a v e m a d e u s e o f . M y t h a n k s t o a l l o f t h e s e p e o p l e .

  • 7/29/2019 Making Formality Work for Us

    4/31

    4

    T h i s y e a r | i n f a c t t h i s v e r y c o n f e r e n c e | h a s s e e n t h e r s t i s s u e o f

    a n e w j o u r n a l | F o r m a l A s p e c t s o f C o m p u t i n g | o f w h i c h I a m p r o u d

    t o b e o n e o f i t s e d i t o r s . I t i s t h e r e f o r e a t t i n g o c c a s i o n , r s t , f o r m e t o

    c o n g r a t u l a t e t h o s e w h o h a v e b r o u g h t t h e j o u r n a l i n t o b e i n g | i n p a r t i c u l a r

    D . J o h n C o o k e | a n d , s e c o n d , t o e x a m i n e t h e i m p l i c a t i o n s a n d i m p o r t a n c e

    o f f o r m a l r e a s o n i n g f o r c o m p u t i n g s c i e n c e .

    A s i s t h e t r a d i t i o n f o r i n v i t e d l e c t u r e r s I h a v e p o n d e r e d l o n g a n d d e e p l y

    o v e r t h e t i t l e o f m y t a l k ( p e r h a p s m o r e s o t h a n o v e r i t s c o n t e n t ? ) . T h e r e

    a r e m a n y p e r m u t a t i o n s o f t h e s p e c i c w o r d s t h a t I h a v e c h o s e n t h a t , s o m e

    w o u l d a r g u e , o e r a m o r e d e f e n s i b l e t o p i c o f d i s c u s s i o n . F o r i n s t a n c e I c o u l d

    h a v e e n t i t l e d m y t a l k

    F o r m a l i t y M a k e s W o r k F o r U s

    o r

    M a k i n g F o r m a l i t y M a k e W o r k F o r U s .

    I c o u l d h a v e e n t i t l e d i t

    M a k i n g F o r m a l i t y W o r k F o r T h e C o m p u t e r

    F o r m a l i t y M a k e s W o r k F o r T h e C o m p u t e r

    M a k i n g F o r m a l i t y M a k e W o r k F o r T h e C o m p u t e r

    o r , i n d e e d ,

    M a k i n g F o r m a l i t y M a k e W o r k F o r U s A n d T h e C o m p u t e r

    E a c h o f t h e s e t i t l e s w o u l d , I a m s u r e , n d m o r e s y m p a t h y a m o n g m a n y

    c o m p u t i n g s c i e n t i s t s a n d , i f f o l l o w e d , h a v e m o r e p r o s p e c t o f s u c c e s s t h a n t h e

    o n e t h a t I h a v e c h o s e n . B u t n o ! W h a t I w i s h t o d i s c u s s i s h o w w e c a n m a k e

    f o r m a l r e a s o n i n g h e l p ( n o t h i n d e r ) u s ( n o t t h e c o m p u t e r ) i n t h e c o n s t r u c t i o n

    o f h i g h - q u a l i t y c o m p u t e r p r o g r a m s .

    S o t h a t t h e r e i s n o d a n g e r o f m i s u n d e r s t a n d i n g l e t m e s a y w h a t I m e a n

    b y \ f o r m a l r e a s o n i n g " . I m e a n , s i m p l y , u n i n t e r p r e t e d c a l c u l a t i o n , t h e s o r t o f

    m e c h a n i c a l m a n i p u l a t i o n o f s y m b o l s t h a t w e u n d e r t a k e w h e n , s a y , p e r f o r m i n g

    l o n g d i v i s i o n . ( S e e g u r e 1 . ) I n t h e p r o c e s s o f d o i n g s u c h a c a l c u l a t i o n w e

    d o n o t c o n s t r u c t m e n t a l p i c t u r e s o f w h i c h t h e o p e r a t i o n s a r e r e p r e s e n t a t i o n s

    ( i n t h e e x a m p l e g i v e n w e d o n o t p i c t u r e t h e r e a r r a n g e m e n t o f 3 1 6 7 8 9 a p p l e s

  • 7/29/2019 Making Formality Work for Us

    5/31

    5

    1 3 7 7 3

    2 3 ) 3 1 6 7 8 9

    2 3

    8 6

    6 9

    1 7 7

    1 6 1

    1 6 8

    1 6 1

    7 9

    6 9

    1 0

    F i g u r e 1 : L o n g d i v i s i o n .

    i n t o b l o c k s o f 2 3 ) . O u r c a l c u l a t i o n s a r e c o m p l e t e l y s y n t a c t i c a n d d i v o r c e d

    f r o m s e m a n t i c s .

    2

    T h e c o m p l e x n a t u r e o f t h e p r o g r a m m i n g t a s k i s s u c h t h a t a n y p r o g r a m -

    m i n g c a l c u l u s w i l l b e m u c h m o r e l i k e t h e i n t e g r a l c a l c u l u s t h a n t h e d i e r e n t i a l

    c a l c u l u s . A t t h e o u t s e t o f a c a l c u l a t i o n i t w i l l b e u n c l e a r w h a t r u l e s o r w h a t

    p r o p e r t i e s w e w i l l n e e d t o i n v o k e . B u t i t s h o u l d a l w a y s b e c l e a r w h a t t h e

    g o a l o f a c a l c u l a t i o n i s . H e r e i s a n e x a m p l e t o i l l u s t r a t e t h e p o i n t . ( S e e

    g u r e 2 . )

    G i v e n a p r o p e r t y , F , o f p r e d i c a t e s t h e c i r c u m s c r i p t i o n o f F , d e n o t e d h e r e

    b y F , i s a l s o a p r o p e r t y o f p r e d i c a t e s , i n t r o d u c e d b y M c C a r t h y 1 4 ] i n h i s

    w o r k o n l o g i c d a t a b a s e s .

    T h e c i r c u m s c r i p t i o n o f F i n v o l v e s a s e c o n d - o r d e r q u a n t i c a t i o n , i . e . a

    q u a n t i c a t i o n o v e r p r e d i c a t e s . T h e q u e s t i o n p o s e d b y L i f s c h i t z 1 2 ] w a s ,

    2

    N . G . d e B r u i j n m a k e s t h e f o l l o w i n g i l l u m i n a t i n g r e m a r k s 6 ] \ H e r e ` f o r m a l ' m e a n s :

    w i t h o u t ` u n d e r s t a n d i n g ' t h e ` m e a n i n g ' , a n d t h e r e f o r e i t h a s t o b e p o s s i b l e t o i n s t r u c t

    c o m p u t e r s h o w t o c h e c k t h e c o r r e c t n e s s . I n d e e d , t h e f a c t t h a t w e d o h a v e c o m p u t e r s w i l l

    b e o n e o f t h e r e a s o n s w h y o u r g e n e r a t i o n h a s b e t t e r c h a n c e s t h a n t h o s e w h o t r i e d t o h a v e

    s i m i l a r c l a i m s i n t h e p a s t , l i k e L e i b n i z , P e a n o a n d H i l b e r t . E v e n i f w e d o n o t a c t u a l l y u s e

    c o m p u t e r s , t h e y a r e t h e r e t o s e t t h e s t a n d a r d o f w h a t i s ` f o r m a l ' v e r i c a t i o n . "

  • 7/29/2019 Making Formality Work for Us

    6/31

    6

    F o r f u n c t i o n F m a p p i n g p r e d i c a t e s t o B o o l t h e c i r c u m s c r i p t i o n o f F , d e n o t e d

    b y F , i s t h e f u n c t i o n d e n e d a s f o l l o w s :

    F p F : p ^ 8 ( q : F : q : : ( q < p ) )

    w h e r e q p 8 ( x : q : x : p : x )

    a n d q < p ( q p ) ^ : ( q p )

    T h e o r e m ( L i f s c h i t z 1 2 ] )

    L e t F : p b e U p . T h e n

    F p ( U p )

    F i g u r e 2 : C i r c u m s c r i p t i o n .

    \ w h e n c a n s u c h a q u a n t i c a t i o n b e r e d u c e d t o a r s t - o r d e r f o r m u l a ? " P a r t

    o f L i f s c h i t z ' s a n a l y s i s c o n s i s t e d o f c o n s i d e r i n g p r o p e r t i e s o f t h e f o r m ( p ] U

    p ) , f o r s o m e p r e d i c a t e U , a s s h o w n i n t h e g u r e .

    N o w , I k n o w o f o n l y t w o r u l e s t h a t r e m o v e a q u a n t i c a t i o n | t h e o n e -

    p o i n t r u l e ( c a l l e d \ s i n g l e t o n r a n g e " i n 2 ] )

    ( i : i = e : f : i ) = f : e

    a n d t h e e m p t y r a n g e r u l e

    ( i : f a l s e : f : i ) = 1

    ( w h e r e 1

    i s t h e i d e n t i t y o f ) . A n i n v e s t i g a t i o n o f w h e n F p c a n b e

    r e d u c e d t o a r s t - o r d e r f o r m u l a t h u s a m o u n t s t o a n i n v e s t i g a t i o n o f w h e n

    t h e l a t t e r t w o r u l e s a r e a p p l i c a b l e . I n d e e d , f o r t h e p a r t i c u l a r c a s e t h a t F i s

    ( p ] U p ) , a s t r a i g h t f o r w a r d c a l c u l a t i o n s h o w n i n g . 3 s u c e s t o r e d u c e

    F p t o s u c h a f o r m .

    T h e p o i n t t o n o t e a b o u t t h i s c a l c u l a t i o n i s t h a t i t b e g i n s w i t h a c l e a r g o a l :

    g i v e n a f o r m u l a i n v o l v i n g a u n i v e r s a l q u a n t i c a t i o n r e d u c e i t t o a n e q u i v a l e n t

    f o r m u l a n o t i n v o l v i n g a n y q u a n t i c a t i o n . W e c a n n o t k n o w i n a d v a n c e t h e

    n a l a n s w e r ( t h a t , a f t e r a l l , i s t h e p u r p o s e o f t h e c a l c u l a t i o n ) n o r i n d e e d

    a r e w e g u a r a n t e e d s u c c e s s . N e v e r t h e l e s s , h a v i n g b e g u n o u r c a l c u l a t i o n w e

    p r o c e e d b y p u r e s y n t a c t i c c o n s i d e r a t i o n s | i n t h i s c a s e s e e k i n g t o i n v o k e t h e

    o n e - p o i n t r u l e o r t h e e m p t y r a n g e r u l e , o r b o t h | u n t i l t h e g o a l i s r e a c h e d

    o r w e d e c i d e t h a t t h e g o a l m u s t b e m o d i e d o r p o s t p o n e d .

  • 7/29/2019 Making Formality Work for Us

    7/31

    7

    F p

    = f d e f n . g

    ( U p ) ^ 8 ( q : U q : : ( q < p ) )

    = f r a n g e s p l i t t i n g g

    ( U p ) ^ 8 ( q : U = q : : ( q < p ) ) ^ 8 ( q : U < q : : ( q < p ) )

    = f o n e p t . r u l e g

    ( U p ) ^ : ( U < p ) ^ 8 ( q : U < q : : ( q < p ) )

    = f p r o p . c a l c . g

    ( U p ) ^ 8 ( q : U < q : : ( q < p ) )

    = f c o n t e x t r u l e g

    ( U p ) ^ 8 ( q : U < q : : ( q < U ) )

    = f t r a d i n g g

    ( U p ) ^ 8 ( q : ( U < q ) ( q < U ) : f a l s e )

    = f e m p t y r a n g e g

    ( U p ) t r u e

    = f p r o p . c a l c . g

    U p

    F i g u r e 3 : P r o o f o f L i f s c h i t z ' s t h e o r e m .

    S o m u c h f o r t h e n a t u r e o f f o r m a l r e a s o n i n g . B e f o r e d i s c u s s i n g h o w w e

    m i g h t i m p r o v e o u r f o r m a l - r e a s o n i n g s k i l l s I w a n t t o s a y a f e w w o r d s a b o u t t h e

    c h a l l e n g e w i t h w h i c h w e a r e f a c e d . O n e o f t h e e a r l i e s t e x e r c i s e s I k n o w o f i n

    p u r e l y f o r m a l r e a s o n i n g w a s J u t t i n g ' s e n c o d i n g o f L a n d a u ' s \ G r u n d l a g e n d e r

    M a t h e m a t i k " i n t h e l a n g u a g e o f A u t o m a t h 1 1 ] . E s s e n t i a l l y , J u t t i n g u s e d a

    c o m p u t e r p r o g r a m t o v e r i f y t h e e n t i r e c o n t e n t s o f L a n d a u ' s b o o k . A c c o r d i n g

    t o d e B r u i j n 6 ] t h e p r o c e s s o f g o i n g f r o m a m a t h e m a t i c a l t e x t t o a f o r m a l

    i n p u t i n c u r r e d a t l e a s t a t e n - f o l d i n c r e a s e i n t h e s i z e o f t h e t e x t .

    3

    F o r t h o s e

    3

    \ J u t t i n g ( 1 9 7 7 ) g i v e s s o m e d e t a i l s a b o u t e x p e r i e n c e s w i t h t h e c h e c k i n g o f a r e l a t i v e l y

    l a r g e t e x t ( v i z . t h e t r a n s l a t i o n o f L a n d a u ' s \ G r u n d l a g e n " , L a n d a u ( 1 9 3 0 ) ) . T h e c o d e d

    v e r s i o n ( J u t t i n g ( 1 9 7 6 ) ) c o n s i s t s o f a b o u t 5 : 1 0

    7

    b i t s . T h i s m a y s e e m v e r y l a r g e ( m a y

    b e 1 0 t o 5 0 t i m e s a s l a r g e a s a d i r e c t e n c o d i n g o f t h e w o r d s a n d s y m b o l s L a n d a u w r o t e

    h i m s e l f ) , b u t i t i s s t i l l o f t h e o r d e r o f w h a t a s i n g l e c a s s e t t e t a p e c a n c o n t a i n " .

    N o t e t h a t d e B r u i j n ' s r e m a r k s q u o t e d h e r e a n d e l s e w h e r e r e f e r t o \ v e r i f y i n g " o r \ c h e c k -

  • 7/29/2019 Making Formality Work for Us

    8/31

    8

    j A B C 2 T y p e

    2 A A ! A f i s a s s o c i a t i v e g

    2 A B ! A

    f 8 ( x y z : : ( x y ) z = ( x z ) ( y z ) ) g

    e 2 A

    = ( e ] ) 6!

    +

    s e g s = f s t ( < e e > ] ) 6!

    ] j

    w h e r e = . . .

    s e g s = . . .

    t a i l s = . . .

    i n i t s = . . .

    = . . .

    = . . .

    + + = . . .

    +

    = . . .

    = . . .

    6! = . . .

    F i g u r e 4 : A g g r e g a t e d S e g m e n t S u m T h e o r e m .

    o f y o u w h o h a v e n e v e r s e e n L a n d a u ' s t e x t I s h o u l d a l s o e m p h a s i s e t h a t , b y

    t h e s t a n d a r d s o f m a t h e m a t i c i a n s , i t i s a l r e a d y v e r y f o r m a l . J u t t i n g d i d n o t

    c h o o s e a n y o l d m a t h e m a t i c s t e x t b o o k a s t h e b a s i s f o r h i s w o r k h e c o n s c i o u s l y

    c h o s e o n e w h e r e t h e s t e p t o t h e l a n g u a g e o f A u t o m a t h w a s m i n i m a l .

    I c o u l d p r o v i d e s e v e r a l o t h e r e x a m p l e s w h e r e t h e d i e r e n c e b e t w e e n i n -

    f o r m a l a n d f o r m a l i n v o l v e s a s c a l i n g f a c t o r o f a r o u n d t e n o r m o r e . R e c e n t l y ,

    I m y s e l f c o m p l e t e d a f o r m a l p r o o f a b o u t a c e r t a i n f o r m o f c o m p u t a t i o n o v e r

    l i s t s t r u c t u r e s . ( S e e g u r e s 4 a n d 5 . ) T h e c o n t e n t s o f t h e t h e o r e m I p r o v e d

    a r e n o t r e l e v a n t h e r e b u t s o m e s t a t i s t i c s a b o u t i t s p r o o f a r e . E s s e n t i a l l y , t h e

    t h e o r e m s t a t e s t h a t , u n d e r c e r t a i n c o n d i t i o n s , t w o f u n c t i o n s d e n e d o v e r l i s t s

    a r e e x t e n s i o n a l l y e q u a l t h e r s t e n t a i l s a n O ( n

    3

    ) c o m p u t a t i o n , t h e s e c o n d a n

    i n g " m a t h e m a t i c s o u r g o a l i s s o m e w h a t m o r e a m b i t i o u s ( a n d m o r e d i c u l t ) v i z . t o u s e

    f o r m a l m e t h o d s t o c o n s t r u c t c o m p u t e r p r o g r a m s .

  • 7/29/2019 Making Formality Work for Us

    9/31

    9

    = ( e ] ) 6!

    +

    s e g s

    | { z }

    O ( n

    3

    ) e x e c u t a b l e s p e c i c a t i o n

    2 t y p e c o n s t r u c t o r s

    9 a u x i l i a r y f u n c t i o n s

    = f s t ( < e e > ] ) 6!

    | { z }

    O ( n )

    1 t y p e c o n s t r u c t o r

    3 a u x i l i a r y f u n c t i o n s

    | { z }

    3 2 l e m m a s

    1 4 7 p r o o f s t e p s

    F i g u r e 5 : S t a t i s t i c s o n a f o r m a l c o n s t r u c t i o n .

    O ( n ) c o m p u t a t i o n . I n o r d e r t o p r o g r a m t h e r s t f u n c t i o n ( t h e l e s s e c i e n t

    o n e ) i t i s n e c e s s a r y t o d e n e t w o t y p e c o n s t r u c t o r s a n d 9 a u x i l i a r y f u n c t i o n s .

    I n o r d e r t o p r o g r a m t h e s e c o n d f u n c t i o n ( t h e m o r e e c i e n t o n e ) o n e t y p e

    d e n i t i o n i s n e e d e d t o g e t h e r w i t h t h e d e n i t i o n o f t h r e e a u x i l i a r y f u n c t i o n s .

    T h e t e x t s o f b o t h p r o g r a m s , w r i t t e n i n S M L , a r e i n c l u d e d i n t h e a p p e n d i x .

    ( I t i s w o r t h n o t i n g i n p a s s i n g t h a t t h e l o n g e r p r o g r a m i s l e s s e c i e n t a n d c o r -

    r e s p o n d s m u c h m o r e c l o s e l y t o t h e o r i g i n a l p r o b l e m s p e c i c a t i o n . E x e c u t a b l e

    s p e c i c a t i o n s m a y b e s u b s t a n t i a l l y l o n g e r t h a n e c i e n t i m p l e m e n t a t i o n s ! ) I n

    m y p r o o f o f t h e i r e q u i v a l e n c e , w h i c h w a s c o m p l e t e l y f o r m a l a l t h o u g h d o n e

    b y h a n d , I c o u n t e d 3 2 l e m m a s a n d 1 4 7 p r o o f s t e p s . A l l t h i s t o c o n s t r u c t a

    p r o g r a m o c c u p y i n g l e s s t h a n o n e p a g e o f c o d e !

    S u c h s t a t i s t i c s , i n t h e w r o n g h a n d s , c o u l d b e u s e d t o s p r e a d a l a r m a n d

    d i s c o n t e n t a m o n g t h e f o r m a l m e t h o d s c o m m u n i t y . O n r s t e n c o u n t e r t h e y

    s e e m t o p r o v i d e a m p l e j u s t i c a t i o n f o r t h e a r g u m e n t t h a t f o r m a l i t y s i m p l y

    m a k e s e x t r a w o r k f o r u s . B u t I d o n o t r e g a r d t h e g u r e s a s d a u n t i n g : r a t h e r ,

    t h e y r e e c t t h e c h a l l e n g e t h a t w e f a c e , o n e w h i c h , a s w e a l l k n o w , i s n o

    n e w c o m e r t o c o m p u t i n g s c i e n c e .

    T h e w a y t o i m p r o v e o u r c a l c u l a t i o n a l m e t h o d | t h e o n l y w a y | i s t o

    i m p r o v e o n t h e n o t a t i o n s t h a t w e u s e . H a v i n g a t t e m p t e d s o m e y e a r s a g o ,

    h o w e v e r , t o d i s c u s s c h o i c e o f n o t a t i o n I k n o w f u l l w e l l t h a t i t i s a s u b j e c t

    f r a u g h t b y i n c u l c a t e d p r e j u d i c e . F o r m a n y , \ f a m i l i a r i t y " ( a n d f a m i l i a r i t y

    a l o n e ) i s t h e o n l y g r o u n d f o r c h o o s i n g a n o t a t i o n . I k n o w a l s o t h a t f o r m a l

    c a l c u l a t i o n i s n o t a s p e c t a t o r s p o r t : i t i s v e r y b o r i n g t o w a t c h s o m e o n e e l s e

  • 7/29/2019 Making Formality Work for Us

    10/31

    1 0

    p e r f o r m a s e r i e s o f s y n t a c t i c m a n i p u l a t i o n s . T h u s , i n t w o w a y s m y t a s k i s

    d i c u l t : t h e c a l c u l a t i o n s I a m a b o u t t o s h o w y o u a r e j u s t t h a t | f o r m a l

    c a l c u l a t i o n s | a n d t h e y u s e n o t a t i o n s t h a t w i l l b e u n f a m i l i a r t o a l l b u t a

    s m a l l m i n o r i t y o f y o u .

    S e v e r a l o f m y e x a m p l e s a r e t a k e n f r o m t h e c a l c u l u s d e v e l o p e d b y R i c h a r d

    B i r d a n d L a m b e r t M e e r t e n s , a n d s o m e t i m e s c a l l e d t h e \ B i r d - M e e r t e n s f o r -

    m a l i s m " a n d s o m e t i m e s c a l l e d \ S q u i g g o l " 5 , 1 5 ] . O n e w a y t o s u m m a r i s e

    t h e i r w o r k i s t h a t i t i s a c a l c u l u s o f t h e r e d u c e o p e r a t o r ( d e n o t e d i n t h e

    s e q u e l b y / ) a n d t h e m a p o p e r a t o r ( d e n o t e d i n t h e s e q u e l b y ) . U p t i l l

    n o w t h e y h a v e t e n d e d t o r e m a i n w i t h i n t h e r e a l m o f n i t e l i s t s , b u t i t i s

    b e c o m i n g i n c r e a s i n g l y o b v i o u s h o w t o e x t e n d t h e i r w o r k t o a n a r b i t r a r y t y p e

    c o n s t r u c t o r a n d i t s c o r r e s p o n d i n g r e d u c e o p e r a t o r ( s e e e . g . M a l c o l m 1 3 ] ) .

    F r o m a c a l c u l a t i o n a l p e r s p e c t i v e t h e i r w o r k r e p r e s e n t s f o r m e t h e m o s t

    m a j o r a d v a n c e t h a t I h a v e e n c o u n t e r e d i n m y c a r e e r a s a c o m p u t i n g s c i e n t i s t .

    F r o m t h e t r a d i t i o n a l , f o u n d a t i o n a l p e r s p e c t i v e , h o w e v e r , t h e i r w o r k o e r s n o

    s u r p r i s e s t h e b a s i c t h e o r e m s a n d m e t h o d s t h a t t h e y u s e a r e w e l l - k n o w n a n d

    h a v e b e e n s o , i n m o s t c a s e s , f o r s e v e r a l d e c a d e s . T h e a d v a n c e t h a t t h e y h a v e

    m a d e i s t o s h o w h o w c o n c i s e n o t a t i o n d e s i g n e d a r o u n d f u n d a m e n t a l a l g e b r a i c

    p r o p e r t i e s c a n s u b s t a n t i a l l y i n c r e a s e t h e e e c t i v e n e s s o f t h e c a l c u l a t i o n a l

    m e t h o d .

    T h e t w o p r o p e r t i e s t h a t a r e t h e m a i n s t a y o f t h e i r a p p r o a c h a r e , r s t ,

    t h a t t h e t y p e A B ! C i s i s o m o r p h i c t o A ! ( B ! C ) a n d , s e c o n d , t h a t

    f u n c t i o n c o m p o s i t i o n i s a s s o c i a t i v e . T h e r s t o f t h e s e p e r m i t s o n e t o \ c u r r y "

    a b i n a r y o p e r a t o r | t h e w e l l - k n o w n p r o c e s s t h a t d e n e s , f o r e x a m p l e , ( 2 + )

    t o b e t h e f u n c t i o n t h a t g i v e n x c o m p u t e s 2 + x .

    T h e s e t w o p r o p e r t i e s a r e u s e d s i l e n t l y i n t h e i r c a l c u l a t i o n s e m p h a s i s i n g

    a p r i n c i p l e t h a t I s h a l l r e i t e r a t e s e v e r a l t i m e s , n a m e l y : o n e s h o u l d a l w a y s

    e n d e a v o u r t o d e s i g n o n e ' s n o t a t i o n s o t h a t t h e u s e o f t h e m o s t i m p o r t a n t

    p r o p e r t i e s b e c o m e s ( a l m o s t ) i n v i s i b l e . I n p a r t i c u l a r , t h e y u s e t h e i n x o p e r -

    a t o r s \ / " , s t a n d i n g f o r r e d u c e , a n d \ " , s t a n d i n g f o r m a p , p r i m a r i l y i n t h e i r

    c u r r i e d f o r m s . T h u s , f o r j o i n l i s t s r e d u c e i s a p o l y m o r p h i c f u n c t i o n o f t y p e

    ( ! ) ! ] ]

    a n d i f 2 A A ! A t h e n

    = 2 A ! A

  • 7/29/2019 Making Formality Work for Us

    11/31

    1 1

    = f + + =

    = f p r o m o t i o n g

    = + + = f

    = f / p r o m o t i o n g

    = = f

    H e n c e ,

    = = + + = + + =

    = f a b o v e , f : = = g

    = = = + + =

    = f d i s t r i b u t i v i t y g

    = ( = = + + = )

    = f a b o v e , g : = = g

    = ( = = = )

    = f d i s t r i b u t i v i t y g

    = = = =

    F i g u r e 6 : S q u i g g o l i n g .

    S i m i l a r l y , a g a i n f o r j o i n l i s t s , m a p i s a p o l y m o r p h i c f u n c t i o n o f t y p e

    ( ! ) ! ] ]

    a n d i f f 2 A ! B t h e n

    f 2 A ! B

    ( N o t e a l s o t h e u s e o f t h e s y m b o l \ " b o t h a s a t y p e c o n s t r u c t o r a n d a s

    a n o p e r a t o r o n f u n c t i o n s . T h i s , t o o , i s a n i m p o r t a n t e c o n o m y o f n o t a t i o n

    i n t r o d u c e d b y c a t e g o r y t h e o r y i n d i c a t i n g t h a t \ " i s a f u n c t o r . )

    F i g u r e 6 i s a s o m e w h a t c o n c o c t e d e x a m p l e o f a c a l c u l a t i o n i n S q u i g g o l .

    T h e o b j e c t i v e o f t h e c a l c u l a t i o n i s t o r e d u c e t h e e x p r e s s i o n

    = = + + = + + =

    t o a n e q u a l e x p r e s s i o n n o t i n v o l v i n g \ + + " . ( H e r e \ + + " d e n o t e s t h e j o i n c o n -

    s t r u c t o r a n d \ " d e n o t e s a n a r b i t r a r y b i n a r y o p e r a t o r . )

  • 7/29/2019 Making Formality Work for Us

    12/31

    1 2

    T h e d e t a i l s o f t h e c a l c u l a t i o n a r e n o t i m p o r t a n t a n d , a n y w a y , i t m a k e s

    u s e o f p r o p e r t i e s t h a t I h a v e n o t i m e t o e x p l a i n . W h a t i s i m p o r t a n t i s j u s t

    h o w o f t e n a s s o c i a t i v i t y o f f u n c t i o n c o m p o s i t i o n i s u s e d . T h e r s t t h r e e l i n e s

    e s t a b l i s h a m i n o r l e m m a t h a t i s u s e d i n t h e s u b s e q u e n t m a i n c a l c u l a t i o n .

    N o w , i n t h e r s t s t e p o f t h e m a i n c a l c u l a t i o n t h e g r o u p i n g o f t h e f u n c t i o n s

    t h a t i s u s e d i s

    ( = = + + = ) + + =

    I n t h e s e c o n d s t e p i t i s

    = ( = = + + = )

    I n t h e p r e l i m i n a r y c a l c u l a t i o n t h e g r o u p i n g o f t h e f u n c t i o n s i s , r s t l y ,

    = ( f + + = )

    a n d , i n t h e s u b s e q u e n t s t e p , i t i s

    ( = = ) f

    N o w h e r e i s i t e x p l a i n e d t h a t a s s o c i a t i v i t y o f f u n c t i o n c o m p o s i t i o n i s b e i n g

    a p p l i e d | b u t n o r i s s u c h a n e x p l a n a t i o n n e c e s s a r y . T h e p r o p e r t y i s s o

    f u n d a m e n t a l t h a t i t i s r i g h t l y u s e d w i t h o u t m e n t i o n .

    ( T h e a b o v e p r o o f c o u l d b e r e p e a t e d w i t h o u t m a k i n g u s e o f f u n c t i o n c o m -

    p o s i t i o n , r e p l a c i n g i t b y f u n c t i o n a p p l i c a t i o n . B u t t h e n ( a ) e x t e n s i o n a l i t y

    m u s t b e u s e d r e q u i r i n g e x p l i c i t i n t r o d u c t i o n o f v a r i a b l e s a n d ( b ) t h e s t a t e -

    m e n t o f t h e a n d / p r o m o t i o n p r o p e r t i e s b e c o m e s l o n g e r a n d h e n c e t h e i r

    a p p l i c a b i l i t y i s l e s s e a s y t o i d e n t i f y . )

    A m I s a y i n g t h e o b v i o u s ? ! S o m e t h i n g t h a t a n a u d i e n c e s u c h a s t h i s n e e d s

    n o t e l l i n g ? ! P e r h a p s . B u t m y n e x t e x a m p l e i s o n e w h e r e t h e o p p o r t u n i t y

    t o i n t r o d u c e c o n c i s e n o t a t i o n h a s b e e n o v e r l o o k e d a n d i s t a k e n f r o m t h a t

    v e r y s c h o o l t h a t h a s a l w a y s a d v o c a t e d h i g h e r - l e v e l n o t a t i o n s . I a m r e f e r r i n g

    t o t h e p r e s e n t a t i o n o f a u n i c a t i o n a l g o r i t h m b y D a v i d R y d e h e a r d a n d R o d

    B u r s t a l l i n 1 8 ] a n d 1 7 ] .

    I n t h e i r p a p e r 1 8 ] R y d e h e a r d a n d B u r s t a l l d e n e d t h e c o m p o s i t i o n o f

    a p a r a l l e l p a i r o f m o r p h i s m s , F , w i t h a m o r p h i s m , f , w h i c h t h e y d e n o t e d

    b y F f . T h e y a l s o u s e d t h e s y m b o l \ " f o r c o m p o s i t i o n o f m o r p h i s m s .

    ( S e e g u r e 7 . ) N o w t h e r e i s a v e r y i m p o r t a n t p r o p e r t y t h a t i s i n v i s i b l e i n

    d i a g r a m m a t i c f o r m , n a m e l y :

    ( F f ) g = F ( f g )

  • 7/29/2019 Making Formality Work for Us

    13/31

    1 3

    A c a p i t a l l e t t e r d e n o t e s a p a r a l l e l p a i r o f m o r p h i s m s .

    A s m a l l l e t t e r d e n o t e s a m o r p h i s m .

    q q q

    q q q

    q q q q

    F

    -

    -

    f

    -

    f

    -

    g

    -

    F

    -

    -

    f

    -

    g

    -

    F f

    f g

    ( F f ) g = F ( f g )

    U s e \ " f o r b o t h \ " a n d \ "

    ( F f ) g = F ( f g )

    T h u s w r i t e F f g

    F i g u r e 7 : C o m p o s i t i o n o f m o r p h i s m s .

    I t c a n b e m a d e i n v i s i b l e i n t h e l i n e a r n o t a t i o n i f , i n s t e a d o f u s i n g d i e r e n t

    s y m b o l s \ " a n d \ " f o r t h e t w o t y p e s o f c o m p o s i t i o n , w e u s e j u s t o n e | s a y

    \ " . F o r t h e n t h e l a w b e c o m e s t h e s t a t e m e n t t h a t \ " i s a s s o c i a t i v e :

    ( F f ) g = F ( f g )

    a n d w e a r e f r e e t o o m i t t h e p a r e n t h e s e s .

    R y d e h e a r d a n d B u r s t a l l s t a t e b u t d o n o t p r o v e t w o t h e o r e m s w h i c h f o r m

    t h e b a s i s o f t h e i r p r e s e n t a t i o n o f t h e u n i c a t i o n a l g o r i t h m . I d i d g o t h r o u g h

    t h a t e x e r c i s e | f o r m a l l y | i n o r d e r t o d e t e r m i n e w h a t s o r t o f i m p r o v e m e n t

    t h i s o v e r l o a d i n g o f n o t a t i o n w o u l d p r o d u c e .

    T h e p r o o f o f t h e i r t h e o r e m 1 i s v e r y s h o r t . E s s e n t i a l l y i t c o n s i s t s o f a

  • 7/29/2019 Making Formality Work for Us

    14/31

    1 4

    F G d e n o t e s t h e c o a l e s c e d s u m o f F a n d G

    F d e n o t e s t h e c o e q u a l i s e r o f F

    = = F F = ( f f ) f o r s o m e f ,

    i . e . F i s a p a r a l l e l p a i r o f e q u a l a r r o w s

    ( P 1 ) = = ( ( F G ) h ) = = ( F h ) = = ( G h )

    ( P 2 ) = = ( F F )

    ( P 3 ) = = ( F F h )

    = = ( ( F G ) F ( G F ) )

    f ( P 1 ) g

    = = ( F F ( G F ) ) = = ( G F ( G F ) )

    f ( P 2 ) F : = G F g

    = = ( F F ( G F ) )

    f ( P 3 ) F h : = F ( G F ) g

    t r u e

    F i g u r e 8 : L e m m a i n t h e c o n s t r u c t i o n o f ( F G ) .

    p r o o f o f p r o p e r t y P 1 s h o w n i n g u r e 8 t o g e t h e r w i t h t h e t h r e e s t e p p r o o f

    t h a t f o l l o w s . N o w e x a m i n e t h e l a t t e r p r o o f a n d y o u w i l l s e e t h a t t h e a s s o -

    c i a t i v i t y o f \ " i s u s e d t h r e e t i m e s . T h i s i s m a d e e x p l i c i t i n g u r e 9 w h e r e

    t h e R y d e h e a r d a n d B u r s t a l l n o t a t i o n h a s b e e n r e i n t r o d u c e d . N o t e t h a t ( P 0 )

    h a s b e e n u s e d t w i c e i n s t e p 2 , o n c e f o r e a c h a r g u m e n t o f t h e c o n j u n c t i o n .

    T h r e e s t e p s s a v e d i n a p r o o f o f l e n g t h s i x d o e s n o t a m o u n t t o m u c h b u t

    b e a r i n m i n d t h a t a f a c t o r o f t w o s a v i n g o n s o m e t h i n g t h a t m a y b e \ 1 0 t o

    5 0 " t i m e s t h e l e n g t h o f a m a t h e m a t i c s t e x t b o o k d o e s . M o r e i m p o r t a n t l y , t h e

    c h o i c e o f n o t a t i o n c a n g r e a t l y i n u e n c e t h e r e c o g n i t i o n o r n o n - r e c o g n i t i o n o f

    b a s i c p r o o f s t e p s .

    R y d e h e a r d a n d B u r s t a l l ' s p r e s e n t a t i o n o f u n i c a t i o n b r i n g s m e n e a t l y t o

    a t o p i c t h a t i s d e a r t o m y h e a r t s i n c e i t i s t h e t o p i c w i t h w h i c h I b e g a n m y

    r e s e a r c h c a r e e r . I n t h e n o t a t i o n t h a t I h a v e i n t r o d u c e d , t h e i r t h e o r e m 1 r e a d s

    ( F G ) = F ( G F )

    w h e r e \ " c o n s t r u c t s t h e c o a l e s c e d s u m o f t w o p a i r s o f p a r a l l e l m o r p h i s m s ,

  • 7/29/2019 Making Formality Work for Us

    15/31

    1 5

    ( P 0 ) ( F f ) g = F ( f g )

    ( P 1 ) = = ( ( F G ) h ) = = ( F h ) = = ( G h )

    ( P 2 ) = = ( F F )

    ( P 3 ) = = ( ( F F ) h )

    = = ( ( F G ) ( F ( G F ) ) )

    f ( P 1 ) g

    = = ( F ( F ( G F ) ) ) = = ( G ( F ( G F ) ) )

    f ( P 0 ) g

    = = ( F ( F ( G F ) ) ) = = ( ( G F ) ( G F ) )

    f ( P 2 ) g

    = = ( F ( F ( G F ) ) )

    f ( P 0 ) g

    = = ( ( F F ) ( G F ) )

    f ( P 2 ) g

    t r u e

    F i g u r e 9 : M a k i n g P 0 e x p l i c i t .

    \ H " i s t h e c o e q u a l i s e r o f H a n d \ " i s c o m p o s i t i o n . T h i s e x p r e s s i o n i s i m -

    m e d i a t e l y r e c o g n i s a b l e a s a f u n d a m e n t a l p r o p e r t y o f a r e g u l a r a l g e b r a , i n d e e d

    t h e p r o p e r t y b a s i c t o s e v e r a l c l o s u r e a l g o r i t h m s s u c h a s W a r s h a l l ' s a l g o r i t h m

    f o r c o n s t r u c t i n g t h e t r a n s i t i v e c l o s u r e o f a b o o l e a n m a t r i x , o r G a u s s i a n e l i m -

    i n a t i o n f o r c o m p u t i n g t h e i n v e r s e o f a r e a l m a t r i x 3 ] .

    M y r s t a t t e m p t t o d i s c u s s t h e d e s i g n o f n o t a t i o n w a s a t a w o r k s h o p i n

    S w e d e n f o u r y e a r s a g o w h e r e I p r e s e n t e d a f o r m a l d e r i v a t i o n o f W a r s h a l l ' s

    a l g o r i t h m . M y p r e s e n t a t i o n w a s g r e e t e d b y c o n s t e r n a t i o n m a i n l y b e c a u s e I

    h a d d a r e d t o d i v e r g e f r o m c o n v e n t i o n a l , f a m i l i a r n o t a t i o n b u t a l s o b e c a u s e

    I c l a i m e d t o h a v e a f o r m a l d e r i v a t i o n t h a t u s e d f e w e r s t e p s t h a n t h e t o t a l

    n u m b e r o f s t a t e d a x i o m s . I m u s t a d m i t t o h a v i n g b e e n o v e r - z e a l o u s i n m y

    s t a t i s t i c s | a \ s t e p " o f t e n i n v o l v e d a c o m b i n a t i o n o f m o r e t h a n o n e p r o p e r t y .

    N e v e r t h e l e s s , i t i s p o s s i b l e t h a t a d e r i v a t i o n c a n i n v o l v e f e w e r s t e p s t h a n t h e r e

    a r e a x i o m s : i f t h e n o t a t i o n i s s o c h o s e n t h a t t h e m o s t f r e q u e n t l y u s e d a x i o m s

    b e c o m e \ i n v i s i b l e " .

    I s h a l l t r y o n c e a g a i n t o p r e s e n t o n e o f t h e m o r e i n t e r e s t i n g p a r t s o f t h a t

  • 7/29/2019 Making Formality Work for Us

    16/31

    1 6

    A =

    2

    6

    6

    6

    6

    6

    6

    4

    a

    0 0

    a

    0 1

    a

    1 0

    a

    1 1

    3

    7

    7

    7

    7

    7

    7

    5

    i A =

    2

    6

    6

    6

    4

    0

    a

    i 0

    a

    i 1

    0

    3

    7

    7

    7

    5

    A j =

    2

    6

    6

    6

    6

    6

    6

    4

    a

    0 j

    a

    1 j

    0 0

    3

    7

    7

    7

    7

    7

    7

    5

    F i g u r e 1 0 : E x t r a c t i o n o f r o w s a n d c o l u m n s .

    d e r i v a t i o n . A w a r n i n g b e f o r e h a n d ! F o u r y e a r s a g o I d i d n ' t d a r e t o d i v e r g e

    t o o f a r f r o m s t a n d a r d n o t a t i o n n o w I h a v e m o r e c o u r a g e .

    T h e \ s t a n d a r d n o t a t i o n " t h a t I a m r e f e r r i n g t o i s m a t r i x n o t a t i o n . G i v e n

    a s q u a r e m a t r i x A a n d a n i n d e x i , I s h a l l a l s o u s e i t o d e n o t e a m a t r i x o f t h e

    s a m e s i z e a s A c o n s i s t i n g o f a l l 0 ' s e x c e p t i n g f o r t h e ( i , i ) t h e l e m e n t w h i c h i s

    d e n e d t o b e 1 . T h e s y m b o l \ " i s u s e d t o d e n o t e m a t r i x m u l t i p l i c a t i o n .

    W i t h t h i s n o t a t i o n , a m a t r i x c o n s i s t i n g o f a l l 0 ' s e x c e p t i n g f o r t h e i t h r o w

    o f A i s d e n o t e d i A . ( S e e g u r e 1 1 . ) S i m i l a r l y , a m a t r i x o f t h e s a m e s i z e a s

    A c o n s i s t i n g o f a l l 0 ' s e x c e p t i n g f o r t h e j t h c o l u m n o f A i s d e n o t e d b y A j .

    T h e i m p o r t a n c e o f t h i s n o t a t i o n i s t h a t ( a s i s w e l l k n o w n ) m a t r i x m u l t i -

    p l i c a t i o n i s a s s o c i a t i v e . T h u s , f o r e x a m p l e , w e c a n i m m e d i a t e l y o b s e r v e t h a t

    t h e e x t r a c t i o n o f t h e ( i j ) t h e l e m e n t o f a m a t r i x c a n b e p e r f o r m e d b y r s t

    e x t r a c t i n g t h e j t h c o l u m n f o l l o w e d b y t h e i t h r o w o r , v i c e v e r s a , b y r s t

    e x t r a c t i n g t h e i t h r o w f o l l o w e d b y t h e j t h c o l u m n . F o r o u r p u r p o s e s t h e

  • 7/29/2019 Making Formality Work for Us

    17/31

    1 7

    ( P 0 ) i ( A j ) = ( i A ) j

    W r i t e i A j

    ( P 1 ) i ( A B ) = ( i A ) B

    W r i t e i A B

    ( P 2 ) A ( i B ) = ( A i ) B

    W r i t e A i B

    ( P 3 ) i j = 0 i f i 6= j

    = i i f i = j

    ( P 4 ) i 0 = 0

    ( P 5 ) 0 i = 0

    F i g u r e 1 1 : M a t r i x p r o p e r t i e s .

    o r d e r i s i r r e l e v a n t a n d s o w e c h o o s e t o w r i t e ( s e e g u r e 1 1 )

    i A j

    S i m i l a r l y , e x t r a c t i n g t h e i t h r o w o f A m u l t i p l i e d b y B i s t h e s a m e a s

    m u l t i p l y i n g t h e m a t r i x f o r m e d f r o m t h e i t h r o w o f A b y t h e m a t r i x B .

    I n d e e d , a n y s e q u e n c e o f m a t r i c e s a n d i n d i c e s c a n b e i n t e r p r e t e d i n a v a r i e t y

    o f w a y s a s a s u c c e s s i o n o f o p e r a t i o n s i n v o l v i n g m a t r i x m u l t i p l i c a t i o n a n d

    t h e e x t r a c t i o n o f r o w s o r c o l u m n s , e a c h i n t e r p r e t a t i o n c o r r e s p o n d i n g t o a

    p a r t i c u l a r o r d e r i n g o f t h e \ " o p e r a t i o n s . B u t , i t i s d i s t i n c t l y p r e f e r a b l e n o t t o

    x o n a n y o r d e r i n g a n d t o a d o p t a n o t a t i o n t h a t m a k e s n o s u c h c o m m i t m e n t .

    T h e f o u r s t e p p r o o f i n g . 1 2 i s o n e t h a t I t h o u g h t w o r t h y o f o n l y o n e s t e p

    i n t h e p a p e r r e f e r r e d t o a b o v e . T h i s t i m e I h a v e c h o s e n t o s p e l l i t o u t s o m e

    m o r e . T a k e n t o g e t h e r , ( P 3 ) , ( P 4 ) a n d ( P 5 ) ( s e e g . 1 1 ) i m p l y t h a t w h e n t w o

    u n e q u a l i n d i c e s a r e a d j a c e n t i n a n e x p r e s s i o n t h e w h o l e e x p r e s s i o n m a y b e

    r e d u c e d t o t h e n u l l m a t r i x . F o r m a l l y , t h e d e t a i l s a r e m o r e l o n g - w i n d e d . I n

    t h e r s t s t e p w e p a r e n t h e s i s e t h e e x p r e s s i o n i n a w a y t h a t a n t i c i p a t e s t h e u s e

    o f p r o p e r t y ( P 3 ) . S u b s e q u e n t l y t h e p r o p e r t i e s o f 0 a r e u s e d t o r e d u c e t h e

    q u a n t i e d e x p r e s s i o n t o t h e n u l l m a t r i x a n d t h e n p r o p e r t i e s o f s u m m a t i o n

    y i e l d t h e n a l e x p r e s s i o n . I n r e a l i t y , t h e r e f o r e , a c o m p l e t e f o r m a l p r o o f o f

  • 7/29/2019 Making Formality Work for Us

    18/31

    1 8

    P

    ( i : i 6= k : k A k i A k )

    = f a s s o c i a t i v i t y g

    P

    ( i : i 6= k : k A ( k i ) A k )

    = f P 3 , c o n t e x t g

    P

    ( i : i 6= k : k A 0 A k )

    = f P 4 P 5 g

    P

    ( i : i 6= k : 0 )

    = f q u a n t i e r s g

    0

    F i g u r e 1 2 : T h e n o t a t i o n i n u s e .

    t h i s l i t t l e l e m m a i s a b o u t 1 0 s t e p s .

    T w o p o i n t s a b o u t t h i s e x a m p l e a r e w o r t h s t r e s s i n g . F i r s t , c o n s i d e r a b l e

    a d v a n t a g e h a s b e e n g a i n e d b y c h o o s i n g t o n a m e m a t r i c e s o f t h e s a m e s i z e

    r a t h e r t h a n r o w o r c o l u m n v e c t o r s . T h e i m p o r t a n c e o f w h a t a n d w h a t n o t

    t o n a m e i s d i s c u s s e d i n s o m e d e t a i l b y v a n G a s t e r e n 9 ] . S e c o n d , t h e c h o s e n

    n o t a t i o n e n a b l e s t h e e y e t o g r o u p t o g e t h e r i n d i c e s m u c h m o r e s o t h a n t h e

    c o n v e n t i o n a l n o t a t i o n

    A

    k k

    A

    i k

    A s y o u w i l l h a v e n o t i c e d b y n o w , t h e r ^ o l e o f t y p e i n f o r m a t i o n i s c r u c i a l

    i n d e t e r m i n i n g t h e b o u n d a r i e s o f t h e s e n o t a t i o n a l g a m e s . A s i m p l e e x a m p l e

    w i l l s u c e t o d e m o n s t r a t e t h a t i t i s n o t a l w a y s p o s s i b l e t o o v e r l o a d o n e

    s y m b o l w i t h t h e m e a n i n g o f t w o d i e r e n t o p e r a t o r s . T h e e q u i v a l e n c e ( )

    a n d i n e q u i v a l e n c e ( 6 ) o p e r a t o r s a r e b o t h a s s o c i a t i v e a n d s y m m e t r i c a n d

    t o g e t h e r e n j o y t h e p r o p e r t y

    a ( b 6 c ) = ( a b ) 6 c

    B u t i t w o u l d b e e x t r e m e l y f o o l h a r d y t o d e n o t e t h e m b o t h b y t h e s a m e s y m -

    b o l !

    T h e r e l i a n c e o n t y p e i n f o r m a t i o n h a s b e e n t a k e n o n e s t e p t o o f a r , i n m y

    v i e w , b y M e e r t e n s 1 5 ] i n a n o t h e r w i s e o u t s t a n d i n g p a p e r . H e o b s e r v e s t h a t

    f u n c t i o n a p p l i c a t i o n ( h e r e d e n o t e d b y \ " ) a n d f u n c t i o n c o m p o s i t i o n ( h e r e

  • 7/29/2019 Making Formality Work for Us

    19/31

    1 9

    d e n o t e d b y \ " ) t o g e t h e r e n j o y t h e p r o p e r t y t h a t

    ( f g ) : x = f : ( g : x )

    H e t h e r e f o r e c h o o s e s t o d e n o t e b o t h b y j u x t a p o s i t i o n ( a n d d u b s i t \ a p p o s i -

    t i o n " ) , t h u s :

    f g x

    T h i s n o t u n c o m m o n n o t a t i o n a l c o n v e n t i o n i s b e d e v i l l e d b y t h e f a c t t h a t

    \ f g x " c a n b e i n t e r p r e t e d i n s i x s e m a n t i c a l l y d i e r e n t w a y s n o t a l l o f w h i c h

    c a n b e d i s t i n g u i s h e d b y t y p e c o n s i d e r a t i o n s . T h e u s e o f \ x " m i s l e a d i n g l y

    s u g g e s t s t h a t i t a l w a y s d e n o t e s a v a l u e a n d n o t a f u n c t i o n , b u t i n t h e l a t t e r

    c a s e e r r o r s c a n o c c u r . C o n s i d e r , f o r e x a m p l e ,

    d o u b l e ( + 1 ) ( + 2 )

    w h e r e d o u b l e : f = f f

    T h e n

    ( d o u b l e : ( + 1 ) ) ( + 2 ) = + 4

    b u t

    d o u b l e : ( ( + 1 ) ( + 2 ) ) = + 6

    I . e . \ d o u b l e ( + 1 ) ( + 2 ) " h a s t w o u n e q u a l i n t e r p r e t a t i o n s . M e e r t e n s w a s w e l l

    a w a r e o f t h e p r o b l e m s a n d e x p l i c i t l y r e f e r s t o t h e f a c t t h a t h i s u s e o f t h e

    n o t a t i o n i s l i m i t e d t o s i t u a t i o n s w h e r e t h e t y p e o f f u n c t i o n s i n v o l v e d i s n o t s o

    c o m p l e x a s t h a t o f d o u b l e , ( t y p i c a l l y i n p r o o f s b y i n d u c t i o n o f t h e p r o p e r t i e s

    o f l i s t - p r o c e s s i n g f u n c t i o n s ) a n d , c o n s e q u e n t l y , w h e r e t h e d a n g e r o f e r r o r i s

    a b s e n t . F i g u r e 1 3 i l l u s t r a t e s a c a s e w h e r e p o s s i b l e m i s i n t e r p r e t a t i o n s ( f o r

    i n s t a n c e , i n t e r p r e t i n g t h e s e c o n d l i n e a s

    + + = ( s + + t )

    ) a r e p r o h i b i t e d b y t h e s u p p l i e d t y p e i n f o r m a t i o n . I n s u c h c a s e s t h e c o n v e n -

    t i o n c a n b e b e n e c i a l . H o w e v e r , a s o u r a b i l i t y t o r e a s o n a b o u t t y p e s t r u c t u r e s

    i n c r e a s e s o u r u s e o f h i g h e r - o r d e r f u n c t i o n s i s b e c o m i n g c o m m o n p l a c e . F o r

    t h i s r e a s o n , i n m y o w n w o r k 1 ] I h a v e r e j e c t e d M e e r t e n s ' c o n v e n t i o n .

    I w o u l d l i k e t o r e t u r n , a t t h i s p o i n t , t o t h e a g g r e g a t e d s e g m e n t s u m t h e -

    o r e m m e n t i o n e d a t t h e b e g i n n i n g o f t h i s l e c t u r e f o r t h e p r o o f o f t h e t h e o r e m

    h a s c o n s i d e r a b l y i n c r e a s e d m y u n d e r s t a n d i n g o f t h e r e l e v a n c e o f c a t e g o r i c a l

  • 7/29/2019 Making Formality Work for Us

    20/31

    2 0

    ( P 1 ) + + = x + + y = + + = x + + + + = y

    ( P 2 ) f x + + y = f x + + f y

    j s t 2 A

    + + = s = s

    + + = t = t

    + + = s + + t

    = f ( P 2 ) g

    + + = s + + t

    = f ( P 1 ) g

    + + = s + + + + = t

    = f i n d u c t i o n h y p o . g

    s + + t

    ] j

    F i g u r e 1 3 : E x p l o i t i n g t y p e i n f o r m a t i o n t o t h e e x t r e m e .

    c o n c e p t s t o p r o g r a m c o n s t r u c t i o n . I s h o u l d w a r n y o u , h o w e v e r , t h a t m y

    u n d e r s t a n d i n g a n d k n o w l e d g e o f c a t e g o r y t h e o r y r e m a i n s v e r y w e a k w h a t

    u n d e r s t a n d i n g I h a v e i s l a r g e l y d u e t o H o a r e ' s 1 0 ] r e f r e s h i n g a p p r o a c h t o t h e

    t h e o r y .

    S o m e v e r y b r i e f b a c k g r o u n d i n f o r m a t i o n w i l l h e l p t o s e t t h e p i c t u r e f o r

    w h a t I h a v e t o s a y . I n E i n d h o v e n m a n y \ s e g m e n t p r o b l e m s " h a v e b e e n c o n -

    c e i v e d a s i l l u s t r a t i o n s o f t h e i r p r o g r a m d e s i g n m e t h o d . S o m e a r e i n c l u d e d

    i n t h e b o o k b y D i j k s t r a a n d F e i j e n 8 ] s o m e a r e i n c l u d e d i n M a r t i n R e m ' s

    c o l u m n i n t h e S c i e n c e o f C o m p u t e r P r o g r a m m i n g . I n t h e c o u r s e o f h i s M a r k -

    t o b e r d o r f l e c t u r e s 5 ] R i c h a r d B i r d s t a t e d a t h e o r e m a p p l i c a b l e t o s o m e s u c h

    p r o b l e m s . H i s t h e o r e m , h o w e v e r , c o n t a i n s a l a r g e n u m b e r o f u n n e c e s s a r y a s -

    s u m p t i o n s m y o w n t h e o r e m d o e s n o t a n d i s c o n s e q u e n t l y m u c h m o r e w i d e l y

    a p p l i c a b l e .

    I n o r d e r t o e x c l u d e a l l u n n e c e s s a r y a s s u m p t i o n s I h a d t o p a y v e r y g r e a t

  • 7/29/2019 Making Formality Work for Us

    21/31

    2 1

    F u n c t o r s

    n o n - e m p t y l i s t s

    (

    t y p e c o n s t r u c t o r A

    +

    m a p o p e r a t o r f

    +

    p o s s i b l y - e m p t y l i s t s

    (

    t y p e c o n s t r u c t o r A

    m a p o p e r a t o r f

    ( P o l y m o r p h i c ) n a t u r a l t r a n s f o r m a t i o n s

    :

    +

    :

    ; !

    :

    :

    ; !

    :

    +

    :

    ; !

    +

    F i g u r e 1 4 : T y p e s a n d n a t u r a l t r a n s f o r m a t i o n s u s e d i n a g g r e g a t e d s e g m e n t

    s u m t h e o r e m .

    a t t e n t i o n t o w h e t h e r a l i s t c o u l d b e e m p t y o r n o t . I d i d s o b y m a k i n g a c l e a r

    t y p e d i s t i n c t i o n b e t w e e n n o n - e m p t y l i s t s a n d p o s s i b l y - e m p t y l i s t s . T h u s , I

    d e n e d t w o f u n c t o r s

    +

    a n d . F o r t y p e A , A

    +

    i s t h e t y p e o f n o n - e m p t y l i s t s

    w i t h e l e m e n t s t a k e n f r o m A a n d f o r f u n c t i o n f 2 A ! B f

    +

    i s t h e f u n c t i o n

    o f t y p e A

    +

    ! B

    +

    t h a t i s e x e c u t e d b y \ m a p p i n g " f t o e a c h e l e m e n t o f a

    g i v e n l i s t . A a n d f a r e d e n e d i n t h e s a m e w a y b u t f o r p o s s i b l y - e m p t y

    l i s t s . ( S e e g u r e 1 4 . )

    A c o n s e q u e n c e o f t h e d e c i s i o n t o s e p a r a t e t h e t w o t y p e s w a s t h a t I

    n e e d e d t o i n t r o d u c e s e v e r a l ( p o l y m o r p h i c ) n a t u r a l t r a n s f o r m a t i o n s .

    4

    T h e

    b a s i c t r a n s f o r m a t i o n s I u s e d a r e l i s t e d i n g u r e 1 4 . N o t e t h a t j u x t a p o s i t i o n

    i s u s e d t o d e n o t e t h e ( h o r i z o n t a l ) c o m p o s i t i o n o f t w o f u n c t o r s . J u x t a p o s i t i o n

    w i l l a l s o b e u s e d t o d e n o t e a p p l i c a t i o n o f a f u n c t o r t o a n a t u r a l t r a n s f o r m a -

    t i o n .

    D u r i n g t h e c o u r s e o f m y c a l c u l a t i o n s I h a d r e a s o n t o c o n s i d e r a n e x p r e s -

    s i o n s o m e w h a t l i k e

    f

    + +

    ( 1 )

    4

    I t i s k n o w n t h a t , i n t h e c a t e g o r y o f s e t s , a l l p o l y m o r p h i c f u n c t i o n s f r o m f u n c t o r F t o

    f u n c t o r G a r e n a t u r a l t r a n s f o r m a t i o n s ( 1 9 , 7 ] ) . H o w e v e r n o t a l l n a t u r a l t r a n s f o r m a t i o n s

    a r e p o l y m o r p h i c .

  • 7/29/2019 Making Formality Work for Us

    22/31

    2 2

    1 : u

    +

    = u f o r a l l u

    2 : v = v f o r a l l v

    3 : w

    +

    = w

    +

    f o r a l l w

    f

    + +

    = f d i s t r i b u t i v i t y g

    ( f

    + +

    )

    = f ( 1 ) , u : = f

    +

    g

    ( f

    +

    )

    = f d i s t r i b u t i v i t y g

    f

    +

    = f ( 2 ) , v : = f

    +

    g

    f

    +

    = f ( 1 ) , w : = f g

    f

    +

    F i g u r e 1 5 : A n o t h e r n a t u r a l t r a n s f o r m a t i o n .

    a n d t o t r a n s f o r m i t i n t o a n e x p r e s s i o n o f t h e f o r m

    f y

    w h e r e a n d y w e r e a t t h a t t i m e u n k n o w n t o m e . I n o t h e r w o r d s m y o b j e c t i v e

    w a s t o c o m m u t e f f r o m o n e s i d e o f t h e e x p r e s s i o n t o t h e o t h e r . ( I n a c t u a l

    f a c t I h a v e g r o s s l y s i m p l i e d t h e p r o b l e m t o o n e w h e r e t h e p a t t e r n i n t h e

    c a l c u l a t i o n c o u l d b e r e c o g n i s e d d u r i n g a l e c t u r e s u c h a s t h i s . )

    T h e a r d e n t s q u i g g o l i s t w i l l h a v e n o h e s i t a t i o n i n g r a s p i n g ( 1 ) a n d a p p l y -

    i n g h i s b e l o v e d s t y l e o f e q u a t i o n a l r e a s o n i n g . A f t e r a f e w m i n u t e s h e w i l l

    a n n o u n c e t h a t t h e p r o b l e m i s t r i v i a l a n d d i s p l a y a c a l c u l a t i o n s o m e w h a t l i k e

    t h e o n e i n g u r e 1 5 .

    T h e p r o b l e m i s t r i v i a l n e v e r t h e l e s s t r e m e n d o u s b e n e t i s a c c r u e d b y

    r e g a r d i n g i t s o m e w h a t c r i t i c a l l y . L o o k , f o r i n s t a n c e , a t h o w o f t e n s y m b o l s

    a r e c a r r i e d d o w n f r o m o n e l i n e t o t h e n e x t t h e \ a c t i o n " t a k e s p l a c e w i t h i n a

    l o c a l i s e d r e g i o n a t e a c h s t e p b u t i t i s s u r r o u n d e d b y o t h e r s y m b o l s t h a t o n l y

    o b s c u r e t h e c a l c u l a t i o n .

  • 7/29/2019 Making Formality Work for Us

    23/31

    2 3

    " : y

    :

    ; !

    z 8 ( f : : " f y = f z " )

    " : y

    :

    ; !

    z

    p o l y

    " : o y

    :

    ; !

    o z

    " : y

    :

    ; !

    z

    d i s t r i b u t i v i t y

    " o : y o

    :

    ; !

    z o

    "

    1

    : y

    :

    ; !

    z

    "

    2

    : z

    :

    ; !

    o

    c o m p o s i t i o n

    "

    2

    "

    1

    : y

    :

    ; !

    o

    :

    +

    :

    ; !

    :

    :

    ; !

    :

    +

    :

    ; !

    +

    :

    +

    :

    ; !

    ( d i s t r i b u t i v i t y )

    :

    +

    :

    ; !

    ( c o m p o s i t i o n )

    :

    + +

    :

    ; !

    +

    ( p o l y )

    :

    + +

    :

    ; !

    +

    ( c o m p o s i t i o n )

    H e n c e , b y d e n i t i o n ,

    f

    + +

    = f

    +

    F i g u r e 1 6 : R e m o v i n g t h e c r u d .

  • 7/29/2019 Making Formality Work for Us

    24/31

    2 4

    T h e f o r m o f t h e t h r e e p r e m i s e s s t r o n g l y s u g g e s t a n o t a t i o n a l i m p r o v e -

    m e n t . N o t e t h a t t h e y a l l h a v e t h e s a m e f o r m : t h e r s t a n d l a s t s y m b o l

    i s r e p e a t e d i n e a c h c a s e , a n d e a c h e x p r e s s e s a n e q u a l i t y b e t w e e n a p a i r o f

    f u n c t i o n c o m p o s i t i o n s . A b o v e a l l , n o t i c e t h a t t h e d u m m i e s u v a n d w p l a y

    n o r ^ o l e e x c e p t a s p l a c e h o l d e r s . W e a r e l e d , t h e r e f o r e , t o i n t r o d u c e a s p e c i a l

    n o t a t i o n f o r t h i s t y p e o f p r o p e r t y . S p e c i c a l l y ( s e e g u r e 1 6 ) w e w r i t e

    " : y

    :

    ; !

    z

    i n p l a c e o f

    8 ( f : : " f y = f z " )

    ( L e s t t h e r e b e s o m e m i s u n d e r s t a n d i n g l e t m e s a y a t t h e o u t s e t t h a t t h e

    n o t a t i o n i s n o t m y i n v e n t i o n i t i s s t a n d a r d t o m a n y c a t e g o r y t h e o r y t e x t s

    a l t h o u g h s o m e t i m e s t h e d o t a b o v e t h e a r r o w i s o m i t t e d . )

    H a v i n g i n t r o d u c e d a n e w n o t a t i o n i t b e h o v e s u s t o e x a m i n e i t s p r o p e r t i e s .

    T h r e e o f t h e s e a r e s h o w n i n g u r e 1 6 i n t h e f o r m o f i n f e r e n c e r u l e s . T h e

    r s t I h a v e c a l l e d p o l y b e c a u s e i t d e p e n d s o n t h e n a t u r a l t r a n s f o r m a t i o n "

    b e i n g p o l y m o r p h i c t h e s e c o n d I h a v e c a l l e d d i s t r i b u t i v i t y b e c a u s e i t i s a

    c o n s e q u e n c e o f t h e d i s t r i b u t i v i t y r e q u i r e m e n t f o r o t o b e a f u n c t o r t h e t h i r d ,

    c o m p o s i t i o n , i s a c o n s e q u e n c e o f t h e a s s o c i a t i v i t y o f f u n c t i o n c o m p o s i t i o n .

    W i t h t h e s e r u l e s a d e r i v a t i o n o f t h e r e q u i r e d p r o p e r t y c a n b e w r i t t e n

    d o w n t h a t c o n t a i n s n o u n n e c e s s a r y c l u t t e r . I t i s s h o w n i n g u r e 1 6 . N o t e

    t h a t i t h a s p r e c i s e l y t h e s a m e l e n g t h a s t h e p r e v i o u s p r o o f , b u t i t i n v o l v e s

    c o n s i d e r a b l y l e s s w r i t i n g . I n d e e d , t h e c a l c u l a t i o n h a s b e e n s o s i m p l i e d t h a t

    i t i s h a r d l y n e c e s s a r y t o w r i t e d o w n t h e f o u r i n i t i a l s t e p s .

    I t i s n o w t i m e t o s h i f t t h e d i r e c t i o n o f t h i s l e c t u r e | f o r a s h o r t w h i l e

    | t o w a r d s t y p e t h e o r y . E l s e w h e r e , I a n d m y c o l l e a g u e s 4 ] h a v e a r g u e d t h a t

    t h e p r e v a l e n t n o t i o n t h a t

    t y p e s t a t i c a l l y c h e c k a b l e

    i s a m a j o r o b s t a c l e t o f u r t h e r p r o g r e s s . H o w m u c h s o b e c a m e a b u n d a n t l y

    c l e a r t o m e w h e n J o h n H u g h e s o f G l a s g o w U n i v e r s i t y v i s i t e d u s a n d t a l k e d

    a b o u t p o l y m o r p h i c f u n c t i o n s o f t y p e

    y ! z

    f o r a l l , f o r s o m e f u n c t o r s y a n d z . H i s o b s e r v a t i o n | t h a t s u c h f u n c t i o n s

    a r e n e c e s s a r i l y n a t u r a l t r a n s f o r m a t i o n s | m a d e m e a w a r e h o w i g n o r a n t I

  • 7/29/2019 Making Formality Work for Us

    25/31

    2 5

    a n d T F

    T T F

    F F F

    a n d 2 B o o l B o o l ; ! B o o l

    ^ 2 ( ! B o o l ) ( ! B o o l ) ; ! ( ! B o o l )

    ( p q ) : x = ( p : x ) a n d ( q : x )

    F i g u r e 1 7 : L i f t i n g a n d .

    w a s o f t h e p r o p e r t i e s o f p o l y m o r p h i s m . ( I k n o w w h y I a m i g n o r a n t i t i s

    b e c a u s e d i s c u s s i o n o f t h e s u b j e c t h a s b e e n d o m i n a t e d f o r m a n y y e a r s b y i t s

    u s e i n a u t o m a t i c t y p e i n f e r e n c e . ) F o l l o w i n g o n f r o m H u g h e s ' t a l k P e t e r d e

    B r u i n

    5

    r e c e n t l y d i s c o v e r e d a p r o p e r t y o f p o l y m o r p h i s m t h a t m a y p r o v e t o b e

    v e r y f a r - r e a c h i n g . H e o b s e r v e d t h a t , g i v e n t h e i n t r o d u c t i o n r u l e s f o r a t y p e

    c o n s t r u c t o r , s a y , i t i s p o s s i b l e t o s y s t e m a t i c a l l y c o n s t r u c t a n o p e r a t i o n o n

    b i n a r y r e l a t i o n s , w h i c h h e a l s o d e n o t e s b y , s u c h t h a t i f f 2 f o r a l l

    ( i . e . f i s p o l y m o r p h i c i n ) t h e n

    < f f > 2 R

    f o r a l l r e l a t i o n s R ( o f a p p r o p r i a t e t y p e ) . B y c h o o s i n g s u i t a b l e r e l a t i o n s d e

    B r u i n w a s n o t o n l y a b l e t o v e r i f y H u g h e s ' o b s e r v a t i o n b u t a l s o t o v e r i f y t h e

    p r o m o t i o n t h e o r e m s p u t f o r w a r d b y M a l c o l m 1 3 ] . I n o t h e r w o r d s , m a n y o f

    t h e p r o p e r t i e s o n w h i c h o u r c a l c u l a t i o n s r e l y a r e c o n s e q u e n c e s o f t h e f a c t

    t h a t t h e f u n c t i o n s w e u s e a r e v e r y o f t e n p o l y m o r p h i c .

    T h e d i s c o v e r y t h a t p o l y m o r p h i s m i s y e t r i c h e r t h a n I h a d e v e r i m a g i n e d

    l e d m e t o s p e c u l a t e o n a n o t a t i o n a l c o n v e n t i o n t h a t i s u b i q u i t o u s b u t t h a t

    5

    I t h a s b e e n p o i n t e d o u t t o m e t h a t \ d e B r u i n ' s " t h e o r e m w a s i n f a c t d i s c o v e r e d b y

    R e y n o l d s 1 6 ] a n d c a l l e d t h e \ a b s t r a c t i o n t h e o r e m " . P h i l i p W a d l e r o f G l a s g o w U n i v e r s i t y

    h a s r e c o g n i s e d i t s r e l e v a n c e a n d u s e d i t t o p r o v e a w i d e v a r i e t y o f p r o p e r t i e s o f f a m i l i a r

    o p e r a t o r s l i k e r e d u c e , m a p a n d l t e r 1 9 ] .

  • 7/29/2019 Making Formality Work for Us

    26/31

    2 6

    2 ! ! ( ! ! )

    2 ( ! ! ) ! ( ! ) ! ( ! ! )

    2 ( ! ! ) ! ( ( ! ) ( ! ) ) ! ( ! ! )

    da

    2 ( ! ! ) ! ( ( ! ) ( ! ) ( ! ) ) ! ( ! ! )

    t r u e = T

    : = n o t

    = a n d

    i f = I F

    da

    n o t 2 B o o l ! B o o l : 2 ( ! B o o l ) ! ( ! B o o l )

    b a n d c = c a n d b p q = q p

    I F T T H E N x E L S E y = x i f t r u e t h e n f e l s e g = f

    F i g u r e 1 8 : L i f t i n g c o m b i n a t o r s .

    I h a v e n e v e r s e e n f o r m a l l y j u s t i e d . T h e c o n v e n t i o n i s i n d e e d s o u b i q u i t o u s

    t h a t o n e m a y b e f o r g i v e n f o r n o t b e i n g a w a r e o f i t s e x i s t e n c e . I s h a l l r e f e r

    t o i t b y t h e n a m e \ l i f t i n g " . I t i s t h e c o n v e n t i o n w h e r e b y t h e s a m e s y m b o l

    i s u s e d t o d e n o t e a n o p e r a t o r o f t y p e A B : : : Y ! Z a n d a n o p e r a t o r

    o f t y p e ( ! A ) ( ! B ) : : : ( ! Y ) ! ( ! Z ) . C o n s i d e r ,

    f o r e x a m p l e , t h e B o o l e a n a n d o p e r a t o r d e n e d b y t h e t r u t h t a b l e s h o w n i n

    g u r e 1 7 . T h i s o p e r a t o r c a n e a s i l y b e \ l i f t e d " i n t o a n o p e r a t o r o n p r e d i c a t e s ,

    d e n o t e d h e r e b y \ " , a s d e n e d i n g u r e 1 7 . N o t e t h a t \ a n d " a n d \ " h a v e

    q u i t e d i e r e n t t y p e s . H o w e v e r , c o m m o n p r a c t i c e i s t o d e n o t e t h e m b o t h b y

    t h e s a m e s y m b o l | \ " .

    T h e s a m e h o l d s f o r m a n y o p e r a t o r s , f o r e x a m p l e \ : " ( l o g i c a l n e g a t i o n )

    a n d c o n d i t i o n a l s . I n d e e d , t h e r e i s a s e q u e n c e o f p o l y m o r p h i c c o m b i n a t o r s

    t h e i t h e l e m e n t i n t h e s e q u e n c e l i f t s a f u n c t i o n o f i a r g u m e n t s i n t o a f u n c t i o n

    o f i + 1 a r g u m e n t s o f w h i c h t h e r s t i a r e h i g h e r - o r d e r ( s e e g u r e 1 8 ) . T h e

    0 t h e l e m e n t o f t h i s s e q u e n c e i s t h e w e l l - k n o w n K c o m b i n a t o r t h a t c o n s t r u c t s

    a c o n s t a n t f u n c t i o n f r o m a g i v e n a r g u m e n t . T h e s e c o n d i s t h e c u r r i e d f o r m

    o f t h e f u n c t i o n c o m p o s i t i o n o p e r a t o r . N o t e t h a t a l l a r e p o l y m o r p h i c .

    A l a r g e n u m b e r o f e x a m p l e s | I h a v e y e t t o s e e a n y p r o o f | s u g g e s t s t h a t

    t h e s e c o m b i n a t o r s e n j o y a r e m a r k a b l e p r o p e r t y t h a t f u l l y j u s t i e s t h e i r n e v e r

    b e i n g d e n o t e d , n a m e l y t h a t , g i v e n a n y v a l i d j u d g e m e n t ( a n a s s e r t i o n a b o u t

  • 7/29/2019 Making Formality Work for Us

    27/31

    2 7

    t h e t y p e o f a n o b j e c t , o r a n a s s e r t i o n a b o u t t h e e q u a l i t y o f t w o o b j e c t s ) , a n y

    l i f t e d f o r m o f t h e j u d g e m e n t t h a t i s \ t y p e c o r r e c t " i s a l s o v a l i d . F o r e x a m p l e ,

    w e h a v e t h e j u d g e m e n t

    n o t 2 B o o l ! B o o l

    L i f t i n g i t w e o b t a i n

    n o t 2 ( ! B o o l ) ! ( ! B o o l )

    w h i c h i s c l e a r l y v a l i d . I n s p e c t i o n o f t h e t r u t h t a b l e f o r c o n j u n c t i o n r e v e a l s

    t h e w e l l - k n o w n l a w

    a a n d b =

    B o o l

    b a n d a

    T h e l i f t e d f o r m i s a l s o n o t s u r p r i s i n g :

    p q =

    A ! B o o l

    q p

    S i m i l a r l y , a s s u m i n g t h a t I F 2 B o o l ! ! ! i s d e n e d b y

    I F T T H E N x E L S E y = x

    I F F T H E N x E L S E y = y

    i t i s e a s i l y v e r i e d t h a t

    ( I F

    da

    ) T T H E N f E L S E g =

    A ! B

    f

    ( w h e r e f , g 2 A ! B ) .

    ( S o m e p e o p l e a r e n e v e r c o n v i n c e d b y s i m p l e e x a m p l e s . A m o r e c o m p l i -

    c a t e d e x a m p l e i s

    f ( = ) = ( = ) f ) ( f ) ( ( ) = ) = ( ( ) = ) ( ( f ) ) : )

    T h e l i f t i n g c o m b i n a t o r s o e r t h e m o s t a p p r o p r i a t e e x a m p l e w i t h w h i c h I

    s h o u l d c o n c l u d e t h i s l e c t u r e b e c a u s e t h e y i l l u s t r a t e v e r y e e c t i v e l y h o w n o -

    t a t i o n c a n b e d e s i g n e d s o a s t o m a k e i m p o r t a n t p r o p e r t i e s i n v i s i b l e , a n d t h u s

    t h e i r u s e a u t o m a t i c . T h a t t h e r e a s o n s f o r c h o o s i n g n o t t o d e n o t e t h e m a r e ,

    a s f a r a s I a m a w a r e , n o w h e r e d i s c u s s e d a l s o e m p h a s i s e s j u s t h o w b l i n d w e

    c a n b e i n o u r a c c e p t a n c e o f t h e c o n v e n t i o n s i n t r o d u c e d b y o u r p r e d e c e s s o r s . I

    c a n o n l y h o p e t h a t t h i s t a l k h a s o p e n e d y o u r e y e s t o s o m e o f t h e p o s s i b i l i t i e s .

  • 7/29/2019 Making Formality Work for Us

    28/31

    R E F E R E N C E S 2 8

    R e f e r e n c e s

    1 ] R . C . B a c k h o u s e . A n E x p l o r a t i o n o f t h e B i r d - M e e r t e n s F o r m a l i s m . T e c h -

    n i c a l R e p o r t C S 8 8 1 0 , D e p a r t m e n t o f M a t h e m a t i c s a n d C o m p u t i n g S c i -

    e n c e , U n i v e r s i t y o f G r o n i n g e n , 1 9 8 8 .

    2 ] R . C . B a c k h o u s e . P r o g r a m C o n s t r u c t i o n a n d V e r i c a t i o n . P r e n t i c e - H a l l

    I n t e r n a t i o n a l , L o n d o n , 1 9 8 6 .

    3 ] R . C . B a c k h o u s e a n d B . A . C a r r e . R e g u l a r a l g e b r a a p p l i e d t o p a t h - n d i n g

    p r o b l e m s . J o u r n a l o f t h e I n s t i t u t e o f M a t h e m a t i c s a n d i t s A p p l i c a t i o n s ,

    1 5 : 1 6 1 { 1 8 6 , 1 9 7 5 .

    4 ] R . C . B a c k h o u s e , P . C h i s h o l m , G . M a l c o l m , a n d E . S a a m a n . D o - i t -

    y o u r s e l f t y p e t h e o r y . F o r m a l A s p e c t s o f C o m p u t i n g , 1 : 1 9 { 8 4 , 1 9 8 9 .

    5 ] R . S . B i r d . C o n s t r u c t i v e f u n c t i o n a l p r o g r a m m i n g . I n t e r n a t i o n a l S u m m e r

    S c h o o l o n C o n s t r u c t i v e M e t h o d s i n C o m p u t i n g S c i e n c e , M a r k t o b e r d o r f ,

    2 4 t h J u l y t o 5 t h A u g u s t 1 9 8 8 .

    6 ] N . G . d e B r u i j n . A s u r v e y o f t h e p r o j e c t A U T O M A T H . I n J . P . S e l d i n

    a n d J . R . H i n d l e y , e d i t o r s , T o H . B . C u r r y : E s s a y s i n C o m b i n a t o r y L o g i c ,

    L a m b d a C a l c u l u s , a n d F o r m a l i s m , p a g e s 5 8 9 { 6 0 6 , A c a d e m i c P r e s s , 1 9 8 0 .

    7 ] P e t e r J . d e B r u i n . N a t u r a l n e s s o f p o l y m o r p h i s m . 1 9 8 9 . D e p a r t m e n t o f

    M a t h e m a t i c s a n d C o m p u t i n g S c i e n c e , U n i v e r s i t y o f G r o n i n g e n .

    8 ] E . W . D i j k s t r a a n d W . H . J . F e i j e n . E e n M e t h o d e v a n P r o g r a m m e r e n .

    A c a d e m i c S e r v i c e , D e n H a a g , 1 9 8 4 . N o w a v a i l a b l e a s A M e t h o d o f P r o -

    g r a m m i n g , A d d i s o n - W e s l e y , R e a d i n g , M a s s . , 1 9 8 8 .

    9 ] A . J . M . v a n G a s t e r e n . O n t h e S h a p e o f M a t h e m a t i c a l A r g u m e n t s . P h D

    t h e s i s , D e p a r t m e n t o f M a t h e m a t i c s a n d C o m p u t i n g S c i e n c e , E i n d h o v e n

    U n i v e r s i t y o f T e c h n o l o g y , 1 9 8 8 .

    1 0 ] C . A . R . H o a r e . N o t e s o n a n a p p r o a c h t o c a t e g o r y t h e o r y f o r c o m p u t e r

    s c i e n t i s t s . I n t e r n a t i o n a l S u m m e r S c h o o l o n C o n s t r u c t i v e M e t h o d s i n

    C o m p u t i n g S c i e n c e , M a r k t o b e r d o r f , 2 4 t h J u l y t o 5 t h A u g u s t 1 9 8 8 .

  • 7/29/2019 Making Formality Work for Us

    29/31

    R E F E R E N C E S 2 9

    1 1 ] L . S . v a n B e n t h e m J u t t i n g . C h e c k i n g L a n d a u ' s \ G r u n d l a g e n " i n t h e A U -

    T O M A T H s y s t e m . P h D t h e s i s , E i n d h o v e n U n i v e r s i t y o f T e c h n o l o g y ,

    1 9 7 7 . M a t h e m a t i c a l C e n t r e T r a c t s n r . 8 3 , M a t h . C e n t r e A m s t e r d a m

    1 9 7 9 .

    1 2 ] V l a d i m i r L i f s c h i t z . C o m p u t i n g c i r c u m s c r i p t i o n . I n P r o c . 9 t h I n t e r n a -

    t i o n a l C o n f e r e n c e o n A I , p a g e s 1 2 1 { 1 2 7 , 1 9 8 5 .

    1 3 ] G . M a l c o l m . H o m o m o r p h i s m s a n d P r o m o t a b i l i t y . C o m p u t i n g S c i e n c e

    N o t e s C S 8 8 1 5 , D e p a r t m e n t o f M a t h e m a t i c s a n d C o m p u t i n g S c i e n c e ,

    U n i v e r s i t y o f G r o n i n g e n , 1 9 8 8 .

    1 4 ] J o h n M c C a r t h y . C i r c u m s c r i p t i o n | a f o r m o f n o n - m o n o t o n i c r e a s o n i n g .

    A r t i c i a l I n t e l l i g e n c e , 1 3 : 2 7 { 3 9 , 1 9 8 0 .

    1 5 ] L . M e e r t e n s . A l g o r i t h m i c s { t o w a r d s p r o g r a m m i n g a s a m a t h e m a t i c a l

    a c t i v i t y . I n P r o c e e d i n g s o f t h e C W I S y m p o s i u m o n M a t h e m a t i c s a n d

    C o m p u t e r S c i e n c e , p a g e s 2 8 9 { 3 3 4 , N o r t h - H o l l a n d , 1 9 8 6 .

    1 6 ] J . C . R e y n o l d s . T y p e s , a b s t r a c t i o n a n d p a r a m e t r i c p o l y m o r p h i s m . I n

    R . E . M a s o n , e d i t o r , I F I P ' 8 3 , p a g e s 5 1 3 { 5 2 3 , E l s e v i e r S c i e n c e P u b l i s h -

    e r s , 1 9 8 3 .

    1 7 ] D . E . R y d e h e a r d a n d R . M . B u r s t a l l . C o m p u t a t i o n a l C a t e g o r y T h e o r y .

    P r e n t i c e - H a l l I n t e r n a t i o n a l , 1 9 8 8 .

    1 8 ] D . E . R y d e h e a r d a n d R . M . B u r s t a l l . T h e U n i c a t i o n o f T e r m s : a C a t e -

    g o r y T h e o r e t i c A c c o u n t . T e c h n i c a l R e p o r t U M C S { 8 5 { 8 { 1 , D e p a r t m e n t

    C o m p u t e r S c i e n c e , U n i v e r s i t y o f M a n c h e s t e r , 1 9 8 5 .

    1 9 ] P h i l i p W a d l e r . T h e o r e m s f o r f r e e ! M a r c h 1 9 8 9 . D r a f t r e p o r t , D e p t .

    C o m p . S c i e n c e , U n i v e r s i t y o f G l a s g o w .

  • 7/29/2019 Making Formality Work for Us

    30/31

    R E F E R E N C E S 3 0

    A p p e n d i x . S M L I m p l e m e n t a t i o n o f t h e s e g m e n t s u m f u n c t i o n s

    f u n f s t ( x , _ ) = x

    ( * d a t a t y p e d e f i n i t i o n s

    > * s n o c l i s t s

    > + n o n - e m p t y s n o c l i s t s

    * )

    d a t a t y p e ' a * * = ! ! | > * o f ' a * * * ' a

    a n d ' a + + = T o f ' a | > + o f ' a + + * ' a

    i n f i x > * > +

    ( * c u r r i e d v e r s i o n s o f t h e c o n s t r u c t o r s

    * )

    f u n > > * l a = l > * a

    a n d > > + l a = l > + a

    ( * r e d u c e f u n c t i o n s

    * )

    f u n * / ( c , _ ) ! ! = c

    | * / ( c , i ) ( l > * a ) = i ( * / ( c , i ) l ) a

    a n d + / ( f , _ ) ( T a ) = f a

    | + / ( f , i ) ( l > + a ) = i ( + / ( f , i ) l ) a

    f u n / / f = + / ( f n x = > x , f )

    ( * c o m p o s e c o n s t r u c t o r s w i t h a u x i l i a r y f u n c t i o n

    * )

    f u n > * ~ f l a = l > * f a

    a n d > + ~ f l a = l > + f a

    ( * m a p f u n c t i o n s

    * )

    f u n * * f = * / ( ! ! , > * ~ f )

    a n d + + f = + / ( T o f , > + ~ f )

    \ n e w p a g e

  • 7/29/2019 Making Formality Work for Us

    31/31

    R E F E R E N C E S 3 1

    ( * j o i n f u n c t i o n o n > *

    * )

    f u n + - + l = * / ( l , > > * )

    ( * n a t u r a l t r a n s f o r m a t i o n s

    * )

    v a l t h e t a = + / ( > > * ! ! , > > * )

    v a l e t a = l e t f u n a d d x = * / ( T x , > > + )

    i n a d d ! ! o * * t h e t a

    e n d

    ( * l i s t p r o c e s s i n g f u n c t i o n s

    * )

    v a l t a i l s = l e t f u n f x a = ( + + ( f n y = > y > + a ) x ) > + ( T a )

    i n + / ( T o T , f )

    e n d

    a n d i n i t s = l e t f u n f ( x , g ) a = ( x > * g a , > > + ( g a ) )

    i n f s t o * / ( ( ! ! , T ) , f )

    e n d

    v a l s e g s = e t a o * / ( ! ! , + - + ) o * * ( t h e t a o t a i l s ) o i n i t s

    ( * a g g r e g a t e d s e g m e n t s u m t h e o r e m

    * )

    f u n l h s p c e = / / p o + + ( * / ( e , c ) ) o s e g s

    a n d r h s p c e = l e t f u n f ( x , y ) a = ( p x ( c y a ) , p ( c y a ) e )

    i n f s t o * / ( ( e , e ) , f )

    e n d