Automated method in proving graph properties Kailiang Ji INRIA - - PowerPoint PPT Presentation

automated method in proving graph properties
SMART_READER_LITE
LIVE PREVIEW

Automated method in proving graph properties Kailiang Ji INRIA - - PowerPoint PPT Presentation

Automated method in proving graph properties Kailiang Ji INRIA & Universit e Paris Diderot-Paris 7 October 31, 2013 Outline Background Expressions of graph properties Automated theorem proving Implementation Motivation


slide-1
SLIDE 1

Automated method in proving graph properties

Kailiang Ji

INRIA & Universit´ e Paris Diderot-Paris 7

October 31, 2013

slide-2
SLIDE 2

Outline

Background Expressions of graph properties Automated theorem proving Implementation

slide-3
SLIDE 3

Motivation

ϕ

s

ϕ ϕ ϕ ϕ ϕ ϕ

is there an infinite path such that all the vertices of the path are in ϕ?

slide-4
SLIDE 4

Motivation

ϕ

s

ϕ ϕ ϕ ϕ ϕ ϕ

is there an infinite path such that all the vertices of the path are in ϕ?

◮ by graph traversal algorithm

slide-5
SLIDE 5

Motivation

ϕ

s

ϕ ϕ ϕ ϕ ϕ ϕ

is there an infinite path such that all the vertices of the path are in ϕ?

◮ by graph traversal algorithm ◮ model checking of G, s EGϕ

slide-6
SLIDE 6

Motivation

ϕ

s

ϕ ϕ ϕ ϕ ϕ ϕ

is there an infinite path such that all the vertices of the path are in ϕ?

◮ by graph traversal algorithm ◮ model checking of G, s EGϕ ◮ It can also be expressed as

∃Y

  • s ∈ Y ∧∀x
  • x ∈ Y ⇒ ϕ(x)∧∃x′(edge(x, x′)∧x′ ∈ Y )
slide-7
SLIDE 7

Ordered Polarized Resolution Modulo

P ∨ C ¬Q ∨ D Resolution a, b, c σ(C ∨ D) L ∨ K ∨ C Factoring d σ(L ∨ C) P ∨ C Ext.Narr. a, b, and ¬Q ∨ D is a one-way clause of R σ(D ∨ C) ¬Q ∨ D Ext.Narr. a, c, and P ∨ C is a one-way clause of R σ(C ∨ D)

a σ = mgu(P, Q) b P ∈ δ(P ∨ C) c ¬Q ∈ δ(¬Q ∨ D) d L and K maximal in L ∨ K ∨ C, σ = mgu(L, K) e L maximal in L ∨ C

Figure: Inference rule of the OPRM≻

R

slide-8
SLIDE 8

Language

Definition

The two-sorted language L with one sort for vertices and one sort for classes of vertices contains

◮ constants s1, . . . , sn for the vertices of the graph ◮ a binary predicate symbol edge ◮ a binary predicate symbol ∈ ◮ a constant ∅ ◮ a binary function symbol add

slide-9
SLIDE 9

The theory of a graph

Definition (The theory TG)

The theory TG for a graph G contains

◮ edge(si, sj); ◮ ϕ(si) or ¬varphi(si); ◮ si = si and ¬si = sj; ◮ ∀x.¬x ∈ ∅,

∀x∀y∀Z(x ∈ add(y, Z) ⇔ (x = y ∨ x ∈ Z)).

slide-10
SLIDE 10

Clausal form of the theory

Q(s1, . . . , sk) Q(s1, . . . , sk) ¬Q(s1, . . . , sk) ¬Q(s1, . . . , sk) ∀x.¬x ∈ ∅ ¬(x ∈ ∅) ¬x ∈ add(y, Z) ∨ x = y ∨ x ∈ Z ∀x∀y∀Z(x ∈ add(y, Z) ⇔ (x = y ∨ x ∈ Z)) x ∈ add(x, Z) x ∈ add(y, Z) ∨ ¬x ∈ Z si = si si = si ¬si = sj ¬si = sj

