# How To Construct Truth Tables Using Python

(D4M) — Here is the video transcript for this video.

00:00
[Music] hi everyone welcome back in this episode we’re going to learn how
to construct truth tables truth tables using python now before we get started i
wanted to mention that this video is part of the series logic and
mathematical proofs in-depth tutorials for beginners
so let’s go ahead and get started in today’s episode we’re going to cover um
propositional variables and then we’re going to talk about connectives and
building truth tables and uh tautologies and contrapositive now
you know if you’ve been watching the series we’ve already covered each of
those topics and you know we did so uh mathematically and
we didn’t uh do anything uh on computer so today we’re going to do all this
again but we’re going to see how easy it is to do using a

00:01
programming language like python and at the end we’re going to also talk about
logical equivalence so let’s go ahead and get started
and to get started now we’re going to first talk about
how to declare variables uh using uh this python
code that we have and so let’s go ahead and get started on that so
what i’m going to do is i’m going to bring in this python notebook right here
and so first off let’s see how to set this up
and so we’re going to need to execute this cell right here import logic using
this import command right here now if you’re not sure how to uh follow along
with this python um you’ve never set it up before well rest assured
there are thousands of videos out there on how to set up python to extremely
popular programming language you can set it up on your computer on
your machine whether you’re using windows or mac

00:02
or you can just use uh google collab which is a free notebook
and you can get started i’m using anaconda on my mac
and so we can we can just follow along if you if you don’t even want to get get
all that set up but we’ll see how easy it is so this is
also a good review in terms of what we’ve already covered all right so to
execute that cell i’m going to hit shift enter
and now i’m going to set up some declare
some variables so here’s some cells here we can execute so this cell right here
is going to declare p q r s and t as variables so
hit shift enter to execute that now just to double check that
this is actually working i’m going to just type in p and q and execute that
and so it works it tells me that p is a proposition and that user proposition we
could have checked all five but you know just to you know see what it looks like
to make sure that um the notebook is recognizing

00:03
um this package right here this logic code right here
all right so now what i’m going to do is actually we can also
instead of just using pq you know these letters here we can also enumerate
um and so you know if i execute that cell right here
so now we have set up variables p1 p2 and so on
and you can set up as many as you like however keep in mind that this code may
not scale to obviously hundreds of variables
that’s an interesting question i haven’t
tested out how many very how far you can go with it but for this um video here
we’re just going to work with five variables or or less so we can
execute the cell right here p1 it recognizes that p1 is a propositional
variable here all right so what connectives are we going to cover um in
previous videos we covered several seven different types of connectives
so in this video here we’re just going to talk about these connectives here so

00:04
we’re going to have the negation which we defined in the previous video the or
the and the implication and the biconditional right here so these are
the same truth tables that we talked about before
um these are the same definitions we talked about before now to do them in
python well this symbol right here which
we used in a previous video the negation of p
in python we’re going to use this symbol right here
so let’s execute this cell to see it so that means not p it recognizes that
not p is a proposition now this is really nice and fun if you
want to print out a truth table we’re going to use this method right here
print underscore truth underscore table parentheses let’s execute that and you
see we get this true table that we get over here now let’s do the or
so the or right here mathematically or if we want to type it up on computer
we’ll just use this vertical bar here execute that cell
let’s go ahead and print out a true table for the or
there we go so it matches the same column right here

00:05
and let’s do the same for the and so we have p and q here we’re using the
ampersand for an and or mathematically we use the
uh this wedge symbol here so here we go we’re going to use p and q
and then let’s print out the truth table for it very good so implication
so we’ll use this one we’ll use the symbol right here twice so execute
shift enter for execute and then we’ll go ahead and print the truth table out
here and this is for implication as you can see here we get the same table that
we have here for the definition of implication
and then now to do uh the biconditional we can do p implies q and q implies p
and to see that that’s the same that we usually know is uh true false false true
now a caveat here make sure you have parentheses around the whole expression

00:06
right here so i have these outer parenthesis and then the dot all right
or if you want we can use this um here we can say p dot
if and only if that’s the same thing as the
by conditional here so if and only if and then q with parentheses in it
so there’s another way to denote the if and only if right there
so just to check that out let’s also print out the true table for that
as you can see we get the same true table either way
so this represents the p if and only if q right here
all right so there’s the connectives that we’re going to work with
and so now let’s do some um truth table examples here
so uh how to construct a true table well
we’re going to use the print truth table which we’ve been doing so far
we’re going to do some more examples now so now i’m going to um declare some
formulas here so i’m going to just type in the word

