Towards the Compression of First-Order Resolution Proofs by Lowering - - PowerPoint PPT Presentation

towards the compression of first order resolution proofs
SMART_READER_LITE
LIVE PREVIEW

Towards the Compression of First-Order Resolution Proofs by Lowering - - PowerPoint PPT Presentation

Towards the Compression of First-Order Resolution Proofs by Lowering Unit Clauses J. Gorzny 1 B. Woltzenlogel Paleo 2 1 University of Victoria 2 Vienna University of Technology 6 August 2015 Gorzny, Woltzenlogel Paleo First-Order Lower Units


slide-1
SLIDE 1

Towards the Compression of First-Order Resolution Proofs by Lowering Unit Clauses

  • J. Gorzny1
  • B. Woltzenlogel Paleo2

1University of Victoria 2Vienna University of Technology

6 August 2015

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 1 / 16

slide-2
SLIDE 2

Our Goal

Lifting propositional proof compression algorithms to first-order logic. This work: LowerUnits

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 2 / 16

slide-3
SLIDE 3

Proof Compression Motivation

The best, most efficient provers, do not generate the best, least redundant proofs. Many compression algorithms for propositional proofs; few for first-order proofs.

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 3 / 16

slide-4
SLIDE 4

A Propositional Proof

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 4 / 16

slide-5
SLIDE 5

LowerUnits

Definition (Unit)

A unit clause is a subproof with a conclusion clause (final clause) having exactly 1 literal

Theorem

A unit clause can always be lowered Compression is achieved by delaying resolution with unit clause subproofs. Two Traversals ↑ Collect units with more than one resolvent ↓ Delete units and reintroduce them at the bottom of the proof

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 5 / 16

slide-6
SLIDE 6

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b ⊥ c ¯ c a,c a,¯ b,c b ¯ a a,b a,¯ c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-7
SLIDE 7

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b ⊥ c ¯ c a,c a,¯ b,c b ¯ a a,b a,¯ c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-8
SLIDE 8

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b a,¯ b c ¯ c a,c a,¯ b,c b ¯ a a,b a,¯ c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-9
SLIDE 9

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b a,¯ b a,¯ b,c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-10
SLIDE 10

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b a a,b a,¯ b a,¯ b,c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-11
SLIDE 11

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b ⊥ a ¯ a a,b a,¯ b a,¯ b,c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-12
SLIDE 12

Propositional Example

⊥ ¯ c c a,¯ c a,¯ b,¯ c a,c b a,¯ b,c ¯ a a,b ⊥ a ¯ a a,b a,¯ b a,¯ b,c a,¯ b,¯ c

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 6 / 16

slide-13
SLIDE 13

First-Order Change: Helpful Contractions