slide-11
SLIDE 11

Outline

Background Expressions of graph properties Automated theorem proving Implementation

slide-12
SLIDE 12

Which kind of problem can be expressed by L

◮ Reachability or connectivity, ◮ k-colorable problem, ◮ bisimulation problem, ◮ problems can be expressed by Temporal logic, . . .

slide-13
SLIDE 13

Reachability

Example

For two vertices s1, s2 in a graph G, the property that starting from s1, s2 is reachable can be expressed as ∀Y

  • s1 ∈ Y ∧∀x
  • x ∈ X ⇒ ∀y
  • edge(x, y) ⇒ y ∈ Y
  • ⇒ s2 ∈ Y
  • .

and s2 is non-reachable can be expressed as ∃Y

  • s1 ∈ Y ∧∀x
  • x ∈ Y ⇒
  • ¬x = s2∧∀y(edge(x, y) ⇒ y ∈ Y )
  • .
slide-14
SLIDE 14

3-colorable

Example (3-colorable)

The property that graph G is 3-colorable can be expressed as: ∃X, Y , Z

  • Part(X, Y , Z) ∧ ∀x∀y
  • edge(x, y) ∧ ¬x = y ⇒

¬(x ∈ X ∧ y ∈ X) ∧ ¬(x ∈ Y ∧ y ∈ Y ) ∧ ¬(x ∈ Y ∧ y ∈ Y )

  • where Part(X, Y , Z) expresses that (X, Y , Z) is a partition of the
  • domain. The formula Part(X, Y , Z) is written as follows:

∀x

  • x ∈ X ∨ x ∈ Y ∨ x ∈ Z
  • ¬(x ∈ X ∧ x ∈ Y ) ∧ ¬(x ∈ Y ∧ x ∈ Z) ∧ ¬(x ∈ X ∧ x ∈ Z)
  • .
slide-15
SLIDE 15

Bisimulation

Example

Given a graph G, the property that two vertices s1 and s2 in G are bisimilar can be expressed as: ∃B

  • (s1, s2) ∈ B ∧ ∀x∀y
  • (x, y) ∈ B ⇒
  • ∀x′(edge(x, x′) ⇒ ∃y′′(edge(y, y′′) ∧ (x′, y′′) ∈ B))

∧ ∀y′(edge(y, y′) ⇒ ∃x′′(edge(x, x′′) ∧ (x′′, y′) ∈ B))

  • .

B is a class of binary tuple of vertices.

slide-16
SLIDE 16

Which kind of problem do we consider?

Properties for single vertices in a graph which can be defined inductively or coinductively.

slide-17
SLIDE 17

Which kind of problem do we consider?

Properties for single vertices in a graph which can be defined inductively or coinductively. For example the reachability between two vertices can be defined inductively, s1 s2

slide-18
SLIDE 18

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. For example the reachability between two vertices can be defined inductively, s1 s2

slide-19
SLIDE 19

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. For example the reachability between two vertices can be defined inductively, s1 s2

slide-20
SLIDE 20

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. For example the reachability between two vertices can be defined inductively, s1 s2

slide-21
SLIDE 21

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-22
SLIDE 22

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-23
SLIDE 23

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-24
SLIDE 24

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-25
SLIDE 25

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-26
SLIDE 26

Which kind of problem do we consider?

Properties in a graph which can be defined inductively or coinductively on single vertices. The non-reachability between two vertices can be defined coinductively: s1 s2

slide-27
SLIDE 27

The necessity of coinductive definition

For the two examples before, as we can prove that whether two vertices are reachable by the inductive definition, why should we care about the coinductive definition?

slide-28
SLIDE 28

The necessity of coinductive definition

For the two examples before, as we can prove that whether two vertices are reachable by the inductive definition, why should we care about the coinductive definition?

slide-29
SLIDE 29

The necessity of coinductive definition

For the two examples before, as we can prove that whether two vertices are reachable by the inductive definition, why should we care about the coinductive definition?

