model checking hw4 - solution and common mistakes

41
Model checking HW4 - Solution and common mistakes Task 4b. 000 001 010 011 100 101 110 111 p p p p p p p ¬p Initialize F 0 = S 0 and F 1 = p.

Upload: others

Post on 23-Dec-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

Initialize F0 = S0 and F1 = p.

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

Initialize F0 = S0 and F1 = p.

F0 F1

k = 1

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k, s)

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

c = > [ >, l1, l2, l1 ∧ l2, l3, l1 ∧ l3, l2 ∧ l3, l1 ∧ l2 ∧ l3 ]

c← s ?

UNSAT(¬c ∧ F0 ∧R ∧ c′) ?

UNSAT(S0 ∧ c) ?

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

c = > [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? 7

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

c = ¬x3 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? 7

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

c = x2 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? X

c

Note: A common mistake was to consider that x2 was not a rightcube to generalize. The next one that works is x1. In thas case,the solution ends up being the same as in task 4a.

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g

g = x2 Update F1 := F1 ∧ ¬g

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = p ∧ ¬x2 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 1

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

propagateClauses(k = 2)

i = 0, F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

propagateClauses(k = 2)

i = 0, F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

UNSAT(F0 ∧R ∧ ¬(¬x′1)) ? X → F1 := F1 ∧ ¬x1

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

propagateClauses(k = 2)

i = 0, F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

UNSAT(F0 ∧R ∧ ¬(¬x′1)) ? X → F1 := F1 ∧ ¬x1

F1

Note: This state of the algorithm is the same as in page 15of the task 4a. Since from that step task 4a does not use thefunction generalize the continuation is the same.

However, the original intention of the algorithm was touse propagateClauses for all frames except F0, so fromnow we will follow task 4b with this alternative version ofpropagateClauses.

As for grading, we have considered both options (propagatingF0 or not) equally valid.

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

propagateClauses(k = 2)

i = 1, F1 = ¬x2

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F1 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

removeBad(k = 1, s = {110})

S0 ∧ s UNSAT → X

F0 ∧R ∧ ¬s′ UNSAT

generalize(i = 1, s = {110})

g = x2 Update F1 := F1 ∧ ¬g

k ++ and F2 = p

F2

F2 = p

propagateClauses(k = 2)

i = 1, F1 = ¬x2

UNSAT(F1 ∧R ∧ ¬(¬x′2)) ? 7

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k, s)

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

Note: A common mistake was to removeand generalize first state s. In that case, thesecond removeBad() call is unnecesary, be-cause state 101 is removed by generalize().

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = > [ >, l1, l2, l1 ∧ l2, l3, l1 ∧ l3, l2 ∧ l3, l1 ∧ l2 ∧ l3 ]

c← t ?

UNSAT(¬c ∧ F0 ∧R ∧ c′) ?

UNSAT(S0 ∧ c) ?

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = > [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? 7

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = x3 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? 7

UNSAT(S0 ∧ c) ? X

cc

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = ¬x2 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? 7

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = ¬x2 ∧ x3 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? 7

UNSAT(S0 ∧ c) ? X

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

c = x1 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F0 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? X

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g

g = x1 Update F1 := F1 ∧ ¬g

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g

g = x1 Update F1 := F1 ∧ ¬g

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = > [ >, l1, l2, l1 ∧ l2, l3, l1 ∧ l3, l2 ∧ l3, l1 ∧ l2 ∧ l3 ]

c← t ?

UNSAT(¬c ∧ F1 ∧R ∧ c′) ?

UNSAT(S0 ∧ c) ?

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = > [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F1 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? 7

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = ¬x3 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F1 ∧R ∧ c′) ? 7

UNSAT(S0 ∧ c) ? 7

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = x2 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F1 ∧R ∧ c′) ? 7

UNSAT(S0 ∧ c) ? X

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = x2 ∧ ¬x3 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F1 ∧R ∧ c′) ? 7

UNSAT(S0 ∧ c) ? X

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

c = x1 [ >, l3, l2, l3 ∧ l2, l1, l3 ∧ l1, l2 ∧ l1, l1 ∧ l2 ∧ l3 ]

c← s ? XUNSAT(¬c ∧ F1 ∧R ∧ c′) ? XUNSAT(S0 ∧ c) ? X

c

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g

g = x1 Update F1 := F1 ∧ ¬g (nothing to do)

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 2

F2

F2 = p

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g

g = x1 Update F2 := F2 ∧ ¬g

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 3

F2

F2 = ¬x1

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g = x1 Update F2 := F2 ∧ ¬g

k ++ and F3 = p

F3 = p

F3

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 3

F2

F2 = ¬x1

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g = x1 Update F2 := F2 ∧ ¬g

k ++ and F3 = p

propagateClauses(k = 3)

i = 1, F1 = ¬x1 ∧ ¬x2

F3 = p

F3

UNSAT(F1 ∧R ∧ ¬(¬x′1)) ? X → F2 := F2 ∧ ¬x1 (doesn’t change anything)

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 3

F2

F2 = ¬x1

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g = x1 Update F2 := F2 ∧ ¬g

k ++ and F3 = p

propagateClauses(k = 3)

i = 1, F1 = ¬x1 ∧ ¬x2

F3 = p

F3

UNSAT(F1 ∧R ∧ ¬(¬x′2)) ? 7

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 3

F2

F2 = ¬x1

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g = x1 Update F2 := F2 ∧ ¬g

k ++ and F3 = p

propagateClauses(k = 3)

i = 2, F2 = ¬x1

F3 = p

F3

UNSAT(F2 ∧R ∧ ¬(¬x′1)) ? X → F3 := F3 ∧ ¬x1

Model checking HW4 - Solution and common mistakesTask 4b.

000 001 010 011 100 101 110 111

p p p p p p p ¬p

F0 = ¬x1 ∧ ¬x2 ∧ ¬x3

F1 = ¬x1 ∧ ¬x2

s := SAT(F2 ∧R ∧ ¬p′) = x1 ∧ x2 ∧ ¬x3

F0 F1

k = 3

F2

F2 = ¬x1

removeBad(k = 2, s = {110})

S0 ∧ s UNSAT → X

t := SAT(F1 ∧R ∧ s′) = x1 ∧ x2 ∧ ¬x3

removeBad(i = 1, t = {101})

S0 ∧ t UNSAT → X

F0 ∧R ∧ t′ UNSAT

generalize(i = 1, t = {101})

g = x1 Update F1 := F1 ∧ ¬g

generalize(i = 2, s = {110})

g = x1 Update F2 := F2 ∧ ¬g

k ++ and F3 = p

propagateClauses(k = 3)

i = 2, F2 = ¬x1

F3 = ¬x1

F3

UNSAT(F2 ∧R ∧ ¬(¬x′1)) ? X → F3 := F3 ∧ ¬x1

F2 = F3 −→ X→ return M |= AG p