P r o v i n g P r o p e r t i e s o f S o r t - - PowerPoint PPT Presentation

p r o v i n g p r o p e r t i e s o f s o r t i n g p r o
SMART_READER_LITE
LIVE PREVIEW

P r o v i n g P r o p e r t i e s o f S o r t - - PowerPoint PPT Presentation

P r o v i n g P r o p e r t i e s o f S o r t i n g P r o g r a ms : A C a s e S t u d y i n H o r n C l a u s e V e r i fj c a t i o n 1 1 E . D e A n g e l i s , F .


slide-1
SLIDE 1

P r

  • v

i n g P r

  • p

e r t i e s

  • f

S

  • r

t i n g P r

  • g

r a ms : A C a s e S t u d y i n H

  • r

n C l a u s e V e r i fj c a t i

  • n

E . D e A n g e l i s

1

, F . F i

  • r

a v a n t i

1

, A . P e t t

  • r
  • s

s i

2

, a n d M. P r

  • i

e t t i

3

1

U n i v e r s i t y

  • f

C h i e t i

  • P

e s c a r a ` G . d ' A n n u n z i

  • '

2

U n i v e r s i t y

  • f

R

  • me

` T

  • r

V e r g a t a '

3

C N R

  • I

s t i t u t

  • d

i A n a l i s i d e i S i s t e mi e d I n f

  • r

ma t i c a

slide-2
SLIDE 2

O v e r v i e w

P r

  • b

l e m V e r i f y i n g p r

  • p

e r t i e s

  • f

f u n c t i

  • n

a l p r

  • g

r a ms

  • n

r e c u r s i v e d a t a t y p e s O u r a p p r

  • a

c h

  • T

r a n s l a t i n g p r

  • g

r a m p r

  • p

e r t i e s i n t

  • C
  • n

s t r a i n e d H

  • r

n C l a u s e s ( C H C s )

  • n

r e c u r s i v e d a t a t y p e s

  • T

r a n s f

  • r

mi n g C H C s

  • n

r e c u r s i v e d a t a t y p e s i n t

  • e

q u i s a t i s fj a b l e C H C s

  • n

i n t e g e r s a n d b

  • l

e a n s C a s e s t u d y : V e r i fj c a t i

  • n
  • f
  • l

i n e a r r e c u r s i v e

  • n
  • n
  • l

i n e a r r e c u r s i v e s

  • r

t i n g p r

  • g

r a ms

slide-3
SLIDE 3
  • S

t a t i c a l l y t y p e d , c a l l

  • b

y

  • v

a l u e , F O f u n c t i

  • n

a l l a n g u a g e ( O C a ml )

  • C
  • mp

u t i n g t h e s u m (

l i s t s u m

) a n d t h e ma x i mu m (

l i s t m a x

)

  • f

t h e a b s

  • l

u t e v a l u e s (

a b s

)

  • f

t h e e l e me n t s

  • f

a l i s t :

t y p e l i s t = N i l | C

  • n

s

  • f

i n t * l i s t ; ; l e t r e c l i s t s u m l = m a t c h l w i t h | N i l

  • >

| C

  • n

s ( x , x s ) ( a b s x ) + l i s t s u m x s ; ;

  • l

e t r r e c l i s t m a x l = m a t c h l w i t h | N i l

  • >

| C

  • n

s ( x , x s ) l e t m = l i s t m a x x s i n m a x ( a b s x ) m ; ;

F u n c t i

  • n

a l p r

  • g

r a ms

  • n

r e c u r s i v e d a t a t y p e s

P r

  • p

e r t y : ∀l .

l i s t s u m

l > =

l i s t m a x

l

slide-4
SLIDE 4

T r a n s l a t i n g P r

  • g

r a m & P r

  • p

e r t y i n t

  • C

H C s

f a l s e :

  • S

< M , l i s t s u m ( L , S ) , l i s t m a x ( L , M ) . % Q u e r y l i s t s u m ( [ ] , S ) :

  • S

= . l i s t s u m ( [ X | X s ] , S ) :

  • S

= S 1 + A , a b s ( X , A ) , l i s t s u m ( X s , S 1 ) . l i s t m a x ( [ ] , M ) :

  • M

= . l i s t m a x ( [ X | X s ] , M ) :

  • a

