Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,400 --> 00:00:05,680
hello everybody welcome to week three of
logic and semantic approach languages so
2
00:00:05,680 --> 00:00:12,480
this week we're going to talk about several
topics related to solving satisfiability
3
00:00:12,480 --> 00:00:16,400
proving that something is unsatisfiable
or proving that something is valid
4
00:00:17,600 --> 00:00:21,760
we're going to see a number of different
techniques in particular we're going to look at
5
00:00:21,760 --> 00:00:27,040
the resolution proof system we're going to build
on top of this to come up with the so-called dpl
6
00:00:27,040 --> 00:00:33,920
algorithm for performing for checking whether or
not a formula is satisfiable this is also as i
7
00:00:33,920 --> 00:00:41,040
mentioned in the first week the building block of
of modern set solvers let's move on with this uh
8
00:00:42,640 --> 00:00:46,400
with the first topic we're going to first
look at the resolution proof system now
9
00:00:55,200 --> 00:01:03,920
and the goal of the resolution proof system
is we want to suppose we want to prove that
10
00:01:03,920 --> 00:01:09,600
a formula is unsatisfiable or that a formula is
valid how do we go about it there are a couple
11
00:01:09,600 --> 00:01:14,880
of things that we've seen now the in fact
the only automatic techniques for doing that
12
00:01:15,920 --> 00:01:22,720
that we've seen is just the truth tables
yeah we've also seen last week a method of
13
00:01:22,720 --> 00:01:29,760
equational reasoning that is using boolean algebra
axioms for performing syntactic manipulations
14
00:01:31,440 --> 00:01:40,160
from your original formula and to further simplify
that formula to eventually get that to either
15
00:01:41,920 --> 00:01:46,080
top or bottom yeah so that's one way
to prove also that a formula is valid
16
00:01:47,040 --> 00:01:56,000
but this is not automatic and unfortunately at
the moment it's not easily automatable as well um
17
00:01:56,880 --> 00:02:02,640
so so far the only automatic method
that we've seen is just semantic based
18
00:02:03,280 --> 00:02:08,800
we've got we're going to look at another
method now it's called resolution so this is uh
19
00:02:10,240 --> 00:02:17,680
it's a pretty simple and widely used proof system
and this can be used for proving that a formula is
20
00:02:18,480 --> 00:02:24,720
well but the setting the basic framework
of resolution is to prove that a formula is
21
00:02:24,720 --> 00:02:32,480
unsatisfiable and we assume that it is in cnf
yeah so and firstly observe that validity and
22
00:02:32,480 --> 00:02:37,360
unsatisfiability are of course dual notions you
remember that a formula is valid if and only if
23
00:02:37,920 --> 00:02:44,480
it's negation is unsatisfiable so you can reduce
validity to unsatisfiability and vice versa so
24
00:02:44,480 --> 00:02:50,560
what about the restriction that the formula here
yeah we assume that a formula is in cnf so we will
25
00:02:50,560 --> 00:02:57,200
see later on that this is not a restriction
so there's a way to convert general formula
26
00:02:57,200 --> 00:03:02,640
into one in cnf so we've seen we've seen a
way to do that before of course last week yeah
27
00:03:03,920 --> 00:03:09,760
but the method is not um yeah i mean in general
it gives a formula that can be quite large
28
00:03:11,040 --> 00:03:18,320
now yeah so we're gonna see another method for
doing that that is more efficient it's called
29
00:03:18,320 --> 00:03:26,400
the sightings transformation and this week later
on this week we also got to look at the um the dpl
30
00:03:26,400 --> 00:03:33,120
algorithm so this is which is the basic building
block for modern set solvers fast modes or solvers
31
00:03:33,120 --> 00:03:39,520
like for example z3 yeah and this dpl itself
is actually also based on resolution per system
32
00:03:41,040 --> 00:03:44,400
so let's take a look at
the um before we go through
33
00:03:45,840 --> 00:03:51,120
the formal definition of resolution and more
technical details like proofs etc we first just
34
00:03:51,120 --> 00:03:57,280
going to look at the intuition of resolution
so the concept of resolution is pretty simple
35
00:03:58,080 --> 00:04:05,360
and i will explain to you by example firstly i
will tell you what it uh uh what is a a single
36
00:04:05,360 --> 00:04:13,280
resolution step after that i'll tell you what it
means by um the yeah what this entire proof system
37
00:04:13,280 --> 00:04:19,040
consists of so let's say you're given already
a formula in cnf yeah so this formula here
38
00:04:20,320 --> 00:04:27,200
um as you can see it's in cnf it has two
clauses okay so a single resolution step
39
00:04:27,200 --> 00:04:38,240
consists of the following firstly you pick um you
identify two literals from the from two clauses
40
00:04:38,800 --> 00:04:46,560
in the formula yeah that are opposite to each
other in this case you can see for example q
41
00:04:47,200 --> 00:04:55,040
and q prime of course these are two opposite
literals yeah so we want opposite literals in two
42
00:04:55,040 --> 00:04:59,440
different clauses they seem really important yeah
so two opposite literals in two different clauses
43
00:05:01,280 --> 00:05:07,680
so from here what you can do is you can derive
a new clause by eliminating these two opposite
44
00:05:07,680 --> 00:05:13,120
literals so you simply eliminate them and then
you union you take the union of the remaining
45
00:05:13,120 --> 00:05:21,040
literals yeah so this p r and t so this is what
you get and then you get you derive a new clause
46
00:05:22,240 --> 00:05:23,840
this new clause here and
47
00:05:25,920 --> 00:05:32,240
uh what you do next is you add this thing
this new clause into the formula yeah
48
00:05:33,040 --> 00:05:39,040
and you get this bigger formula here okay so
you get this one here the first one second
49
00:05:39,040 --> 00:05:44,400
one and this is this is the third one yeah so um
just to make this more a little bit more precise
50
00:05:44,960 --> 00:05:51,840
this new class is actually semantically
entailed from the original formula
51
00:05:52,880 --> 00:06:01,280
and therefore the new formula here is actually
in fact equivalent to the initial formula so um
52
00:06:03,360 --> 00:06:07,680
yeah you can for example try to prove
that in this case for example here
53
00:06:07,680 --> 00:06:14,400
by a little uh semantic argument so why is this
new clause entailed by this initial formula
54
00:06:14,400 --> 00:06:22,560
well so so for example you take a you take
an interpretation that satisfies this formula
55
00:06:23,120 --> 00:06:30,000
then we know that either q or not q that that
is q is assigned to one or assigned to zero yeah
56
00:06:30,000 --> 00:06:37,840
in the case where it's assigned to one where
where q is assigned to one then this p this
57
00:06:37,840 --> 00:06:44,320
either p or r has to be true because i in order
to make this um clause true because uh we assume
58
00:06:44,320 --> 00:06:50,240
that this it satisfies this formula here yeah
so this has to be this thing has to be true so
59
00:06:50,240 --> 00:06:56,080
then it's what either one either one of p or
r has to be true therefore this new clause is
60
00:06:56,080 --> 00:07:03,040
true that is the interpretation of this uh
in uh over this new clause is true and also
61
00:07:03,040 --> 00:07:09,840
yeah when q is assigned to 0 then t has to be
true in order for this initial in order for
62
00:07:10,640 --> 00:07:16,320
this initial formula to be satisfied by the
model and therefore this the model also the
63
00:07:16,320 --> 00:07:21,280
interpretation of satisfies t here yeah
so that's a little semantic argument that
64
00:07:21,280 --> 00:07:25,840
you can apply in order to check that this
actually is entailed by the initial formula
65
00:07:27,760 --> 00:07:36,000
now a resolution proof system is extremely
simple so you it goes as follows you
66
00:07:36,000 --> 00:07:39,840
are given your initial formula in cnf
and you just have to keep applying this
67
00:07:41,920 --> 00:07:44,480
resolution steps of course
different resolution steps
68
00:07:45,360 --> 00:07:50,800
um until no new clauses could be added
yeah so that's that's pretty much it and
69
00:07:53,120 --> 00:07:59,600
yeah and the theorem here is that the initial
formula is unsatisfiable if and only if the
70
00:07:59,600 --> 00:08:07,600
empty clause um the empty clause that is uh
uh this guy here that we write like this yeah
71
00:08:07,600 --> 00:08:12,720
bottom because it's actually unsatisfiable
empty clause is generated by resolution
72
00:08:18,960 --> 00:08:23,120
so we're going to take a look at a little bit
more details now on the resolution proof system
73
00:08:25,200 --> 00:08:29,680
um in order to talk about the resolution
74
00:08:29,680 --> 00:08:35,120
um system it is convenient to assume the
so-called set representation of cnn formulas
75
00:08:36,240 --> 00:08:42,960
so the key idea here is as follows so claus
remember it just a disjunction of literals yeah
76
00:08:43,600 --> 00:08:51,520
and disjunctions of course satisfy commissivity
sensitivity and adam potence we saw last week
77
00:08:52,960 --> 00:09:01,440
so we can then because of this
we can then represent a clause
78
00:09:03,280 --> 00:09:08,560
as this as a set for example if you look at the
example here so the clause here on the left can
79
00:09:08,560 --> 00:09:17,600
be represented as the um as the set on the right
here yeah and of course um the idea here is that
80
00:09:17,600 --> 00:09:22,080
take every literal and just put that in that set
take delete every literal in the class put it in
81
00:09:22,080 --> 00:09:27,120
that set now if you have duplicate literals of
course this will be removed but then that's fine
82
00:09:27,120 --> 00:09:31,280
it doesn't really make any difference just
because of the adam potent properties of um
83
00:09:34,160 --> 00:09:39,440
so likewise a conjunction of formulas can also
be represented using a set i mean just because
84
00:09:39,440 --> 00:09:44,000
of the connectivity and associativity as well of
and this of course also other importance of con
85
00:09:46,000 --> 00:09:54,880
of conjunctions um now uh the idea here
is that every clause will then just be put
86
00:09:54,880 --> 00:10:03,840
in the in the biggest set as opposed to a
literal so you can for example um represent
87
00:10:05,040 --> 00:10:12,400
this formula here okay so you can see a formula
in cnf yeah so this so this has a bunch of clauses
88
00:10:12,400 --> 00:10:17,360
so each clause here will be represented as a set
and after your percentage clause is set to just
89
00:10:17,360 --> 00:10:25,200
put the um you just put the um just make a bigger
set that consists of all these classes yeah so
90
00:10:25,200 --> 00:10:32,160
for example you uh for this example you simply
create this bigger set and each of this guy here
91
00:10:32,160 --> 00:10:42,560
will just be put as the um inside this bigger set
yeah um if you have for example duplicate clauses
92
00:10:42,560 --> 00:10:46,080
then the duplicates of course will be
removed but it doesn't make any difference
93
00:10:46,080 --> 00:10:54,320
it's fine yeah so that's the representation
of cnn formulas using sets of sets of literals
94
00:10:56,640 --> 00:11:03,520
i have a couple of um questions for you
little questions just to check whether
95
00:11:03,520 --> 00:11:12,320
or not you understand uh the um how to do this
conversion and what it really means when you see
96
00:11:13,760 --> 00:11:16,960
a sienna formula in this representation yeah so
97
00:11:18,800 --> 00:11:24,400
which ones of the following formulas are
unsatisfiable so i have five questions
98
00:11:24,400 --> 00:11:30,720
here i encourage you to think about this for
about two minutes before you continue the video
99
00:11:38,720 --> 00:11:44,400
okay so let's go through the
solutions to this uh to this quiz
100
00:11:46,240 --> 00:11:52,800
let's take let's take a look at the formulas one
by one so let's take a look at the first formula
101
00:11:52,800 --> 00:11:59,040
well this is just the same as a formula consisting
of a single clause so this is basically you know
102
00:11:59,040 --> 00:12:05,520
you have this formula here a and of course that's
that's the single clause consisting of a and
103
00:12:07,360 --> 00:12:09,840
so this is of course satisfiable you can assign
104
00:12:12,240 --> 00:12:18,640
one to a then that's going to be a
satisfiable satisfying assignment
105
00:12:20,800 --> 00:12:27,760
take a look at the second one here so
the second one here is you have a and
106
00:12:27,760 --> 00:12:34,480
not a well that's of course not satisfiable
yeah so a and not a as we saw before
107
00:12:34,480 --> 00:12:40,320
this unsatisfiable what about the third
one is it satisfiable or not satisfiable
108
00:12:40,320 --> 00:12:45,360
so let's see what it means so just be a bit
careful here yeah so you see like so the the
109
00:12:45,360 --> 00:12:53,440
braces yeah so you have the the top most uh
so basically you have a set consisting of a
110
00:12:54,240 --> 00:13:02,880
comma not a so the innermost the innermost set
yeah so this is basically just a or not a so you
111
00:13:02,880 --> 00:13:09,680
have um we have a single class consisting of
these two literals a comma not a now of course
112
00:13:09,680 --> 00:13:17,360
if you see this thing then um then you can see
now that this is of course this has to be um
113
00:13:17,360 --> 00:13:23,040
this is equivalent to the equivalent to top this
is basically just the valid it's just a tautology
114
00:13:23,040 --> 00:13:30,880
so it is of course satisfiable now we have these
two little uh i would say like corner cases here
115
00:13:32,160 --> 00:13:39,760
so what are these corner cases well firstly
what do they really mean so this is just you
116
00:13:39,760 --> 00:13:48,080
have basically um empty sets at some level here
for four and five so let's take a look at um four
117
00:13:49,360 --> 00:13:55,760
four here is you have a single clause consisting
of well you have a single empty clause
118
00:13:55,760 --> 00:14:03,760
in the uh you have a single empty clause in
the um in the formula so what does it mean
119
00:14:03,760 --> 00:14:07,600
by an empty clause remember if you have
an empty conjunctions yeah so let's say
120
00:14:08,640 --> 00:14:15,120
one up to um it's a zero you have um that's
a literal so do you remember what this
121
00:14:15,120 --> 00:14:19,840
conventionally uh what this convention means
if you have um if you have an empty disjunction
122
00:14:21,040 --> 00:14:28,080
so this is interpreted as by convention
this is interpreted as bottom okay so
123
00:14:29,360 --> 00:14:35,520
this would mean that the formula here
actually is just equivalent to bottom
124
00:14:35,520 --> 00:14:39,120
okay so of course that would
just be the unsatisfiable formula
125
00:14:41,280 --> 00:14:44,960
so what about this one here so
here you have an empty clause
126
00:14:48,560 --> 00:14:52,080
story not empty clause empty
conjunction so empty conjunction
127
00:14:52,880 --> 00:15:01,520
by definition or by a
convention uh sorry this is uh
128
00:15:07,600 --> 00:15:14,720
so empty conjunction of clauses so if it's empty
it's always interpreted as top yeah and therefore
129
00:15:14,720 --> 00:15:21,280
this is simply just the yeah this is just
the um the tautology so therefore this
130
00:15:21,280 --> 00:15:28,000
this uh this is a satisfiable formula okay yeah
well that's pretty much it for the in-class quiz
131
00:15:29,920 --> 00:15:34,000
um let's try to go through the resolution proof
132
00:15:34,000 --> 00:15:39,840
um the resolution step in more detail in order
to define this resolution step in more detail
133
00:15:40,480 --> 00:15:44,880
we need to we need the notion of a resolvent
so the resolvent here intuitively speaking
134
00:15:44,880 --> 00:15:51,280
is the clause that you generate after you find
this uh two clauses with conflicting literals yeah
135
00:15:51,280 --> 00:15:58,480
so let's um formalize this so you're given two
clauses c and c prime such that you have literal l
136
00:15:59,200 --> 00:16:07,840
in c and you have the opposite literal not l
in c prime okay so this is for some literal l
137
00:16:10,480 --> 00:16:18,320
then the resolvent of cnc prime is defined to be
the following clause it's the clause this is the
138
00:16:18,320 --> 00:16:28,320
clause r and obtained by you take the union
of c minus l yeah so you remove the l from c
139
00:16:29,280 --> 00:16:41,120
and you remove the and then here you all and then
you a union c prime where the where not l here is
140
00:16:41,120 --> 00:16:50,160
removed from c prime okay so that's the uh that's
the notion of resolvent this the new velocity
141
00:16:50,160 --> 00:16:56,240
generate after you apply a single resolution
step here that we you saw um let's do so before
142
00:16:56,880 --> 00:17:07,920
so here's an example so this here this p t and
r is a resolvent for the the two clauses here
143
00:17:07,920 --> 00:17:16,880
so this is the example that you saw um the second
slide and what's going on here so you as you saw
144
00:17:16,880 --> 00:17:27,920
before the what is the l here the l here is simply
this yeah the l here is just oh here's q yeah okay
145
00:17:30,480 --> 00:17:41,040
right so that's uh the notion of resolvent how do
we formalize this uh resolution uh proof system
146
00:17:41,680 --> 00:17:45,600
so this can be formalized in two
different ways so this is the
147
00:17:45,600 --> 00:17:52,160
so the first way is to think of it as some kind of
uh some kind of um fixed point computation so we
148
00:17:53,520 --> 00:18:01,920
the idea here is um given your original set of um
clauses um you want to keep generating resolvence
149
00:18:02,560 --> 00:18:08,640
from your original from your um from your set of
formulas from your set of clauses and then you
150
00:18:08,640 --> 00:18:13,440
keep adding it to your you keep adding it to your
set of clauses yeah and then you keep you keep
151
00:18:13,440 --> 00:18:18,720
applying it until you can't really get any more
resolvence out of it so here can be formalized as
152
00:18:18,720 --> 00:18:26,640
follows you you you derive here uh you define here
the following function press yeah and this takes a
153
00:18:26,640 --> 00:18:32,880
set of clauses and this will return a set of plots
the set of clauses that you return always subsumes
154
00:18:32,880 --> 00:18:42,000
the original set of clauses as you can see here
f is contained in the um in the output of rest of
155
00:18:42,000 --> 00:18:50,560
f okay so um so what is here well if r is a
resolvent of f yeah then you just add that to
156
00:18:50,560 --> 00:18:58,240
your um to you you add that to f okay so this
is a single resolution single resolution step
157
00:19:00,960 --> 00:19:09,840
and then you can define it um and then you can
define res rest n of f yeah so this means applying
158
00:19:10,800 --> 00:19:17,680
this operator n times to f and this can
be formally defined using using induction
159
00:19:17,680 --> 00:19:25,280
as follows here yeah so initially the rest of rest
0 of f it means you don't apply anything so it's
160
00:19:25,280 --> 00:19:35,440
basically just f so rest n plus 1 of f is obtained
by applying res applying res to this rest n of f
161
00:19:35,440 --> 00:19:43,600
yeah so which is we assume already uh is already
defined so this is uh um the formal definition of
162
00:19:43,600 --> 00:19:54,560
uh rus and uh rest n of f and we define the limit
yeah this is star yeah of uh res restart of f
163
00:19:54,560 --> 00:20:02,240
to be yeah simply you just take the union of all
this rest n of f yeah so um so it just means that
164
00:20:02,800 --> 00:20:09,840
so this is uh this this basically the set of
all clauses that we can obtain by applying
165
00:20:10,800 --> 00:20:17,440
zero or more resolution steps to f
right so the second way to define this
166
00:20:18,880 --> 00:20:24,320
is to use the notion of uh to define
the notion of a proof right so
167
00:20:25,840 --> 00:20:30,480
um here's the definition so given a set of
clauses f a sequence of clauses of course
168
00:20:30,480 --> 00:20:37,840
it's just c one of the c n yeah now a proof would
just be a sequence of clauses such that either
169
00:20:37,840 --> 00:20:44,480
the following is true for h clause c i so c i is
either in f that is one of the um pluses that you
170
00:20:44,480 --> 00:20:52,480
started with or that c is a resolvent of two
clauses that appear in this sequence okay so
171
00:20:52,480 --> 00:21:00,240
meaning that they were either already in f or they
were already previously derived using these rules
172
00:21:00,240 --> 00:21:07,120
here so this is what it means by proof also known
as the derivation yeah so and this is a derivation
173
00:21:07,120 --> 00:21:13,840
of the last um the last clause here the derivation
of c n from f in this case we just simply write f
174
00:21:14,640 --> 00:21:21,920
and here you can note you can see here there's
a new symbol a single single turn style yeah
175
00:21:21,920 --> 00:21:30,160
f single turn cell cn so this is another way
to write or to say that f can be used to prove
176
00:21:30,160 --> 00:21:37,680
cn or f proves cn or says cn can be
derived from f using resolution so
177
00:21:40,640 --> 00:21:46,240
okay so here's an example
of a proof using resolution
178
00:21:48,720 --> 00:22:01,520
so and here i of course you saw the notion of a
proof is a sequence of clauses but there's also a
179
00:22:01,520 --> 00:22:06,240
visual representation of this yeah so the visual
representation this is more like a tree-like
180
00:22:07,280 --> 00:22:12,400
representation it's more sometimes more convenient
when you want to write it down when you want to
181
00:22:12,400 --> 00:22:16,880
present the proof to other people so let's
see how do you apply resolution steps here
182
00:22:16,880 --> 00:22:23,200
this there are several ways here that you can
approach this so for example you notice that
183
00:22:24,080 --> 00:22:28,960
there are already a number of places number of uh
there are already several clauses here that have
184
00:22:28,960 --> 00:22:35,200
conflicting literals for example here i have this
q and q uh q and q prime yeah sorry q and not q
185
00:22:35,200 --> 00:22:42,080
and you also have r here i'll just take a
different color r and not r and then also here you
186
00:22:42,080 --> 00:22:50,320
also have p and not p right so you have several
ways to proceed um and you can proceed in any way
187
00:22:50,320 --> 00:22:59,840
you like so let's take a look [Music] so firstly
of course we are going to represent this using
188
00:23:00,880 --> 00:23:09,920
the set representation so this is what you have
so you can for example proceed by by taking the
189
00:23:09,920 --> 00:23:15,360
resolvent of the second and the third
clause yeah so if this is the resolvent here
190
00:23:16,080 --> 00:23:25,680
that yeah would be this q you eliminate the r
and not r and then for example you can then pick
191
00:23:25,680 --> 00:23:36,240
the this one here so you have this q and not
q so you can then eliminate this q a not q
192
00:23:36,240 --> 00:23:43,840
and then you get p right this is the resolvent
of these two clauses and then you can then uh
193
00:23:45,680 --> 00:23:53,360
for example look at this p and then not p
here yeah um so p and not p here so these
194
00:23:53,360 --> 00:23:59,600
are uh two clauses with conflicting literals so
you remove the p and not p and take the union
195
00:23:59,600 --> 00:24:07,920
you just get the empty empty claw okay so so
this is as i mentioned just now this is this
196
00:24:07,920 --> 00:24:13,760
three representation of proofs is also called the
proof tree so it's uh more descriptive sometimes
197
00:24:14,400 --> 00:24:18,000
than the cumbersome proof sequence so you could
for example instead of this you could just write
198
00:24:18,000 --> 00:24:22,800
it down like this yeah so this is like the first
formula so the first clause second clause third
199
00:24:22,800 --> 00:24:27,680
clause and then just keep writing this down
and at the end you just get the bar okay so
200
00:24:31,600 --> 00:24:37,600
so here are some exercises for you so apply
resolutions on the following formulas and
201
00:24:37,600 --> 00:24:45,600
determine satisfiability of these formulas so i
will give you guys about um let's say about 10
202
00:24:45,600 --> 00:24:53,520
minutes to do this examples and afterwards we'll
talk about the uh we'll go through some of them
203
00:24:57,760 --> 00:25:04,800
okay so let's take a look at the solutions to
the exercises let's try the first example first
204
00:25:06,160 --> 00:25:09,840
um in this case what we're gonna do
205
00:25:11,040 --> 00:25:15,920
remember we're gonna have to first translate
it to the set representation so we have
206
00:25:20,240 --> 00:25:31,120
oops let me change color x y not x comma z
207
00:25:33,120 --> 00:25:44,480
not x comma not that and the other
one is x comma not y right so what
208
00:25:47,440 --> 00:25:54,000
what are we gonna do now what are we um
which two clauses are we gonna pick so first
209
00:25:55,360 --> 00:26:02,640
when we see these four classes the best thing just
a little trick here we want to we want to try to
210
00:26:02,640 --> 00:26:10,160
generate so the rule here or rule of thumb yeah
is to try to keep it simple we try to generate a
211
00:26:10,160 --> 00:26:18,720
clause that is as simple as possible yeah so this
is uh um this is always good if we can do that
212
00:26:18,720 --> 00:26:27,120
and in this case we can take a look at these two
clauses here the first one and the fourth one and
213
00:26:27,120 --> 00:26:32,720
these two clauses you see that the only difference
here is just the you have y and not y right
214
00:26:32,720 --> 00:26:41,040
so let's try to take the compute the resolvent
for that so this is a little bit far and if you
215
00:26:41,040 --> 00:26:46,080
want to try to draw it nicely you might need to
kind of shuffle things around a little bit but
216
00:26:47,840 --> 00:26:52,560
that's not a problem because we are doing
it the first uh the first time around yeah
217
00:26:52,560 --> 00:27:00,640
so um you would get if you take the
result of this you would get x right right
218
00:27:02,400 --> 00:27:12,160
and now once we've done that we
can for example consider the second
219
00:27:14,720 --> 00:27:17,680
okay so let me just write five
so we can look at the fifth
220
00:27:19,120 --> 00:27:23,040
clause and the second clause so
from here and here you would get
221
00:27:25,920 --> 00:27:27,200
you would get that
222
00:27:29,600 --> 00:27:39,680
yeah and now we can take for example
the fifth one and the third one
223
00:27:41,840 --> 00:27:48,640
yeah so notice that we might need to use a clause
multiple times and this is you closely use the
224
00:27:48,640 --> 00:27:55,840
clause fifth clause multiple times yeah so let's
take fifth and third in this case you would get
225
00:27:59,760 --> 00:28:02,880
not that okay and then
226
00:28:05,040 --> 00:28:11,360
we can just do the six um computer resolving
227
00:28:12,080 --> 00:28:18,640
of six and seven you would get the empty clause
and yeah that's that's pretty much it here
228
00:28:21,040 --> 00:28:30,320
so by by the soundness theorem that you will
see in a bit this would mean that you would
229
00:28:30,320 --> 00:28:37,360
get a formula that is unsatisfiable so uh the this
formula the original formula is unsatisfiable all
230
00:28:37,360 --> 00:28:42,560
right all right let's take a look at solution to
the second question and in this case we don't yet
231
00:28:42,560 --> 00:28:49,200
have a formula in cnf so firstly the first thing
you need to do is to convert it to cnf and in this
232
00:28:49,200 --> 00:28:58,800
case it's actually not that difficult because it
is almost in cnf so you would get you just have to
233
00:29:04,240 --> 00:29:11,680
simplify this so an application it means that
it's just not p or q or r yeah so that would be
234
00:29:11,680 --> 00:29:22,880
not p q or r yeah so this is pretty much
already cnf actually so it's not q s and not r
235
00:29:24,160 --> 00:29:32,400
s and p not s so we can then write
it down in the set representation
236
00:29:34,240 --> 00:29:40,880
set representation we have
not p q r we have not q s
237
00:29:43,200 --> 00:29:47,760
we have not r s and then we have p
238
00:29:49,920 --> 00:29:56,880
s right so let's take a look what we can do now to
239
00:29:59,360 --> 00:30:01,200
apply the resolution proof system
240
00:30:04,240 --> 00:30:09,120
so the rule of thumb remember we always
try we always prefer the smaller clauses
241
00:30:09,120 --> 00:30:13,440
yeah whenever possible or prefer to use smaller
clauses and prefer to generate smaller clauses
242
00:30:14,000 --> 00:30:18,000
um of course this is not always
possible yeah but this is what we
243
00:30:18,000 --> 00:30:22,240
you know what we're gonna try to do because
it's just simpler as human so let's to do
244
00:30:22,240 --> 00:30:30,640
that let's try to do that the let's take this one
and this one for now yeah you would get q comma r
245
00:30:32,160 --> 00:30:39,200
right so let's uh is there something
else we can do here let's try
246
00:30:41,600 --> 00:30:46,960
um this is s okay let's let's do this one now
247
00:30:49,360 --> 00:30:52,000
yeah third and fifth you get
248
00:30:54,560 --> 00:31:03,840
not r yep so now if you do that here
this one and that you would get q
249
00:31:06,320 --> 00:31:14,240
right so it looks like we have to bring um
into play the second clause how do we do that
250
00:31:15,040 --> 00:31:22,720
so this is s remember yeah so this is not
q comma s so what do we have here okay so
251
00:31:22,720 --> 00:31:31,840
looks like we can do the following here so we can
do the second and the fifth class you would get
252
00:31:33,280 --> 00:31:39,280
not q here okay and therefore
this and that should give you
253
00:31:40,320 --> 00:31:45,840
the empty class right so that's
pretty much the solution to the second
254
00:31:47,120 --> 00:31:52,800
the second exercise and therefore it's
also unsatisfiable formula all right
255
00:31:57,680 --> 00:32:03,520
okay so let me conclude with the following
question so what are the differences between
256
00:32:03,520 --> 00:32:08,240
these two symbols we've seen a bunch of symbols
that look pretty similar and this is one of them
257
00:32:08,240 --> 00:32:13,600
one possible source of one possible source
of confusion yeah so on the one hand here
258
00:32:13,600 --> 00:32:18,160
so we've seen this thing used for for
example for entailment also to mean like um
259
00:32:21,520 --> 00:32:29,200
an interpretation is a satisfying interpretation
for some formula or it's a model for some formula
260
00:32:29,200 --> 00:32:35,280
and this one here so we've
used this to mean um that
261
00:32:36,960 --> 00:32:46,000
a set of form a set of clauses in our case of our
set of clauses can be used to derive a clause yeah
262
00:32:46,640 --> 00:32:51,920
so what are the differences between these two
symbols so i will give you a general guideline
263
00:32:51,920 --> 00:33:01,120
here this is a general answer so in general
this so if you have a single turn style a single
264
00:33:01,120 --> 00:33:07,760
stripe like this here so this is typically used to
indicate some kind of a probability in some proof
265
00:33:07,760 --> 00:33:16,080
system so this typically means it's syntactic
and it's it can be uh this can be implemented uh
266
00:33:16,080 --> 00:33:22,160
in uh as computer program and this doesn't have
direct connection with semantics yet at this point
267
00:33:22,160 --> 00:33:28,960
and this notion of this notation is typically used
to yeah i mean this is typically used to mean um
268
00:33:30,240 --> 00:33:34,000
that it has something to do with
semantics yeah as opposed to the syntax
269
00:33:34,000 --> 00:33:40,880
and uh one thing here that is really important
is that we typically uh so for the for example
270
00:33:40,880 --> 00:33:47,440
for this uh for any of this notion in fact any
of this notation sometimes we take um we put
271
00:33:47,440 --> 00:33:52,720
some kind of a prefix like this for example like
rasia so for example we can have this probability
272
00:33:52,720 --> 00:33:59,520
and then with rest we just specifically to
mean that this is probability in um using
273
00:33:59,520 --> 00:34:05,840
resolution proof system yeah but yeah we don't
need to do that whenever the meaning is clear
274
00:34:08,000 --> 00:34:13,360
okay so we now gonna talk about three
important properties of the resolution
275
00:34:13,360 --> 00:34:22,240
proof system soundness completeness and
termination so the first two statements
276
00:34:22,240 --> 00:34:29,440
relate the syntax and semantics typically yeah so
syntax means the proof system so it is something
277
00:34:29,440 --> 00:34:36,240
that is syntactic something that you can just
carry out algorithmically and semantics is
278
00:34:36,800 --> 00:34:43,760
yeah i mean this is not something that is
immediately automatable now the soundness
279
00:34:43,760 --> 00:34:51,520
theorem or soundness property says that for as
far as the resolution proof system is concerned
280
00:34:53,360 --> 00:35:01,600
if the empty clause can be derived then the
formula is unsatisfiable now the completeness
281
00:35:01,600 --> 00:35:09,040
theorem it says that if a formula is unsatisfiable
then there is the resolution proof system
282
00:35:10,160 --> 00:35:13,280
then you can find a proof in
the resolution proof system yeah
283
00:35:14,400 --> 00:35:25,200
namely that you can derive the empty clause from
the set of given clauses so um yeah both of these
284
00:35:25,840 --> 00:35:30,160
properties soundness and completeness are really
important for proof system we will see this theme
285
00:35:30,800 --> 00:35:38,240
several times in this course now the next question
is that is really important is can we make the
286
00:35:38,240 --> 00:35:45,760
proof system a terminating algorithm so what we've
seen so far is that as far as the resolution proof
287
00:35:45,760 --> 00:35:51,600
system is concerned some of the steps you might
have to guess a little bit i mean it is possible
288
00:35:51,600 --> 00:35:58,160
to automate this in the sense that okay so we just
generate all the possible resolvence but it is not
289
00:36:00,000 --> 00:36:05,040
immediate not uh not directly immediate
that this will actually terminate so this
290
00:36:05,040 --> 00:36:08,800
in fact we can actually make turn
this into a terminating algorithm
291
00:36:09,440 --> 00:36:14,800
and it will not be really difficult later on
because in some sense the set of all possible
292
00:36:14,800 --> 00:36:20,240
resolvence is bounded so we will see all of
this we will cover all these three properties
293
00:36:21,440 --> 00:36:31,920
one by one first we're going to talk about
soundness so as we as we just mentioned
294
00:36:32,960 --> 00:36:40,400
if the empty clause can be derived by
resolutions then the formula isn't satisfiable
295
00:36:42,080 --> 00:36:47,840
so we're going to look at a proof of this in
order to prove dishonest theorem we need the
296
00:36:47,840 --> 00:36:54,960
following lemma resolution lemma which says
that if r is a resolvent of c and c prime
297
00:36:56,080 --> 00:37:02,720
then we can add r into the formula without
while preserving the equivalence yeah so
298
00:37:02,720 --> 00:37:09,600
that is c and c prime is equivalent
to c and c prime and r yeah so this r
299
00:37:09,600 --> 00:37:16,560
doesn't really change the semantics of
the formula so let's try to prove that
300
00:37:19,680 --> 00:37:26,560
so in order to prove this it is sufficient
to just prove that c and c prime
301
00:37:27,520 --> 00:37:30,880
semantically entails r yeah so
302
00:37:35,760 --> 00:37:43,200
why is that the case if c and c prime
semantically entails r then so firstly
303
00:37:43,200 --> 00:37:46,560
this the right hand side entails the
left-hand side obviously and you just
304
00:37:46,560 --> 00:37:50,560
need to show that the left-hand side entails
the right-hand side and in order to show that
305
00:37:50,560 --> 00:37:55,600
the left-hand side in tells the right-hand side
of course you can break it down into two parts
306
00:37:56,240 --> 00:38:01,040
this c and c-prime of course intel c and c-prime
so that's not a problem so you just then need
307
00:38:01,040 --> 00:38:06,720
to show that c-s-prime entails are which
is basically what this statement is about
308
00:38:07,600 --> 00:38:17,840
so um so how do we show this firstly recall that r
here is defined as follows so it's um basically c
309
00:38:18,640 --> 00:38:26,480
union c prime but then you remove l this you
remember that we have two con opposite literals
310
00:38:26,480 --> 00:38:34,800
yeah so l and l prime so ln not l so remove
l from c and then not l from c prime yeah so
311
00:38:37,440 --> 00:38:41,440
so let's say we are so in order to
prove this we assume we are given
312
00:38:41,440 --> 00:38:50,560
an interpretation that satisfies c and c prime
yeah so in order to prove that this i satisfies r
313
00:38:53,040 --> 00:39:02,080
we break it down to two cases the first
case is when the um when l is set to
314
00:39:02,800 --> 00:39:14,800
1 by i yeah so this is the first case here in this
case l prime in this case l prime for some l prime
315
00:39:14,800 --> 00:39:24,560
in um l prime in this c c prime um c prime minus
not l of course yeah because um so this is um this
316
00:39:24,560 --> 00:39:32,640
is gonna be set one by i the reason of course is
that the literal not l is not satisfied by i so it
317
00:39:32,640 --> 00:39:38,080
but this is because if because it's conjunction
you have to satisfy at least one of the literals
318
00:39:38,080 --> 00:39:44,400
in c prime so therefore you have this statement
here so the second condition here of course is um
319
00:39:45,040 --> 00:39:52,000
so this is when um this literal
here that is not l is satisfied by i
320
00:39:52,000 --> 00:39:59,200
so that is you set l to be zero so in this
case this case is just completely symmetric
321
00:40:00,000 --> 00:40:08,000
so um one of the uh literals l
prime in c in this in c minus l here
322
00:40:09,760 --> 00:40:20,400
going to be set to true it's for the same reason
as well so in either case we have i satisfies
323
00:40:20,400 --> 00:40:30,880
the the resolvent yeah because one of this l prime
so the l prime here will be in the resolvent so
324
00:40:35,680 --> 00:40:38,880
okay so that's the resolution
lemma that's the end of the proof
325
00:40:41,600 --> 00:40:46,480
so we're now gonna use the resolution
lemma to prove the sauna's theorem
326
00:40:49,040 --> 00:40:52,960
so the proof goes as follows
so we're going to prove that
327
00:40:54,640 --> 00:41:00,800
we're going to prove something more general that
is if c can be derived from f then c is entailed
328
00:41:00,800 --> 00:41:11,040
by alpha so um of course if we just set c to
be the empty clause then um this would be the
329
00:41:11,040 --> 00:41:16,640
statement of the theorem here that we want to
prove here so let's try to prove this this more
330
00:41:16,640 --> 00:41:24,480
general statement and we're gonna do this by
induction on the length and of the proofs of
331
00:41:26,400 --> 00:41:33,840
oops let me just yeah um of the proofs of
this so we're gonna start with n equals zero
332
00:41:35,280 --> 00:41:42,160
um and in this case the length of the proof um
yeah so if the length of the proof is zero this is
333
00:41:42,160 --> 00:41:48,160
basically the very last clause yeah so this means
that this actually has to be in f itself yeah
334
00:41:48,160 --> 00:41:54,800
this has to be in this has to be one of the um one
of the clauses one of the clauses in f we have not
335
00:41:54,800 --> 00:42:00,320
actually applied any resolution steps at all this
would immediately imply that f intel c because
336
00:42:00,320 --> 00:42:07,120
this is enough so this is very this is really a
vacuum statement so now let's take a look at the
337
00:42:07,680 --> 00:42:13,600
um inductive step so we can assume that n is
greater than zero and we have an induction
338
00:42:13,600 --> 00:42:25,840
hypothesis that if c can be derived from f in in
this case n minus one steps yeah then uh f entails
339
00:42:26,640 --> 00:42:35,280
f intel c so this is basically what is written
here so um say we have the proof c1 up to cn
340
00:42:36,880 --> 00:42:42,080
and in this case the cn here
would be would actually be c now
341
00:42:43,680 --> 00:42:49,760
so induction hypothesis gives us that
f semantically entails ci for each
342
00:42:50,400 --> 00:43:01,600
ion between one up to n minus one yeah so um so
this because the length is shorter now so there
343
00:43:01,600 --> 00:43:06,480
are two cases here the first case is that cn
actually is already in is actually already in
344
00:43:06,480 --> 00:43:12,800
in f yeah but the in in that case is um it's
really the same as this the base case it's vacuous
345
00:43:12,800 --> 00:43:19,440
here so let's assume the more difficult case
where c n is actually a resolvent of c i comma c j
346
00:43:19,440 --> 00:43:29,840
yeah in this case where i s i and j are less than
n so in this case we by resolution theorem we
347
00:43:30,400 --> 00:43:39,920
have this c i comma c j semantically until c n
okay so this resolution theorem and we simply
348
00:43:39,920 --> 00:43:49,600
then have to combine this statement here double
star with a single star here yeah to obtain that
349
00:43:50,240 --> 00:43:57,360
f semantically entails c n this is because of
transitivity of course yeah so we know that f
350
00:43:57,360 --> 00:44:04,480
semantically until c i am semantically
intel's cj now this would imply that
351
00:44:04,480 --> 00:44:11,520
f would also semantically intel and then
because ci and cj in semantically intel cn
352
00:44:12,080 --> 00:44:19,440
then you uh f would semantically entail cn
so this is because of transitivity of of
353
00:44:19,440 --> 00:44:26,400
this um of the semantic end element okay so that's
basically the proof of soundness the sonos theorem
354
00:44:32,560 --> 00:44:38,240
okay so we're gonna now move on to the
proof of completeness theorem for resolution
355
00:44:39,440 --> 00:44:43,360
that is we want to prove that if
the given formula is unsatisfiable
356
00:44:44,720 --> 00:44:49,840
the empty clause can then be derived by resolution
357
00:44:50,800 --> 00:44:56,000
and our proof proceeds by induction on the
total number of variables in the formula f
358
00:44:58,320 --> 00:45:05,600
so what is the base case here it is it is
the case when the formula the given formula
359
00:45:05,600 --> 00:45:13,440
has no variable at all can there be such
a is there such a formula the answer is
360
00:45:13,440 --> 00:45:18,880
yes there are two types of we have two types of
formula with no variables the first one is the
361
00:45:20,000 --> 00:45:23,680
the formula top and the other one is
the formula bottom yeah so both of these
362
00:45:25,120 --> 00:45:30,240
can be represented using conjunction of
clauses the first one of course but the
363
00:45:30,240 --> 00:45:35,600
only one that is unsatisfiable of course is
bottom which is this one as you saw before
364
00:45:37,120 --> 00:45:42,320
and in this case you have
precisely one clause and the
365
00:45:44,640 --> 00:45:48,640
the proof of the empty clause
of course is just consists of uh
366
00:45:51,280 --> 00:45:59,040
of a single of single clause here so it's
a proof of length of like one so this one
367
00:45:59,040 --> 00:46:03,920
is uh the base case is easy so we're now
going to move on to the inductive case
368
00:46:05,040 --> 00:46:11,280
so we want to prove that given a formula
with n variables let's say x one of x n
369
00:46:11,280 --> 00:46:17,760
yeah if the formula is unsatisfiable then the
empty clause can be derived by resolution so
370
00:46:18,640 --> 00:46:25,520
we of course have an assumption the inductive
case yeah basically this statement but for
371
00:46:26,960 --> 00:46:35,520
formulas with up to x sorry up to n minus
one variables so how do we create a formula
372
00:46:35,520 --> 00:46:41,760
with small number of variables from this given
formula with n variables the is that we're going
373
00:46:41,760 --> 00:46:47,760
to do some kind of a substitution particular
we're going to create these two formulas here
374
00:46:51,440 --> 00:46:55,840
from the given formula f yeah so let's
say the formula the given formula is f
375
00:46:57,280 --> 00:47:00,640
so this is obtained as follows we're going
to substitute for the first one we're going
376
00:47:00,640 --> 00:47:10,720
to substitute the value 0 into f sorry
into into the variable x yeah and you do e
377
00:47:10,720 --> 00:47:15,120
of course after that you simplify yeah so this
basically going to be interpreted as bottom
378
00:47:15,120 --> 00:47:20,080
you just apply the standard simplification from
boolean algebras to get rid of the bottom yeah
379
00:47:20,800 --> 00:47:27,600
and after that um you also construct the
formula the second formula here and this
380
00:47:27,600 --> 00:47:34,880
is done by simply substituting one to x and
in the order in the original formula f yeah
381
00:47:34,880 --> 00:47:39,760
so the same thing you after that you also
have to simplify removing the top from the
382
00:47:41,920 --> 00:47:49,520
resulting formula now since the formula
f is assumed to be unsatisfiable
383
00:47:50,080 --> 00:47:56,480
both of these new formulas here must also
be unsatisfiable and this is easy to see
384
00:47:58,240 --> 00:48:06,480
um so what do we what can we then say the
first one is that the first formula because is
385
00:48:06,480 --> 00:48:14,560
unsatisfiable it will have uh it will have uh by
inductive hypothesis by the induction hypothesis
386
00:48:15,360 --> 00:48:21,200
then you have a proof of the empty clause by
resolution let's say the proof is this c1 up
387
00:48:21,200 --> 00:48:30,480
c1 up to ck okay so the ck here is going to be
the empty clause so what we can do now is we can
388
00:48:31,760 --> 00:48:39,920
put the xn back to these clauses and we're gonna
then get uh we get a derivation ending in either
389
00:48:41,200 --> 00:48:49,200
bottom or x n yeah now the same thing we're gonna
do the same thing for the second formula here
390
00:48:52,640 --> 00:48:57,840
so we're gonna get the same a
different possibly different
391
00:48:59,920 --> 00:49:02,480
resolution proof of the empty clause
392
00:49:05,120 --> 00:49:10,240
and we're going to do the same thing we're going
to put x and back to these clauses and then the
393
00:49:10,240 --> 00:49:17,600
derivation that we're going to get after that
will end in either an empty clause or not x n okay
394
00:49:20,640 --> 00:49:26,240
so let's finish off the proof so if any of
these derivations after we substitute xn back
395
00:49:28,800 --> 00:49:34,320
contains the empty class then we are done
because we have a proof of the empty class
396
00:49:36,160 --> 00:49:43,360
otherwise we simply have to combine the these two
derivations that will which will then contain both
397
00:49:43,360 --> 00:49:51,120
xn and not xn so after that we can then just
simply apply one resolution step to this
398
00:49:51,120 --> 00:49:58,880
clauses and derive the empty class so that's
pretty much the proof of the completeness theorem
399
00:50:00,640 --> 00:50:04,480
so here's a little exercise
for you so we know that
400
00:50:07,440 --> 00:50:15,440
we can apply resolution to prove unsatisfiably
but what happens in this case here so we have
401
00:50:18,000 --> 00:50:18,880
these two clauses
402
00:50:21,520 --> 00:50:27,920
we can apply resolution once we let's say
we get that but after that there's nothing
403
00:50:27,920 --> 00:50:34,160
more that you can apply yeah we are we're kind of
stuck so what kind of what kind of things can you
404
00:50:34,160 --> 00:50:45,200
say now by component and completeness and think
about it a little bit before you see the answer
405
00:50:47,200 --> 00:50:56,240
yeah so the answer here is that this means that
the formula is satisfiable so if this satisfiable
406
00:50:56,240 --> 00:51:00,480
you should be able to give a satisfying assignment
and what would be a satisfying assignment for this
407
00:51:02,240 --> 00:51:11,280
so you can think about it the answer is not that
difficult so simply have to set p to zero yeah
408
00:51:11,840 --> 00:51:17,600
and q to zero this will give you a
satisfying assignment for the formula
409
00:51:17,600 --> 00:51:21,840
here
410
00:51:24,160 --> 00:51:24,960
right so
411
00:51:27,360 --> 00:51:36,320
we conclude now with the last property
of resolution which is that it can be
412
00:51:36,320 --> 00:51:42,080
turned into a terminating algorithm how
do we do that well in order to do that
413
00:51:43,280 --> 00:51:52,080
the most important question here is the following
remember the notation here this means that
414
00:51:54,640 --> 00:52:03,760
f together with any resolvence of f that can
be applied that can be obtained by applying
415
00:52:03,760 --> 00:52:09,280
any number of resolution sets so what's the
maximum size of this is this infinite set
416
00:52:11,040 --> 00:52:18,080
the answer is that this is not an infinite set
this is uh always a finite set and in fact you
417
00:52:18,080 --> 00:52:24,160
can come up with an estimate for this yeah since
each variable in f so let's say you have x1 up to
418
00:52:25,520 --> 00:52:32,880
xn yeah so n variables can either
appear positively negatively or not
419
00:52:32,880 --> 00:52:41,040
appear at all in a class then the size
of this set is simply you can obtain by
420
00:52:42,560 --> 00:52:47,200
simple counting but this has to be less than
or equal to 3 to the power of the number of
421
00:52:47,200 --> 00:52:54,880
variables in f yeah so this is finite but
it's exponential it's a large enough number
422
00:52:58,080 --> 00:53:03,120
but in any case this would imply immediately
that the resolution procedure is guaranteed to
423
00:53:03,120 --> 00:53:13,040
terminate that is as soon as you um stop producing
new resolvence you just stop so um we're gonna
424
00:53:13,040 --> 00:53:19,680
know um i'm just gonna leave you now with a couple
of general questions regarding proof systems
425
00:53:20,960 --> 00:53:31,760
that we're gonna revisit in uh uh in two weeks
first question actually in a week or two yeah
426
00:53:32,480 --> 00:53:37,520
so the first question what is a proof system
so we've looked at resolution proof system but
427
00:53:37,520 --> 00:53:43,840
what is the proof system in general what's it
really mean so the second question is what does
428
00:53:43,840 --> 00:53:50,640
using a proof system require one to understand the
semantics of a given formula or this is something
429
00:53:50,640 --> 00:53:57,200
that is easily automatable third question is the
method of checking validity via a truth table
430
00:53:57,200 --> 00:54:02,640
so this is a proof system so yeah so this
is these are the three general questions i
431
00:54:02,640 --> 00:54:09,040
want to leave i want to leave you with the admit
multiple correct answers to these questions but
432
00:54:09,040 --> 00:54:15,440
i want you to think about this a little bit and
to come up with your own answers and of course
433
00:54:15,440 --> 00:54:22,000
also to just to have a justification of your
answer as well right so um that's all i have for
434
00:54:22,880 --> 00:54:34,640
the topic of resolution per system we're going
to next move to the topic of the pll algorithm
54682
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.