A Combinator Language for Theorem Discovery Phil Scott and Jacques - - PowerPoint PPT Presentation

a combinator language for theorem discovery
SMART_READER_LITE
LIVE PREVIEW

A Combinator Language for Theorem Discovery Phil Scott and Jacques - - PowerPoint PPT Presentation

A Combinator Language for Theorem Discovery Phil Scott and Jacques Fleuriot July 13, 2012 Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery Overview Example: Incidence Reasoning Monad for Discovery/Search


slide-1
SLIDE 1

A Combinator Language for Theorem Discovery

Phil Scott and Jacques Fleuriot July 13, 2012

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-2
SLIDE 2

Overview

◮ Example: Incidence Reasoning ◮ Monad for Discovery/Search ◮ Composable Proof Trees ◮ Example: Forward Chaining

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-3
SLIDE 3

Example: Incidence Reasoning

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-4
SLIDE 4

Algebra for Theorem Discovery

◮ Expressing data flow ◮ Merging data ◮ Lifting Inference Rules over Discovery Process ◮ Filtering

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-5
SLIDE 5

Monad

0 : α m (+) : α m → α m → m (>>=) : α m → (α → β m) → β m filter : (α → bool) → α m → α m

  • flist : α list → α m

msum : α list m → α m

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-6
SLIDE 6

Idiom

return : α → α m ap : (α → β) m → α m → β m fmap : (α → β) → α m → β m fmap2 : (α → β → γ) → α m → β m → γ m fmap3 : (α → β → γ → δ) → α m → β m → γ m → δ m sequence : α m list → α list m

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-7
SLIDE 7

Collection

difference : α m → α m → α m maxima : (α → α → bool) → α m → α m unique : (α → α → bool) → α m → α m transpose : α m list → α list m

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-8
SLIDE 8

Theorem Discovery

α m := α Stream(collection).t subst : thm m → thm m → thm m contr : thm m → thm m → thm m mp : thm m → thm m → thm m rule1 : thm → thm m → thm m rule2 : thm → thm m → thm m → thm m rule3 : thm → thm m → thm m → thm m → thm m disjuncts : thm → thm m conjuncts : thm → thm m split : thm m → thm m delay : α m → α m

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-9
SLIDE 9

Example Search Algebra

by incidence thms = let rec collinear = maxima (filter is collinear thms + fmap3 col union (delay collinear) (delay collinear) neqs) and non collinear = maxima (filter is non collinear thms + fmap3 triangle collinear (delay non collinear) neqs) and eqs = filter is eq thms + maxima(msum (fmap3 intersect collinears collinear non collinear)) and neqs = maxima(filter is neq thms + sum (fmap2 colncolneq collinear (delay non collinear)) + sum (fmap′ CONJUNCTS (rule1 ncol neq non collinear))) and planes = maxima (filter is plane thms + fmap3′ plane union (delay planes) (delay planes) non collinear + fmap3′ colplaneplane collinear (delay planes) neqs + fmap2′ colcolplane collinear collinear + fmap′ colplane collinear + fmap′ ncolplane non collinear) in collinear+non collinear + eqs + neqs + planes Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-10
SLIDE 10

Case-splitting

Book-keeping Case-analysis φ1∧φ2∧· · ·∧φn∧(P → ψ1 ∧ ψ2 ∧ · · · ∧ ψn)∧(Q → χ1∧χ2∧· · ·∧χn ∧ (R → α1 ∧ α2 ∧ · · · ∧ αn) ∧ (S → β1 ∧ β2 ∧ · · · ∧ βn)) [φ1, φ2, . . . , φn]

P Q

[ψ1, ψ2, . . . , ψn][χ1, χ2, . . . , χn]

R S

[α1, α2, . . . , αn] [β1, β2, . . . , βn]

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-11
SLIDE 11

Tree Merging

Parallel Merge/Combine xs

P Q

+ ys zs xs′

X Y

ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-12
SLIDE 12

Tree Merging

Parallel Merge/Combine xs

P Q

+ ys zs xs′

X Y

ys′ zs′ xs

P Q

= ys + xs′

X Y

zs + xs′

X Y

ys′ zs′ ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-13
SLIDE 13

Tree Merging with Simplification

xs

P Q

+ ys zs xs′

P Q

ys′ zs′ xs

P Q

= ys + xs′

P Q

zs + xs′

P Q

ys′ zs′ ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-14
SLIDE 14

Tree Merging with Simplification

xs

P Q

+ ys zs xs′

P Q