b s ( X , A ) , m a x ( A , M 1 , M ) , l i s t m a x ( X s , M 1 ) . a b s ( X , A ) :

  • (

X > = , A = X ) ; ( X = < , A =

  • X

) . m a x ( X , Y , Z ) :

  • (

X = < Y

  • 1

, Z = Y ) ; ( X > = Y , Z = X ) .

T h e p r

  • p

e r t y h

  • l

d s i fg t h e c l a u s e s a r e s a t i s fj a b l e ; I n d e e d t h e s e c l a u s e s a r e s a t i s fj a b l e b u t mo d e l s a r e i n fj n i t e d i s j u n c t i

  • n

s :

l i s t s u m ( L , S ) :

  • (

L = [ ] , S = ) ; ( L = [ X ] , a b s ( X , S ) ) ; ( L = [ X , Y ] , a b s ( X , A ) , a b s ( Y , B ) , S = A + B ) ; …! l i s t m a x ( L , M ) :

  • (

L = [ ] , M = ) ; ( L = [ A ] , a b s ( X , M ) ) ; ( L = [ X , Y ] , a b s ( X , A ) , a b s ( Y , B ) , m a x ( A , B , M ) ) ; …!

C H C s

  • l

v e r s ( E l d a r i c a , Z 3 )

  • v

e r t h e q u a n t i fj e r

  • f

r e e T h e

  • r

y

  • f

L i s t s a n d L i n e a r I n t e g e r A r i t h me t i c ( L I A ) c a n n

  • t

s

  • l

v e t h e m ( i . e . , c

  • n

s t r u c t a mo d e l )

slide-5
SLIDE 5

S

  • l

v i n g C H C s

  • n

R e c u r s i v e D a t a t y p e s

( t

  • fj

n d a mo d e l f

  • r

t h e d e r i v e d C H C s )

  • A

p p r

  • a

c h 1 : E x t e n d C H C s

  • l

v i n g b y i n d u c t i

  • n

p r i n c i p l e s : [ R e y n

  • l

d s

  • K

u n c a k 2 1 5 , U n n

  • T
  • r

i i

  • S

a k a mo t

  • 2

1 7 ] .

  • A

p p r

  • a

c h 2 ( t h i h i s t a l k ) : T r a n s f

  • r

m C H C s

  • n

r e c u r u r s i v e d a t a t y p e s i n t

  • e

q u i u i s a t i s fj fj a b l e C H C s w i t h

  • u

t u t r e c u r u r s i v e d a t a t y p e s ( e . g . ,

  • n

i n t e g e r s a n d b

  • l

e a n s

  • n

l y ) . [ Mo r d v i n

  • v
  • F

e d y u k

  • v

i c h 2 1 7 , D e A n g e l i s e t a l . 2 1 8 ] T r a n s f

  • r

ma t i

  • n

s i n s p i r e d b y t e c h n i q u e s f

  • r

e l i mi n a t i n g i n d u c t i v e d a t a s t r u c t u r e s : D e f

  • r

e s t a t i

  • n

[ Wa d l e r ‘ 8 8 ] , U n n e c e s s a r y V a r i a b l e E l i mi n a t i

  • n

b y U n f

  • l

d / F

  • l

d [ P P ‘ 9 1 ] , C

  • n

j u n c t i v e P a r t i a l D e d u c t i

  • n

+ R e d u n d a n t A r g u me n t F i l t e r i n g [ D e S c h r e y e e t a l . ‘ 9 9 ]

slide-6
SLIDE 6

R e c u r s i v e D a t a t y p e E l i mi n a t i

  • n

A l g

  • r

i t h m

f a l s e :

  • S

< M , l i s t s u m ( L , S ) , l i s t m a x ( L , M ) . % L

e x i s t e n t i a l l i s t D e fj n e a n e w p r e d i c a t e

l i s t

  • s

u m

  • m

a x ( S , M ) :

  • l

i s t s u m ( L , S ) , l i s t m a x ( L , M ) .

U n f

  • l

d

l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= , M = . l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= S 1 + A , a b s ( X , A ) , m a x ( A , M 1 , M ) , l i s t s u m ( L ’, S 1 ) , l i s t m a x ( L ’, M 1 ) .

F

  • l

d ( e l i mi n a t e l i s t s )

f a l s e :

  • S

< M , l i s t

  • s

u m

  • m

a x ( S , M ) . l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= , M = . l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= S 1 + A , a b s ( X , A ) , m a x ( A , M 1 , M ) , l i s t

  • s