⊥ η5: p(X) ⊢ η3: ⊢ q(Z) η4: p(X), q(Z) ⊢ η1: p(W) ⊢ q(Z) η2: ⊢ p(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 7 / 16

slide-14
SLIDE 14

First-Order Change: Helpful Contractions

⊥ η5: p(X) ⊢ η3: ⊢ q(Z) η4: p(X), q(Z) ⊢ η1: p(W) ⊢ q(Z) η2: ⊢ p(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 7 / 16

slide-15
SLIDE 15

First-Order Change: Helpful Contractions

⊥ η5: p(X) ⊢ η3: ⊢ q(Z) η4: p(X), q(Z) ⊢ η1: p(W) ⊢ q(Z) η2: ⊢ p(Y) η′

5 : p(X), p(Y) ⊢

η′

4: p(X), q(Z) ⊢

η′

1: p(W) ⊢ q(Z)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 7 / 16

slide-16
SLIDE 16

First-Order Change: Helpful Contractions

⊥ η5: p(X) ⊢ η3: ⊢ q(Z) η4: p(X), q(Z) ⊢ η1: p(W) ⊢ q(Z) η2: ⊢ p(Y) η′

5 : p(X), p(Y) ⊢

η′

4: p(X), q(Z) ⊢

η′

1: p(W) ⊢ q(Z)

⌊η′

5⌋: p(U) ⊢

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 7 / 16

slide-17
SLIDE 17

First-Order Change: Helpful Contractions

⊥ η5: p(X) ⊢ η3: ⊢ q(Z) η4: p(X), q(Z) ⊢ η1: p(W) ⊢ q(Z) η2: ⊢ p(Y) η′

5 : p(X), p(Y) ⊢

η′

4: p(X), q(Z) ⊢

η′

1: p(W) ⊢ q(Z)

⌊η′

5⌋: p(U) ⊢

η′

2: ⊢ p(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 7 / 16

slide-18
SLIDE 18

First-Order Challenge: Pre-Deletion Check

⊥ η2: ⊢ q(Y) η1: q(Y) ⊢ η5: q(Y) ⊢ p(a) η4: p(X) ⊢ η3: ⊢ p(b), q(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 8 / 16

slide-19
SLIDE 19

First-Order Challenge: Pre-Deletion Check

⊥ η2: ⊢ q(Y) η1: q(Y) ⊢ η5: q(Y) ⊢ p(a) η4: p(X) ⊢ η3: ⊢ p(b), q(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 8 / 16

slide-20
SLIDE 20

First-Order Challenge: Pre-Deletion Check

⊥ η2: ⊢ q(Y) η1: q(Y) ⊢ η5: q(Y) ⊢ p(a) η4: p(X) ⊢ η3: ⊢ p(b), q(Y) η: ⊢ p(a), p(b) η′

5: q(Y) ⊢ p(a)

η′

3: ⊢ p(b), q(Y)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 8 / 16

slide-21
SLIDE 21

First-Order Challenge: Pre-Deletion Check

⊥ η2: ⊢ q(Y) η1: q(Y) ⊢ η5: q(Y) ⊢ p(a) η4: p(X) ⊢ η3: ⊢ p(b), q(Y) η: ⊢ p(a), p(b) η′

5: q(Y) ⊢ p(a)

η′

3: ⊢ p(b), q(Y)

⌊η⌋

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 8 / 16

slide-22
SLIDE 22

First-Order Challenge: Pre-Deletion Check

⊥ η2: ⊢ q(Y) η1: q(Y) ⊢ η5: q(Y) ⊢ p(a) η4: p(X) ⊢ η3: ⊢ p(b), q(Y)

Definition (Pre-Deletion Property)

η unit, l ∈ η, such that l is resolved with literals l1, . . . , ln in a proof ψ. η satisfies the pre-deletion unifiability property in ψ if l1, . . . , ln and l are unifiable.

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 8 / 16

slide-23
SLIDE 23

First-Order Challenge: Post-Deletion Check

⊥ η5: p(U, q(W, b)) ⊢ η3: r(V), p(U, q(V, b)) ⊢ η4: ⊢ r(W) η1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢ η2: ⊢ p(U, V)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 9 / 16

slide-24
SLIDE 24

First-Order Challenge: Post-Deletion Check

⊥ η5: p(U, q(W, b)) ⊢ η3: r(V), p(U, q(V, b)) ⊢ η4: ⊢ r(W) η1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢ η2: ⊢ p(U, V)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 9 / 16

slide-25
SLIDE 25

First-Order Challenge: Post-Deletion Check

⊥ η5: p(U, q(W, b)) ⊢ η3: r(V), p(U, q(V, b)) ⊢ η4: ⊢ r(W) η1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢ η2: ⊢ p(U, V) η′

5: p(X, q(W, b)), p(X, W) ⊢

η′

1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢

η′

4: ⊢ r(W)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 9 / 16

slide-26
SLIDE 26

First-Order Challenge: Post-Deletion Check

⊥ η5: p(U, q(W, b)) ⊢ η3: r(V), p(U, q(V, b)) ⊢ η4: ⊢ r(W) η1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢ η2: ⊢ p(U, V) η′

5: p(X, q(W, b)), p(X, W) ⊢

η′

1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢

η′

4: ⊢ r(W)

⌊η′

5⌋

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 9 / 16

slide-27
SLIDE 27

First-Order Challenge: Post-Deletion Check

⊥ η5: p(U, q(W, b)) ⊢ η3: r(V), p(U, q(V, b)) ⊢ η4: ⊢ r(W) η1: r(Y), p(X, q(Y, b)), p(X, Y) ⊢ η2: ⊢ p(U, V)

Definition (Post-Deletion Property)

η unit, l ∈ η, such that l is resolved with literals l1, . . . , ln in a proof ψ. η satisfies the post-deletion unifiability property in ψ if l†↓

1 , . . . , l†↓ n and l†

are unifiable, where l† is the literal in ψ′ = ψ \ {η} corresponding to l in ψ, and l†↓ is the descendant of l† in the roof of ψ′.

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 9 / 16

slide-28
SLIDE 28

First-Order Lower Units Challenges

Deletion changes literals Unit collection depends on whether contraction is possible after propagation down the proof Deletion of units require knowledge of proof after deletion, and deletion depends on what will be lowered. O(n2) solution to have full knowledge Difficult bookkeeping required for implementation

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 10 / 16

slide-29
SLIDE 29

Greedy First-Order Lower Units - A Quicker Alternative

Ignore post-deletion satisfaction Focus on pre-deletion satisfaction Greedy contraction Faster run-time (linear; one traversal) Easier to implement Doesn’t always compress (returns original proof sometimes)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 11 / 16

slide-30
SLIDE 30

Greedy First-Order Lower Units - A Quicker Alternative

Ignore post-deletion satisfaction Focus on pre-deletion satisfaction Greedy contraction Faster run-time (linear; one traversal) Easier to implement Doesn’t always compress (returns original proof sometimes)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 11 / 16

slide-31
SLIDE 31

Greedy First-Order Lower Units - A Quicker Alternative

Ignore post-deletion satisfaction Focus on pre-deletion satisfaction Greedy contraction Faster run-time (linear; one traversal) Easier to implement Doesn’t always compress (returns original proof sometimes)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 11 / 16

slide-32
SLIDE 32

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η6: ⊢ q(X), t(Z) η5: p(V) ⊢ q(X), t(Z) η4: r(X), p(V) ⊢ q(Y), t(Z) η3: ⊢ q(X), r(Y), t(Z) η2: p(W) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-33
SLIDE 33

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η6: ⊢ q(X), t(Z) η5: p(V) ⊢ q(X), t(Z) η4: r(X), p(V) ⊢ q(Y), t(Z) η3: ⊢ q(X), r(Y), t(Z) η2: p(W) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a) σ = {W → a, V → a}

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-34
SLIDE 34

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η6: ⊢ q(X), t(Z) η5: p(V) ⊢ q(X), t(Z) η4: r(X), p(V) ⊢ q(Y), t(Z) η3: ⊢ q(X), r(Y), t(Z) η2: p(W) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a) {W → a}

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-35
SLIDE 35

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η6: ⊢ q(X), t(Z) η′

5: p(V), p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η′

3: p(a) ⊢ q(X), r(Y), t(Z)

η1: ⊢ p(a)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-36
SLIDE 36

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η6: ⊢ q(X), t(Z) η′

5: p(V), p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η3: p(a) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a) {V → a}

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-37
SLIDE 37

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η′

6: p(a), p(a) ⊢ q(X), t(Z)

⌊η′

6⌋: p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η3: p(a) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-38
SLIDE 38

First-Order Example

⊥ η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η′

6: p(a), p(a) ⊢ q(X), t(Z)

⌊η′

6⌋: p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η3: p(a) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a) ∅

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-39
SLIDE 39

First-Order Example

η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η′

6: p(a), p(a) ⊢ q(X), t(Z)

⌊η′

6⌋: p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η3: p(a) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a)

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-40
SLIDE 40