ys′ zs′ xs

P Q

= ys + xs′

P Q

zs + xs′

P Q

ys′ zs′ ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-15
SLIDE 15

Tree Merging with Simplification

xs

P Q

+ ys zs xs′

P Q

ys′ zs′ xs

P Q

= ys + xs′ + ys′ zs + xs′

P Q

ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-16
SLIDE 16

Tree Merging with Simplification

xs

P Q

+ ys zs xs′

P Q

ys′ zs′ xs

P Q

= ys + xs′ + ys′ zs + xs′

P Q

ys′ zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-17
SLIDE 17

Tree Merging with Simplification

xs

P Q

+ ys zs xs′

P Q

ys′ zs′ xs

P Q

= ys + xs′ + ys′ zs + xs′ + zs′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-18
SLIDE 18

Further Simplification

xs

P Q

ys

R S

zs

T U

+ ts us vs ws xs′

X P

ys′

T Q

zs′

R S

ts′ us′ vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-19
SLIDE 19

More Tree Filtering (left branch)

If we have already assumed a particular case (red), we discard the alternative (blue) and merge into the parent. xs

P Q

ys

R S

ts

X P

us ys′

T Q

zs′

R S

ts′ us′ vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-20
SLIDE 20

More Tree Filtering (left branch)

If we have already assumed a particular case (red), we discard the alternative (blue) and merge into the parent. xs

P Q

ys

R S

ts

X P

us ys′

T Q

zs′

R S

ts′ us′ vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-21
SLIDE 21

More Tree Filtering (left branch)

xs

P

ys

R S

+ us ts xs′

P

zs′

R S

vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-22
SLIDE 22

More Tree Filtering (left branch)

xs

P

ys

R S

+ us ts xs′

P

zs′

R S

vs′ ws′ xs + xs′

P

= ys + zs′

R S

us + vs′ts + ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-23
SLIDE 23

More Tree Filtering (right branch)

If a case has already been considered in an alternative branch (an uncle branch), we discard the case. xs

P Q

zs

T

vs

X P

ys′

T Q

zs′

R S

ts′ us′ vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-24
SLIDE 24

More Tree Filtering (right branch)

If a case has already been considered in an alternative branch (an uncle branch), we discard the case. xs

P Q

zs

T

vs

X P

ys′

T Q

zs′

R S

ts′ us′ vs′ ws′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-25
SLIDE 25

More Tree Filtering (right branch)

If a case has already been considered in an alternative branch (an uncle branch), we discard the case. xs

P Q

zs

T

vs

X

ys′

T Q

ts′ us′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-26
SLIDE 26

More Tree Filtering (right branch)

If a case has already been considered in an alternative branch (an uncle branch), we discard the case. xs

P Q

zs

T

vs

X

ys′

T Q

ts′ us′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-27
SLIDE 27

More Tree Filtering (right branch)

If a case has already been considered in an alternative branch (an uncle branch), we discard the case. xs

P Q

zs

T

vs

X

ys′ + ts′ + us′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-28
SLIDE 28

After Full Simplification

xs

P Q

ys

R S

zs

T U

+ ts us vs ws xs′

X P

ys′

T Q

zs′

R S

ts′ us′ vs′ ws′ xs + xs′

P Q

= ys + zs′

R S

zs

T U

ts + vs′us + ws′ vs

X

ws

X

ys′ + ts′ + us′ ys′ + us′

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-29
SLIDE 29

Forward-chaining

chain imps thms = imps >>= (λimp. if is imp imp then chain (fmap’ (MATCH MP imp) thms) thms else return imp) f rules base = chain (oflist rules) (delay f rules thms) + delay (f rules base)

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-30
SLIDE 30

Integration

◮ Concurrent discovery ◮ Writer transformer to add assumption dependencies

  • bviously : (thm chain → thm chain) → assumption list → step

clearly : (thm chain → thm chain) → assumption list → step

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-31
SLIDE 31

Contributions

◮ Language for guiding discovery ◮ Integration with proof contexts ◮ ML library for monads, idioms and transformers ◮ Improved library for lazy lists

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery

slide-32
SLIDE 32

Conclusion and Further Work

◮ Search algebras ◮ Monads and idioms ◮ Implementing data-flow for discovery ◮ Integration with interactive theorem proving ◮ Case-splitting via composable proof trees

Future work

◮ Higher-order reasoning/existential reasoning ◮ Efficient subsumption

Phil Scott and Jacques Fleuriot A Combinator Language for Theorem Discovery