Petar Vukmirović Implementation of Lambda-Free Higher...

Post on 23-Jul-2018

234 views 0 download

Transcript of Petar Vukmirović Implementation of Lambda-Free Higher...

Petar Vukmirović

Implementation of Lambda-Free Higher-Order Superposition

Automatic theorem proving ‒ state of the art

FOL HOL

2

Automatic theorem proving ‒ challenge

HOL

High-performance higher-order theorem proverthat extends first-order theorem proving gracefully.

3

My approach

FOL prover

TestOptimize

Fast HOL proverAdd HO feature

4

Syntax

Types:

τ ::= a | τ → τ

Terms:

t ::= X | f | t t

variable

symbol

application

5

Supported HO features

Example:

X (f a) f

Applied variables+

Partial application=

Lambda-Free Higher-Order Logic Applied variable Partial application

6

LFHOL iteration

E

TestOptimize

hoELFHOL

7

Generalization of term representation

Approach 1:Native representation

X (f a) f

Approach 2:Applicative encoding

@(@(X, @(f, a)), f)

8

Differences between the approaches

Approach 1:Native representation

Approach 2:Applicative encoding

Compact

Fast

Works well with E heuristics

Easy to implement

9

Unification problem

Given the set of equations

{ s1 =? t1, …, sn =? tn }

find the substitution σ such that

{ σ(s1) = σ(t1), …, σ(sn) = σ(tn) }

10

FOL unification algorithm

Initial set of equations S

Remove an equation s =? t

Transform S

S is not unifiable

S is unifiable

S = Ø S ≠ Ø

Failure is reported

No failure is reported

11

Transformation of the equation setMatch s =? t

Match s , Match s , t

Add { s1 =? t1, …, sn =? tn}

Report failure

Add { t =? s }

Apply [X ← f(s1, …, sn)]

Report failure

No changes

f(s1, …, sn) =? f(t1, …, tn)

f(s1, …, sn) =? g(t1, …, tm)

f(s1, …, sn) =? X

X =? f(s1, …, sn); X not in t

X =? f(s1, …, sn); X in t

X =? X

decomposition

collision

reorientation

application

occurs-check

identity

12

FOL algorithm fails on LFHOL terms

Yet, { X ← f a } is a unifier.

13

X b =? f a b

Report failureX ≠ f

collision

Example

X2 (Z

2 b c) d =? f a (Y1 c) d Z b c =? Y c, d =? d

Y c =? Z b c, d =?d c =? c, d =? d

d =? d

X ← f a

Y ← Z b

prefix match

prefix match

orientation

decomposition

decomposition

Unifier{ X ← f a, Y ← Z b }

14

LFHOL equation set transformationMatch s =? t

Match s , Match s , t

Add { s1 =? t1, …, sn =? tn}

Apply [X ← f s1 … sn]

Report failure

No changes

⍺ s1 … sn =? ⍺ t1 … tn

⍺ s1 … sn =? β t1 … tm

X =? f s1 … sn; X not in t

X =? f s1 … sn; X in t

X =? X

decomposition

application

occurs-check

identity

Add { t =? s }β is var, either⍺ is not or n > m

Report failureNeither ⍺ nor β vars

Add {⍺ =? t[:p], s1=? tp+1, …, sn=? tm}

⍺ is var, matchesprefix of t

reorientation

collision

prefix match

15

Standard FOL operations

s t

unifiable/matchable?

16

… are performed on subterms recursively,

s

unifiable/matchable?

f(t1, t2 ,…, tn)

17

… and there are twice as many subterms in HOL

s f t1 t2 … tnf t1 t2 … tnf t1 t2 … tnf t1 t2 … tn

18

unifiable/matchable?

argument subterms

prefix subterms

Prefix optimization

● Traverse only argument subterms

● Use types & arity to determine the only unifiable/matchable prefix

19

f a b cf X Y

Report 1 argument trailing

Advantages of prefix optimization

2x fewer subterms

No unnecessary prefixes created

No changes to E term traversal

20

Indexing data structures

f(a,g(b,a))

f(x,y)

h(g(x,f(x,x)))

a

c

xf(f(x,x), f(y,y))

Query term

f(x,g(h(y),a))

Set of terms

Generalizationss =? σ(t)

Instancesσ(s) =? t

Unifiable termsσ(s) =? σ(t)

21

E’s indexing data structures

Discrimination trees

Fingerprint indexing

Feature vector indexing

Discrimination trees

22

Discrimination trees

Factor out operations common for many terms

Flatten the term and use it as a key

Query term:

Flattening:

f(x, f(h(x), y))

f x f h x y

23

Example Query term:

24

Example Query term:

25

Example Query term:

26

Example Query term:

No neighbour can generalize the term

Backtrack to where we can make choice

27

Example Query term:

Mismatch

Backtrack further

28

Example Query term:

29

Example Query term:

30

Example Query term:

31

Example Query term:

32

LFHOL challenges

1. Applied variables

2. Terms prefixes of one another

3. Prefix optimization

33

LFHOL challenges

1. Applied variablesVariable can match a prefix

2. Terms prefixes of one another

3. Prefix optimization

Query term: g a b

34

LFHOL challenges

1. Applied variablesVariable can match a prefix

2. Terms prefixes of one another

3. Prefix optimization

Query term: g a b

35

LFHOL challenges

1. Applied variablesVariable can match a prefix

2. Terms prefixes of one another

3. Prefix optimization

Query term: g a b

36

LFHOL challenges

1. Applied variables

2. Terms prefixes of one anotherTerms can be stored in inner nodes

3. Prefix optimization

37

LFHOL challenges

1. Applied variables

2. Terms prefixes of one another

3. Prefix optimizationPrefix matches are allowed

Query term: f a b

38

Experimentation results

Two compilation modes:

hoE - support for LFHOL

foE - support only for FOL

HOL

FOL

39

Gain on LFHOL problems

hoE vs. original E

995 (encoded)LFHOL TPTP

problems

hoE

E

40

Gain on LFHOL problems

Both finished on 872/995 problemshoE: 8 unique, E: 11 unique

Total runtime:

41

hoE

E

17.1s

113.9s

Mean runtime:

hoE

E

0.010s

0.013s

Overhead on FOL problems

hoE vs. E foE vs. E

Minimize the overhead for existing E users

Tested on 7789 FOL TPTP problems

42

foE vs. E

Total runtime:

43foE

E

foE

E

845909s

844212s

Median runtime:

foE

E

1.4s

1.3s

hoE vs. E

44hoE

ETotal runtime:

hoE

E

846897s

844212s

Median runtime:

hoE

E

1.5s

1.3s

Summary

● New type module● Native term representation● Elegant algorithm extensions● Prefix optimizations

● Graceful algorithm extension● Graceful data structures extension

45

Engineering viewpoint Theoretical viewpoint

Future work

Integration with official E

E

TestOptimize

hoELFHOL

New features

First-class booleans

λs

Full HOL prover

46

Petar Vukmirović

Implementation of Lambda-Free Higher-Order Superposition