First-Order Example

η10: p(a) ⊢ η9: t(Z) ⊢ η8: p(a) ⊢ t(Z) η7: q(X), p(a) ⊢ t(Z) η′

6: p(a), p(a) ⊢ q(X), t(Z)

⌊η′

6⌋: p(a) ⊢ q(X), t(Z)

η4: r(X), p(V) ⊢ q(Y), t(Z) η3: p(a) ⊢ q(X), r(Y), t(Z) η1: ⊢ p(a) ⊥

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 12 / 16

slide-41
SLIDE 41

Experiment Setup

Simple First-Order Lower units implemented as part of Skeptik (in Scala) 308 real first-order proofs generated by SPASS from problems from TPTP Problem Library

2280 initial problems (1032 known unsatisfiable) SPASS asked to use only resolution and contraction rules 300s timeout

proofs generated on cluster at the University of Victoria proofs compressed on this laptop Time to generate proofs: ≈ 40 minutes Time to compress proofs: ≈ 5 seconds

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 13 / 16

slide-42
SLIDE 42

Experiment Setup

Simple First-Order Lower units implemented as part of Skeptik (in Scala) 308 real first-order proofs generated by SPASS from problems from TPTP Problem Library

2280 initial problems (1032 known unsatisfiable) SPASS asked to use only resolution and contraction rules 300s timeout

proofs generated on cluster at the University of Victoria proofs compressed on this laptop Time to generate proofs: ≈ 40 minutes Time to compress proofs: ≈ 5 seconds

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 13 / 16

slide-43
SLIDE 43

Results

  • Proof Length Before Compression

Proof Length After Compression 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

Original Proof Length Compressed Proof Length Number of Proofs (sorted by input length) Cumulative Proof Length 500 1000 1500 2000 2500 3000 3500 4000 4500 208 218 228 238 248 258 268 278 288 298 308 Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 14 / 16

slide-44
SLIDE 44

Results

Higher compression in longer proofs: 13/18 proofs with length ≥ 30 nodes successfully compressed. Total compression ratio 11.3%: 4429 vs. 3929 nodes. 18.4% for 100 longest proofs. Only 14/308 proofs failed to satisfy the post-deletion unifiability property

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 15 / 16

slide-45
SLIDE 45

Conclusion

Simple First-Order Lower Units is a quick algorithm for first-order proof compression Future work:

Explore other proof compression algorithms, e.g. Recycle Pivots with Intersection Explore ways of dealing with the post-deletion property quickly

Thank you for your attention. Any questions?

Source code: https://github.com/jgorzny/Skeptik Data: http://www.math.uvic.ca/~jgorzny/data/

Gorzny, Woltzenlogel Paleo First-Order Lower Units CADE25 16 / 16