00:07
formula equals and then i’m going to type in this formula right here using
all the connectives that we just discussed and so let’s shift enter that let’s
execute that and then i’ll check that it’s a proposition
so we have this right here proposition and then we have you know the p or q and
the negation of p and uh all that implies q
all right so good so let’s execute that and now let’s go ahead and print out a
truth table for it so it says construct a true table for
this statement right here and that’s exactly what we have right
over here as we can see the column is true true true and true now
that’s a really nice quick way of finding the truth table out on the other hand
typically if you want to find the truth table for this

00:08
for example if you want to do this by hand what you would often do is you would
have something like like let’s see here we would have something like
p and then a q and then we would have p or q and then
you know we might even put not p first and then p or q
and then we would have the and between those so p and p or q and then the and
and then the not p we would have that column
and then we would have the column for the whole formula
so we would make all these columns here one two three four columns
and also with the p and q so six columns total so we could fill all that out and

00:09
what this code right here doing is just giving us the last column though it’s
skipping these three columns right here and it’s not finding them now we can
we can find these three columns here by doing the following method though so
in case you want to do that you don’t have to but we could say
here’s our first formula f1 which i’m going to say is not p
and then f2 is p or q which is this part right here
and then we can do the and between them so f2 and f1
and then we can do the implication so this is f3 which is all of this right here
implies the q um and so that would be the f4 statement there
so let’s go ahead and execute that so we’ve just you know declared four
formulas right there and we can check that it understood that

00:10
just execute that cell right there it jumped on me but here it is right here
and then we can print truth tables out for each and every one of those so i’m
going to print a truth table out of course f4 is the one that we’re
interested in so let’s just print those true tables
out here’s the truth table for f1 for f2 and so that would give us the columns
the missing columns if we wanted to go find those
and then here’s the final last one here is the column right here
you know the true table for or the true values for the whole statement right
there so let’s do that again now but this time
let’s look at one here that has five variables um so we have five variables here
we’re going to be looking at um this you know now we need five formulas we’re
gonna say g one g two g three g four g five and so let’s build this up
here so here’s g one right here here’s g two right here s and t

00:11
and then we have the uh g three would be the q or r and then we have the g4
which is supplies q and then we can piece them all together
so we have g1 implies g2 and and then we have g3 implies g4 and so then we can
just list them all right there let’s go ahead and execute this cell right here
so what we just declared is let’s go ahead and execute this cell right here
um it kind of jumps on me when i do that but when i execute the cell right here
it’s going to get this out right here which means it recognizes this all of
these right here is propositions if you don’t want to do that you could just hit
like that right there and then it just kind of doesn’t even give you any output
in any case once we once we define these variables here now we can

00:12
um print a true table out for the one that we’re interested in g5 which is the
whole statement here and when we execute that then we’re going to get this
truth table here so let’s see if we can bring that into focus here so here we go
so there are the five variables right there and then here’s the whole
statement right here and there’s all the truth values for it so
very nice and quick and executes it very quickly all right so now let’s look at
tautologies how do we check for tautologies here so
you know let’s check that f4 is a tautology so remember f4 was the um
the statement in the last one right here so f4 was this one right here
and how do we check if this is a tautology right here so there’s a method
called is tautology and so that’s we’re saying right here is
to check for tautology all you got to do is check this method right here is

00:13
tautology so f4 our formula our fourth formula is the tautology and it turns
out to be true and we saw that above because
the table for f4 if you had noticed um right here is all true so it’s a
tautology right here but you don’t have to make out the whole
truth table you could just run this method right here and it’ll tell you yes
all the true right here means it is a tautology which means all the columns
are in the last column all the values are true
it’s not a tautology there are some falses here so this returns right here
false this right here is not a tautology so let’s go ahead and execute those two
right there and then now if f4 is a tautology that it’s negation
should be a contradiction so if i negate f4 and remember these parentheses right

00:14
here are important and so i can check right here is negation and then it is
contradiction and then that’s true and then one last thing is
it’s not a tautology well if it’s false that could mean it’s a contradiction or
it’s a contingency so in fact there’s actually a method to do to check if it’s
a contingency so executing that you should get true
all right so now let’s go on to contrapositive and the converse here and
so when we do that what we’re going to see is that there’s actually a way to do
or to switch uh the arrows here so this right here is the proposition that q
implies p so this is double left as opposed to
double right so if we execute that then it recognizes that q implies p
and we can print the true table for this right here
so this is q implies p so true implies true is true

00:15
and these falses right here um both lead to truths and then true implies a false
is a false okay so that will give us the converse and then
now what about the contrapositive and the converse well let’s just do this
example over here so we’re going to construct choose table
truth tables for this whole statement and it’s converse and it’s contra
positive now there is a converse in contrapositive because the whole
statement here is an implication so i have all of this right here implies all
of this right here so it’s an implication so we can find the converse and
contrapositive of that so i’m going to build it up into pieces i’m going to say
h1 is the not p and then we have the s and t
and then we have the uh h1 and h2 here so that’s h3 right here h1 implies h2 so
this whole side right here is h3 and so let’s just you know put that down