u m

  • m

a x ( S 1 , M 1 ) .

v a r i a n t c

  • n

j u n c t i

  • n

s

slide-7
SLIDE 7

S

  • l

v i n g C H C s

  • n

L I A

  • E

q u i s a t i s fj a b i l i t y g u a r a n t e e d b y f

  • l

d / u n f

  • l

d r u l e s .

  • N
  • i

n fj n i t e mo d e l s a n d a r e n e e d e d t

  • s

h

  • w

s a t i s fj a b i l t y .

  • S
  • l

v e d b y E l d a r i c a wi t h

  • u

t i n d u c t i

  • n

r u l e s . L I A

  • d

e fj n a b l e mo d e l ( C L P s y n t a x u s e d b y E l d a r i c a ) :

l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

> = M , M > = .

f a l s e :

  • S

< M , l i s t

  • s

u m

  • m

a x ( S , M ) . l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= , M = . l i s t

  • s

u m

  • m

a x ( S , M ) :

  • S

= S 1 + A , a b s ( X , A ) , m a x ( A , M 1 , M ) , l i s t

  • s

u m

  • m

a x ( S 1 , M 1 ) .

slide-8
SLIDE 8

t y p e l i s t = N i l | C

  • n

s

  • f

i n t * l i s t ; ; l e t r r e c i S

  • r

t l = m a t c h l w i t h | N i l

  • >

N i l | C

  • n

s ( x , x s )

  • >

i n s x ( i S

  • r

t x s ) ; ; l e t r e c i n s x l = m a t c h l w i t h | N i l

  • >

C

  • n

s ( x , N i l ) | C

  • n

s ( y , y s )

  • >

i f x < = y t h e n C

  • n

s ( x , C

  • n

s ( y , y s ) ) e l s e C

  • n

s ( y , i n s x y s ) ; ; l e t r e c c

  • u

n t x l = m a t c h l w i t h | N i l

  • >

| C

  • n

s ( y , y s )

  • >

i f x = y t h e n 1 + c

  • u

n t x y s e l s e c

  • u

n t x y s ; ;

I n s e r t i

  • n

S

  • r

t & P e r mu t a t i

  • n

p r

  • p

e r t y

P r

  • p

e r t y : l a n d s h a v e t h e s a me e l e me n t s ( c

  • u

n t i n g e l e me n t s

  • f

l , s ) . ∀l

, s , x , n 1 , n 2

. (

c

  • u

n t

x l = n 1 )

(

i S

  • r

t

l = s )

(

c

  • u

n t

x s = n 2 )

n 1 = n 2

slide-9
SLIDE 9

T r a n s l a t i

  • n

i n t

  • C

H C s

I n s e r t i

  • n

S

  • r

t

C H C s

  • l

v e r s ( E l d a r i c a , Z 3 )

  • v

e r t h e q u a n t i fj e r

  • f

r e e t h e

  • r

y

  • f

l i s t s a n d L i n e a r I n t e g e r A r i t h me t i c ( L I A ) c a n n

  • t

s

  • l

v e t h e s e c l a u s e s .

f a l s e :

  • N

1 = \ = N 2 , c

  • u

n t ( X , L , N 1 ) , i S

  • r

t ( L , S ) , c

  • u

n t ( X , S , N 2 ) . i n s ( A , [ ] , [ A ] ) . i n s ( A , [ X | X s ] , [ A , X | X s ] ) :

  • A

= < X . i n s ( A , [ X | X s ] , [ X | Y s ] ) :

  • A

> X , i n s ( A , X s , Y s ) . i S

  • r

t ( [ ] , [ ] ) . i S

  • r

t ( [ X | X s ] , S ) :

  • i

S

  • r

t ( X s , S 1 ) , i n s ( X , S 1 , S ) . c

  • u

n t ( X , [ ] , ) . c

  • u

n t ( X , [ H | T ] , N ) :

  • X

= H , N = M + 1 , c

  • u

n t ( X , T , M ) . c

  • u

n t ( X , [ H | T ] , N ) :

  • X

= \ = H , c

  • u

n t ( X , T , N ) .

slide-10
SLIDE 10

R e c u r s i v e D a t a t y p e E l i mi n a t i

  • n

A l g

  • r

i t h m

I n s e r t i

  • n

S

  • r

t

f a l s e :

  • N

1 = \ = N 2 , c

  • u