slide-30
SLIDE 30

Outline

Background Expressions of graph properties Automated theorem proving Implementation

slide-31
SLIDE 31

Example

s1 s2 s3

Example

Given a graph as above. We prove that starting from s1, s3 is reachable. The property can be expressed by ∀Y

  • s1 ∈ Y ∧ ∀x
  • x ∈ X ⇒ ∀y
  • edge(x, y) ⇒ y ∈ Y
  • ⇒ s3 ∈ Y
  • .
slide-32
SLIDE 32

Example

s1 s2 s3

Example

Given a graph as above. We prove that starting from s1, s3 is reachable. The property can be expressed by ∀Y

  • s1 ∈ Y ∧ ∀x
  • x ∈ X ⇒ ∀y
  • edge(x, y) ⇒ y ∈ Y
  • ⇒ s3 ∈ Y
  • .

The negation of it is s1 ∈ Yc (1a) ¬x ∈ Yc ∨ ¬edge(x, y) ∨ y ∈ Yc (1b) ¬s3 ∈ Yc (1c)

slide-33
SLIDE 33

s1 s2 s3

¬s3 ∈ Yc ¬x ∈ Yc ∨ ¬edge(x, y) ∨ y ∈ Yc ¬x ∈ Yc ∨ ¬edge(x, s3) edge(s2, s3) ¬s2 ∈ Yc ¬x ∈ Yc ∨ ¬edge(x, y) ∨ y ∈ Yc ¬x ∈ Yc ∨ ¬edge(x, s2) edge(s1, s2) ¬s1 ∈ Yc s1 ∈ Yc

slide-34
SLIDE 34

Coinductive formulas

Definition (coinductive definition)

For any unary predicate P, if the set T of vertices can be expressed by the formula ∀v(v ∈ T ⇒ (P(v) ∧ ∃v′(edge(v, v′) ∧ v′ ∈ T))), or ∀v(v ∈ T ⇒ (P(v) ∧ ∀v′(edge(v, v′) ⇒ v′ ∈ T))), we say that T is defined coinductively. And we denote these two kinds of formulas by co-rule(v, T).

slide-35
SLIDE 35

Coinductive formulas

Definition (coinductive formula)

Formulas of the form ∃X(s ∈ X ∧ ∀x.co-rule(x, X)) are called coinductive formulas.

slide-36
SLIDE 36

Coinductive formulas

Definition (coinductive clause, traversal clause)

◮ The clausal form of the negation of coinductive formulas are

called coinductive clauses (co-clause).

◮ The set of traversal clauses is inductively defined as the set

containing all the co-clauses and closed by the inference rules

  • f OPRM≻

R.

slide-37
SLIDE 37

Coinductive formulas

Definition ((non-)traversed literal, rule-literal, v-literal, ex-literal)

◮ Literals of the form ¬s ∈ Y /s ∈ Y are called

traversed/non-traversed literals.

◮ Literals of the form ¬co-rule(s, Y ) are called rule-literals. ◮ The literals with only vertex terms are called v-literals. ◮ The literals that are renamings of some other formulas by not

rule-literals are called ex-literals.

slide-38
SLIDE 38

Coinductive formulas

Definition (next-to-traverse vertex (literal))

Given a clause C, if both traversed literal ¬s ∈ Y and ¬co-rule(s, Y ) are in C, we denote s as the next-to-traverse vertex

  • f C. The function ntv is defined as

ntv(C) = {s | both ¬s ∈ Y and ¬co-rule(s, Y ) are literals of C}. And we name the rule-literal in C with a next-to-traverse vertex as next-to-traverse-literal.

slide-39
SLIDE 39

Selection function

Definition (selection function)

δ(C) =                    a = {l | l is a v-literal} a = ∅, b = {l | l is an ex-literal} a = ∅ and b = ∅, c = {l | l is a next-to-traverse-literal} a, b = ∅ and c = ∅, d = {l | l is a rule-literal} a, b, c = ∅ and d = ∅, e = {l | l is a traversed literal} a, b, c, d = ∅ and e = ∅, f = {l | l is a non-traversed literal}.

  • therwise