00:16
right here this right here is h3 and so all of that
and then we have q or r so that right there is h4 and then we have
s or q which is h5 and so then we have h4 and h5 so we have
here h4 and h5 and then all of that right there is
um h6 right there so that that right there is h6
so we have an implication in between those so that’s the statement our given
statement is h3 implies h6 and our converse is
um h3 and then we’re going to reverse this so we’re using a
converse right here so h3 and h6 and then we have the contrapositive so
remember the contrapositive is the negation here and then implies and then
the negation here so for this given implication right here
the statement we have the converse and contrapositive

00:17
so i’m going to go ahead and execute this cell right here and
what that did is executing this cell right here it recognized all these
propositions here that were working with and we have our statement our converse
and our contrapositive here and then now let’s go ahead and make the
truth table out for this original statement right here this whole
statement right here with five variables let’s go ahead and print out the truth
table and as you can see it does it really
fast here let’s move me out of the way and so as you can see right here here’s
the whole h three implies h6 there’s the original statement right there
and there’s all the truth values right there
and the con converse statement which we defined right here let’s go ahead and
print that truth table out right here there we go there’s the converse right
there and here is the contrapositive right here
so it prints out that contrapositive right there

00:18
and there’s all the truth values for it and in fact if you look at these right
here it looks very familiar if you had looked through this one right
here it looks almost the same right there
in fact it looks exactly the same if you start looking at it up close so
this leads us to the next topic here which is the logical equivalence
so logical equivalence here let’s just recall that two statements p
q are logically equivalent means that the biconditional is a tautology
so let’s go and see that let’s look at how to do that in python so again i just
wanted to mention that you know i did a whole video whole
previous episode over logical equivalence i hope you check that out
and all right so here here are three ways of checking for
logical equivalence so the first way is to look at the statement and it’s

00:19
contrapositive and then we can say if and only if so
remember this is how we did a biconditional so i’m going to execute
that command right there and so this is going to say okay i recognize the
the propositional statement now i’m going to execute the truth table for it
and so what we notice here is that we can’t see it because it’s off to the
side so let’s bring that into focus there there it goes um so
we have the pqrst and then we have the whole statement and then if as you
notice right here to be a logical equivalent we need this to be a
tautology so as we scroll through the values over there notice every every
value is true in the last column there so that means it’s the tautology
so that’s one way of doing that we can just say statement if and only if
contrapositive print out a truth table go through every value and check that

00:20
it’s true another way is to just ask is it a tautology
so i have a statement if and only if the contra positive so i’m checking the
statement and the contrapositive and i’m checking to see if the if
they’re equivalent or not is it is all trues
so again remember we need parentheses around here and here before we use the
dot before we use this method anyways i’m going to execute that command right
there and it’s going to say true and what that true represents is that
all of these call all these values in the last column are true
now a third way um is just uh just do it straight up just say
all right this is a statement this is a contrapositive are they logical
equivalent and then we can just execute that and
we’ll see it’s true this is obviously the faster this is
the better method right here even though this is the method right

00:21
here in any case um so let’s look at some examples now
so these are some um logical equivalences that we talked about
discussed in a previous video and i explained you know what logical
equivalence is and how you check it how you verify it just like we did and saw
here in python however i left it as a something for you
to go check is to make all the true tables for all these here well we’re
going to do that real quick right now using this python right here
so i’m going to go over here to and execute each one of these so this is p
and q is it logically equivalent to q and p that’s the first statement right
here um p or q is it logically equivalent to
q or p so we’ll execute both of those and both of those are true so
we can you know carry on we can say and and and and in other words we can move
the parentheses this is the associative property for and and this is the

00:22
associative property for or so we can um just evaluate those cells right there
and as you can see they’re logical equivalences they’re coming back true
and then we have the distributive properties here we can distribute the
and over the or and we can distribute the or over the and
and we can check that both of these are logical equivalences
so let’s execute those cells right there all right and then
p or q is equivalent to p and p and p is equivalent to p
let’s check both of those and then finally we have de morgan’s law here the
negation of an and is the or of the negations
and the negation of the or is the and of the negations so let’s check those
and there we go all right so we checked all these
logical equivalences it didn’t take long to work them out and

00:23
um so that’s how you do truth tables um and using python um i hope you like this
video if you did like and subscribe and i’ll see you in the next episode
if you like this video please press this
button and subscribe to my channel now i want to turn it over to you math can be
difficult because it requires time and energy to become skills i want you to
tell everyone what you do to succeed in your studies either way let us know what