n t ( X , L , N 1 ) , i S

  • r

t ( L , S ) , c

  • u

n t ( X , S , N 2 ) .

D e fj e fj n e a n e w p r e d i c a t e

n e w 1

n e w 1 ( X , N 1 , N 2 ) :

  • c
  • u

n t ( X , L , N 1 ) , i S

  • r

t ( L , S ) , c

  • u

n t ( X , S , N 2 ) .

e x i s t e n t i a l l i s t s D

  • N

O T

  • c

c u r i n t h e h e a d

  • f

t h e n e w d e fj n i t i

  • n
slide-11
SLIDE 11

D e fj fj n i n i t i

  • n
  • n
  • f

n e w 1

n e w 1 ( X , N 1 , N 2 ) :

’ ’ c

  • u

n t ( X ’, L , N 1 ) ’ ’ , i S

  • r

t ( L ’, S ’) , c

  • u

n t ( X , ’ S ’, N 2 ) ’ .

U n f U n f

  • l
  • l

d i n g

  • f

n e w 1

n e w 1 ( X , , ) . n e w 1 ( X , N 1 , M ) :

  • N

1 = N + 1 , c

  • u

n t ( X , L , N ) , i S

  • r

t ( L , S ) , i n s ( X , S , T ) , c

  • u

n t ( X , T , M ) . n e w 1 ( X , N 1 , M ) :

  • X

= \ = Y , c

  • u

n t ( X , L , N 1 ) , i S

  • r

t ( L , S ) , i n s ( Y , S , T ) , c

  • u

n t ( X , T , M ) .

F

  • l

d i n g i s n

  • t

p

  • s

s i b l e ( T h e E l i mi n a t i

  • n

A l g

  • r

i t h m d

  • e

s n

  • t

t e r mi n a t e ) N e w i d e a

  • f

t h i s wo r k :

M a t c h ; I n t r

  • d

u c e “ D I F F E R E N C E ” p r e d i c a t e s ; R e p l a c e ; F

  • l

d

v a r i a n t a t

  • ms

N O T v a r i a n t c

  • n

j u n c t i

  • n

I n s e r t i

  • n

S

  • r

t : I ’ d l i k e t

  • r

e mo v e t h

  • s

e l i s t s , b u t I c a n ’ t d u e t

  • a

D I F F E R E N C E i n . . .

slide-12
SLIDE 12

Ma t c h c l a u s e t

  • b

e f

  • l

d e d a g a i n s t d e fj n i t i

  • n

D e fj n e n e w 1 ( X , N , M ) :

’ ’ c

  • u

n t ( X , ’ L ’, N ) , i S

  • r

t ( ’ L ’, S ’) , c

  • u

n t ( X , ’ S ’, M ) . ’ U n f

  • l

d n e w 1 ( X , N 1 , M ) :

  • N

1 = N + 1 , c

  • u

n t ( X , L , N ) , i S

  • r

t ( L , S ) , i n s ( X , S , T ) , c

  • u

n t ( X , T , M ) . S u b s t i t u t i

  • n

: {

L / L ’, S / S ’, X / X ’, N / N ’

} MA T C H M I S MA T C H

I n s e r t i

  • n

S

  • r

t : Ma t c h

slide-13
SLIDE 13

I n s e r t i

  • n

S

  • r

t : Ma t c h

Ma t c h c l a u s e t

  • b

e f

  • l

d e d a g a i n s t d e fj n i t i

  • n

D e fj n e n e w 1 ( X , N , M ) ’ ’ ’ :

  • c
  • u

n t ( X , ’ L ’, N ) ’ , i S

  • r

t ( L ’, S ’)

,

c

  • u

n t ( X , ’ S ’, M ) ’ . U n f

  • l

d n e w 1 ( X , N 1 , M )

:

  • N

1 = N + 1

,

c

  • u

n t ( X , ’ L , N ) ’ ’ , i S

  • r

t ( L , ’ S ) ’ , i n s ( X , ’ S , ’ T )

,

c

  • u

n t ( X , ’ T , M )

.

MA T C H M I S MA T C H “ We WA N T ” “ We H A V E ”

slide-14
SLIDE 14

I n s e r t i

  • n

S

  • r

t : D I F F E R E N C E p r e d i c a t e

I n t r

  • d

u c e D I F F E R E N C E p r e d i c a t e

D i fg e r e n c e b e t we e n c l a u s e t

  • b