slide-40
SLIDE 40

Example

s1 s2 s3

Example

Given a graph as above. We prove that starting from s1, s3 is unreachable. ∃Y

  • s1 ∈ Y ∧ ∀x
  • x ∈ Y ⇒
  • ¬x = s3 ∧ ∀y(edge(x, y) ⇒ y ∈ Y )
  • .

After renaming and removing object quantifier ∀, the formula is ∃Y

  • s1 ∈ Y ∧
  • 1i3

co-rule(si , Y )

  • (2a)

∧ ∀x∀Y

  • co-rule(x, Y ) ⇔ (x ∈ Y ⇒ (¬x = s3 ∧
  • 1i3

ψ(x, si , Y )))

  • (2b)

∧ ∀x∀y∀Y

  • ψ(x, y, Y ) ⇔ (edge(x, y) ⇒ y ∈ Y )
  • (2c)
slide-41
SLIDE 41

The clausal form of the negation of (2a) is ¬s1 ∈ Y ∨

  • 1i3

¬co-rule(si, Y ) (3) we take (2b) and (2c) as axioms. The ⇐ part of (2b) can be transformed into

  • ne-way clauses

co-rule(x, Y ) ∨ x ∈ Y (4a) co-rule(x, Y ) ∨ x = s3 ∨

  • 1i3

¬ψ(x, si, Y ) (4b) The ⇐ part of (2c) can be transformed into one-way clauses ψ(x, y, Y ) ∨ edge(x, y) (5a) ψ(x, y, Y ) ∨ ¬y ∈ Y (5b)

slide-42
SLIDE 42

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3

slide-43
SLIDE 43

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y)

slide-44
SLIDE 44

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1)

slide-45
SLIDE 45

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y)

slide-46
SLIDE 46

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3)

slide-47
SLIDE 47

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y

slide-48
SLIDE 48

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

slide-49
SLIDE 49

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3

slide-50
SLIDE 50

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y)

slide-51
SLIDE 51

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1)

slide-52
SLIDE 52

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y )∗ ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y)

slide-53
SLIDE 53

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y )∗ ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s2)∗ ∨ ¬ψ(s2, s3, Y ) ¬s2 = s2

slide-54
SLIDE 54

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y )∗ ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s2)∗ ∨ ¬ψ(s2, s3, Y ) ¬s2 = s2 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y)

slide-55
SLIDE 55

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y )∗ ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s2)∗ ∨ ¬ψ(s2, s3, Y ) ¬s2 = s2 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s3)∗ ¬edge(s2, s3)

slide-56
SLIDE 56

s1 s2 s3

¬s1 ∈ Y ∨ ¬co-rule(s1, Y )∗ ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y

¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ s1 = s∗

3 ∨ 1i3 ¬ψ(s1, si , Y )

¬s1 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨

1i3 ¬ψ(s1, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ ¬ψ(s1, s3, Y ) ∨ edge(s1, s1)∗ ¬edge(s1, s1) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ∨ ¬ψ(s1, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y ) ∨ edge(s1, s3)∗ ¬edge(s1, s3) ¬s1 ∈ Y ∨ ¬co-rule(s2, Y ) ∨ ¬co-rule(s3, Y ) ∨ ¬ψ(s1, s2, Y )∗ ψ(x, y, Y ) ∨ ¬y ∈ Y ¬s1 ∈ Y ∨ ¬co-rule(s2, Y )∗ ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x = s3 ∨

1i3 ¬ψ(x, si , Y )

¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ s2 = s∗

3 ∨ 1i3 ¬ψ(s2, si , Y )

¬s2 = s3 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨

1i3 ¬ψ(s2, si , Y )∗

ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y ) ∨ ¬ψ(s2, s3, Y ) ∨ edge(s2, s1)∗ ¬edge(s2, s1) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s2, Y )∗ ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s2)∗ ∨ ¬ψ(s2, s3, Y ) ¬s2 = s2 ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ ¬ψ(s2, s3, Y )∗ ψ(x, y, Y ) ∨ edge(x, y) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y ) ∨ ¬s2 ∈ Y ∨ edge(s2, s3)∗ ¬edge(s2, s3) ¬s1 ∈ Y ∨ ¬co-rule(s3, Y )∗ ∨ ¬s2 ∈ Y co-rule(x, Y ) ∨ x ∈ Y ¬s1 ∈ Y ∗ ∨ ¬s2 ∈ Y ∗ ∨ s3 ∈ Y