e f

  • l

d e d ( “ We H A V E ” ) a n d t h e d e fj n i t i

  • n

( “ We WA N T ” )

D e fj n e n e w 1 ( X , N , M ) ’ ’ ’ :

  • c
  • u

n t ( X , ’ L ’, N ) ’ , i S

  • r

t ( L ’, S ’)

,

c

  • u

n t ( X , ’ S ’, M ) ’ . U n f

  • l

d n e w 1 ( X , N 1 , M ) ’

:

  • N

1 = N + 1 ’

,

c

  • u

n t ( X , ’ L , N ) ’ ’ , i S

  • r

t ( L , ’ S ) ’ , i n s ( X , ’ S , ’ T )

,

c

  • u

n t ( X , ’ T , M )

.

D e fj n e d

i f f 1 ( X , M , M ) :

’ i n s ( X , ’ S , ’ T ) , c

  • u

n t ( X , ’ T , M ) , c

  • u

n t ( X , ’ S , M ) ’ ’ .

M A T C H MI S M A T C H “ We WA N T ” “ We H A V E ”

slide-15
SLIDE 15

I n s e r t i

  • n

S

  • r

t : R e p l a c e

D e fj n e n e w 1 ( X , N , M ) ’ ’ ’ :

  • c
  • u

n t ( X , ’ L ’, N ) ’ , i S

  • r

t ( L ’, S ’)

,

c

  • u

n t ( X , ’ S ’, M ) ’ . U n f

  • l

d n e w 1 ( X , N 1 , M ) ’

:

  • N

1 = N + 1 ’

,

c

  • u

n t ( X , ’ L , N ) ’ ’ , i S

  • r

t ( L , ’ S ) ’ , i n s ( X , ’ S , ’ T )

,

c

  • u

n t ( X , ’ T , M )

.

R e p l a c e n e w 1 ( X , M , M ) :

  • N

1 = N + 1 , c

  • u

n t ( X , ’ ’ ’ L , N ) , i S

  • r

t ( ’ ’ L , ’ S ) , ’

c

  • u

n t ( X , ’ S , M ) ’ ’ , d i f f 1 ( X , M , M ) ’ ’ .

MA T C H MI S MA T C H “ We WA N T ” “ We H A V E ”

R e p l a c e

i n s ( X , S , T ) , c

  • u

n t ( X , T , M ) ’ ’ ’

( “ We H A V E ” ) b y

c

  • u

n t ( X , S , M ) ’ ’ ’ , d i f f 1 ( X , M , M ) ’ ’

( “ We WA N T ” )

slide-16
SLIDE 16

C

  • r

r e c t n e s s

  • f

R e p l a c e me n t

i d

1

x i n s c

  • u

n t (X ’,S ’) (X ’,T ) M (X ’,M ’) i d

1

x c

  • u

n t d i f f 1

S u p p

  • s

e C l s U { C } → C l s U { D } b y r e p l a c e me n t . I f d i f f 1 i s a f u n c t i

  • n

t h e n C l s U { C } i s S A T I F F C l s U { D } i s S A T . O t h e r wi s e , C l s U { C } i s S A T I F C l s U { D } i s S A T . R e p l a c e

i n s ( X , S , T ) , ’ ’ c

  • u

n t ( X , T , M ) ’

( “ We H A V E ” ) b y

c

  • u

n t ( X , S , M ) , d i f f 1 ( X , M , M ) ’ ’ ’ ’ ’

( “ We WA N T ” )

slide-17
SLIDE 17

I n s e r t i

  • n

S

  • r

t : F

  • l

d

D e fj n e n e w 1 ( X , N , M ) ’ ’ ’ :

  • c
  • u

n t ( X , ’ L ’, N ) , i S

  • r

t ( ’ L ’, S ’) , c

  • u

n t ( X , ’ S ’, M ) ’ . U n f

  • l

d n e w 1 ( X , N 1 , M ) ’

:

  • N

1 = N + 1

,

c

  • u

n t ( X , ’ L , N ) ’ ’ , i S

  • r

t ( L , ’ S ) ’ , i n s ( X , ’ S , ’ T )

,

c

  • u

n t ( X , ’ T , M )

.

R e p l a c e

n e w 1 ( X , M , M ) :

  • N

1 = N + 1 , ’ ’ c

  • u

n t ( X , ’ L , N ) , i S

  • r

t ( ’ ’ L , ’ S ) , c

  • u

n t ( X , ’ ’ S , M ) ’ ’ , d i f f 1 ( X , M , M ) . ’ ’

F

  • l

d n

e w 1 ( X , M , M ) :

  • N

1 = N + 1 , ’ ’ n e w 1 ( X , N , M ) ’ ’ ’ , d i f f 1 ( X , M , M ) . ’ ’

MA T C H M I S MA T C H “ We WA N T ” “ We H A V E ”

slide-18
SLIDE 18

I n s e r t i

  • n

S

  • r

t : fj n a l s e t

  • f

C H C s w/

  • l

i s t s

d i f f 2

i s a d i fg e r e n c e p r e d i c a t e :

d i f f 2 ( X , Y , N , M ) :

  • X

= \ = Y , i n s ( X , S 1 , S ) , c

  • u

n t ( Y , S , M ) , c

  • u

n t ( Y , S 1 , N ) . f a l s e :

  • N

1 = \ = N 2 , n e w 1 ( X , N 1 , N 2 ) . n e w 1 ( X , , ) . n e w 1 ( X , N 1 , N 2 ) :

  • N

1 = N 1 + 1 , n e w 1 ( X , N 1 , N 2 ) , ’ ’ ’ ’ d i f f 1 ( X , N 2 , N 2 ) . ’ ’ n e w 1 ( X , N 1 , N 2 ) :

  • X

= \ = Y , n e w 1 ( Y , N 1 , N 2 b ) , d i f f 2 ( X , Y , N 2 b , N 2 ) . d i f f 1 ( X , , 1 ) . d i f f 1 ( X , N 1 , N 2 ) :

  • N

2 = M 2 + 1 , N 1 = M 1 + 1 , n e w 3 ( X , M 2 , M 1 ) . d i f f 1 ( X , N 1 , N 2 ) :

  • X

= < Y , N 2 = N + 1 , X = \ = Y , n e w 4 ( X , Y , N , N 1 ) . d i f f 2 ( X , Y , , ) :

  • Y

= \ = X . d i f f 2 ( X , Y , M , N ) :

  • X

= < Y , Y = \ = X , M = K + 1 , n e w 3 ( Y , N , K ) . d i f f 2 ( X , Y , M , N ) :

  • X

= < Z , Y = \ = X , Y = \ = Z , N = M , n e w 5 ( Y , N ) . d i f f 2 ( X , Y , M , N ) :

  • X

> Y , N = H + 1 , M = K + 1 , d i f f 2 ( X , Y , K , H ) . n e w 3 ( X , N 1 , N ) :

  • N

1 = N + 1 , n e w 5 ( X , N ) . n e w 4 ( X , Y , N , N ) :

  • X

= < Y , X = \ = Y , n e w 5 ( X , N ) . n e w 5 ( X , ) . n e w 5 ( X , N 1 ) :

  • N

1 = N + 1 , n e w 5 ( X , N ) .

slide-19
SLIDE 19

I n s e r t i

  • n

S

  • r

t : C

  • mp

u t a t i

  • n
  • f

Mo d e l

E l d a r i c a p r

  • v

e s s a t i s fj a b i l i t y b y c

  • mp

u t i n g a L I A

  • d

e fj n a b l e mo d e l ( r e wr i t t e n f

  • r

l e g i b i l i t y ) :

f a l s e :

  • N

1 = \ = N 2 , N 1 = N 2 , N 2 > = . n e w 1 ( A , B , C ) :

  • B

= C , B > = . n e w 2 ( A , B ) :

  • B

= . d i f f 1 ( A , B , C ) :

  • B

> = , C = B + 1 . %

d i fg 1 i s a f u n c t i

  • n

d i f f 2 ( A , B , C , D ) :

  • C

> = , D = C . %

d i fg 2 i s a f u n c t i

  • n

n e w 3 ( A , B , C ) :

  • C

= B

  • 1

, B > = 1 . n e w 4 ( A , B , C , D ) :

  • D

= C , C > = , B > = A + 1 . n e w 5 ( A , B ) :

  • B

> = .

D i fg e r e n c e p r e d i c a t e s a r e f u n c t i

  • n

s . T h u s , t h e i n i t i a l a n d t r a n s f

  • r

me d c l a u s e s a r e e q u i s a t i s fj a b l e .

slide-20
SLIDE 20

D i fg e r e n c e P r e d i c a t e s a n d L e mma D i s c

  • v