slide-57
SLIDE 57

¬s1 ∈ Y ∗ ∨ ¬s2 ∈ Y ∗ ∨ s3 ∈ Y x ∈ add(x, Z) ¬s2 ∈ add(s1, Y ′)∗ ∨ s3 ∈ add(s1, Y ′) x ∈ add(y, Z) ∨ ¬x ∈ Z ¬s2 ∈ Y ′∗ ∨ s3 ∈ add(s1, Y ′) x ∈ add(x, Z) s3 ∈ add(s1, add(s2, Y ′′)) ¬x ∈ add(y, Z) ∨ x = y ∨ x ∈ Z s3 = s∗

1 ∨ s3 ∈ add(s2, Y ′′)

¬s3 = s1 s3 ∈ add(s2, Y ′′)∗ ¬x ∈ add(y, Z) ∨ x = y ∨ x ∈ Z s3 = s∗

2 ∨ s3 ∈ Y ′′

¬s3 = s2 s3 ∈ Y ′′∗ ¬x ∈ ∅

slide-58
SLIDE 58

Simplification

While traversing a graph, for some vertices have been visited already, we do not need to visit them the second time. s1 s2 s3 · · · s4

slide-59
SLIDE 59

Simplification

Definition (Path subsumption elimination rule(PSER))

For a set of traversal clauses C1, . . . , Cn, we have the rule C1 · · · Cn ntv(C1) = · · · = ntv(Cn) Ci(1 i n) meaning that if there are clauses of the form C1, . . . , Cn, such that all the clauses have the same next-to-traverse vertices, they can be replaced by only one of them.

slide-60
SLIDE 60

Simplification

Definition (Class-tautology clause)

Clauses of the form ¬s ∈ Y ∨ s ∈ Y ∨ C are called class-tautology clauses.

Definition (Class Tautology elimination rule (TERc))

Class-tautology clauses can be removed.

slide-61
SLIDE 61

Completeness

Theorem

OPRM≻

R with Path subsumption elimination rule and Class

tautology elimination rule is complete.

slide-62
SLIDE 62

Outline

Background Expressions of graph properties Automated theorem proving Implementation

slide-63
SLIDE 63

Efficiency Comparison

Table: Efficiency Comparison

time/s & result Vertices

EU EF AF EG

new

  • ld

new

  • ld

new

  • ld

new

  • ld

10

0.021 p 0.019 p 0.020 p 0.022 p 0.019 n 0.021 n 0.027 p 25.648 p

20

0.024 p 0.022 p 0.024 p 0.033 p 0.028 n 0.033 n 0.098 p - - -

100

0.264 n - - - 0.301 p 1.097 p 0.241 n 0.543 n 1.098 p - - -

200

1.044 p 1.603 p 1.142 p 8.295 p 0.919 n 3.067 n 8.350 p - - -

300

2.321 p 3.640 p 2.727 p 28.082 p 2.104 n 9.204 n 49.627 p - - -

350

3.209 p 5.241 p 3.834 p 45.351 p 2.981 n 14.269 n 50.892 p - - -

400

  • - - - - - - - - - - - - - - - - - - - - - - -

new OPRM≻

R with PSER and TERc; old OPRM≻ R; p provable; n not provable;- - time

  • ut.
slide-64
SLIDE 64

Bibliography

◮ Gilles Dowek, Ying Jiang

Axiomatizing truth in a finite model

slide-65
SLIDE 65

Thank you!