e r y

E l d a r i c a mo d e l

  • f

d i fg e r e n c e p r e d i c a t e s

d i f f 1 ( X , N 2 , N 2 ) :

’ N 2 = N 2 + 1 ’

,

N 2 > = ’

.

d i f f 2 ( X , Y , N 2 , N 2 ) :

N 2 = N 2 ’, N 2 > = ’

.

D i fg e r e n c e p r e d i c a t e s c

  • r

r e s p

  • n

d t

  • l

e mma t a i n a p r

  • f

b y s t r u c t u r a l i n d u c t i

  • n

d i f f 1 ( X , N 2 , N 2 ) :

  • i

n s ( X , S , S ) , c

  • u

n t ( X , S , N 2 ) , c

  • u

n t ( X , S , N 2 ) ’ ’ ’ ’ ’ ’ ’ ’ . d i f f 2 ( X , Y , N 2 , N 2 ) :

  • X

= \ = Y , i n s ( X , S 1 , S ) , c

  • u

n t ( Y , S , N 2 ) , c

  • u

n t ( Y , S 1 , N 2 ) ’ ’ .

c a n b e r e wr i t t e n a s

∀( ( c

  • u

n t X ’ ( i n s X ’ S ’ ) = N 2 )

( c

  • u

n t X ’ S ’ = N 2 ’ ) → N 2 = N 2 ’ + 1

N 2 ’ > = ) ∀( X = \ = Y

( c

  • u

n t Y ( i n s X S 1 ) = N 2 )

( c

  • u

n t Y S 1 = N 2 ’ ) → N 2 = N 2 ’

N 2 ’ > = )

slide-21
SLIDE 21

Mo r e S

  • r

t i n g P r

  • g

r a ms a n d P r

  • p

e r t i e s

T r a n s f

  • r

ma t i

  • n

& Mo d e l C

  • mp

u t a t i

  • n

s u c c e e d e d  We s t

  • p

p e d t h e t r a n s f

  • r

ma t i

  • n

B l a n k

We d i d n

  • t

t r y

  • T

r a n s f

  • r

ma t i

  • n

s d

  • n

e u s i n g t h e MA P i n t e r a c t i v e s y s t e m

  • S

a t i s fj a b i l i t y p r

  • f

a n mo d e l c

  • mp

u t a t i

  • n

d

  • n

e b y E l d a r i c a

P e r mu t a t i

  • n

O r d e r e d L e n g t h S u m I n s e r t i

  • n

S

  • r

t

   

S e l e c t i

  • n

S

  • r

t

  

Q u i c k S

  • r

t

M e r g e S

  • r

t

slide-22
SLIDE 22

C

  • n

c l u s i

  • n

s

  • C

H C t r a n s f

  • r

ma t i

  • n

s a i d v e r i fj c a t i

  • n
  • f

p r

  • g

r a ms t h a t ma n i p u l a t e r e c u r s i v e d a t a t y p e s

  • I

n t h e s

  • r

t i n g e x a mp l e s , t h e E l i mi n a t i

  • n

A l g

  • r

i t h m + D i fg e r e n c e P r e d i c a t e I n t r

  • t

r a n s f

  • r

ms n

  • n
  • s
  • l

v a b l e ( b y C H C s

  • l

v e r s ) C H C s i n t

  • e

q u i s a t i s fj a b l e s

  • l

v a b l e C H C s

  • C

H C s

  • l

v i n g < ( T r a n s f

  • r

ma t i

  • n

; C H C s

  • l

v i n g )

~

( I n d u c t i

  • n

+ C H C s

  • l

v i n g )

  • A

d v a n t a g e

  • f

t h e t r a n s f

  • r

ma t i

  • n
  • b

a s e d a p p r

  • a

c h : s e p a r a t i

  • n
  • f

i n d u c t i v e r e a s

  • n

i n g ( b y t r a n s f

  • r

ma t i

  • n

) f r

  • m

C H C s

  • l

v i n g

  • O

n g

  • i

n g w

  • r

k :

  • A

u t

  • ma

t i

  • n

( s

  • me

wo r k d

  • n

e )

  • B

e n c h ma r k i n g : c

  • mp

a r e wi t h I n d u c t i v e T h e

  • r

e m P r

  • v

e r s ( e . g . , A C L 2 , C l a m, L e

  • n

, I s a b e l l e )