I’m already so done with this course.
My textbook:
p: “The weather is bad.”
Exercise:
Represent “the weather is good” using logical symbols.
Me: How am I supposed to answer that? You didn’t give me a letter for that. I guess I’ll use q?
Expected answer: ~p
THIS IS LITERALLY THE CLASS ABOUT LOGIC DHDJFBDHDJDHDHDH
Who let neurotypicals write a logic textbook istg
Most of the time, I think discrete is taught with an eye to computer science, right? You are trying to reduce things to binary or at least discrete outcomes - things that can be represented with 5V or 0V. True or false. The weather is good or it is not good. The weather is bad or it is not bad.
This isn’t English class - rules will be a little different. Like, to most math problems I could be a smart ass and say “the answer is some y in the set of real numbers.” There’s different concepts at work here.
Sure. Not everything in computer science is binary, despite the fact that computers run on binary code. For example, sql has the boolean values of “true,” “false,” and “null.” In this system, null !== false, although it does evaluate to false in some situations.
You’re much better off teaching set theory properly (which is what the course is aiming for) rather than teaching people to assume that all sets are composed of only two elements.
Most programmers don’t even touch binary anyhow. That’s all abstracted away by the compiler.
I don’t think that’s really true - a thorough understanding of Boolean logic is pretty essential to programming imho. I think you want to keep in mind the goal is not to prove you are smarter than the first chapter of your textbook, just to note the ideas and patterns it is introducing.
I mean I’m definitely noticing the patterns. I’m just frustrated that someone who is supposedly an expert in logic let something like that slip. Not assuming that logical negation means “opposite” is one of the first things they teach you. For example, if we were thinking in opposites, the negation of “all” would be “none.” But the negation of “all” is “not all”, where the negation of “none” is “at least one.”
funnily enough, there exists an empty set, which contains no elements (none), but there doesn’t exist a “full” set which contains “all” elements. how interesting is that …
Um, but there is?
It’s called the universal set, and it contains all elements possible within the domain of consideration
That’s not how it’s usually going to work in discrete - that’s the message the book is trying to communicate to you.
Think like an engineer designing a computer. The state of the weather is something that we are introducing as a binary here - bad or not bad, good or not good.
I’m sure the next few chapters will talk about things like truth tables, right? Try to imagine what those would look like with a “trinary” logic system. Remember math is a tool we use to abstract reality efficiently.
@andros_rex @SuperNovaStar Picking something as continuous as “the weather” to explain negation is just stupid.
Pick something like “locked” or “unlocked”.
Yes, there’s a transition, and we all wave our hands and pretend it isn’t there. The same thing happens in Boolean algebra, when negating something.
Best not to get involved with “all”, “none”, “null”. Because you’ve left out “some”, “many”, “any”, “few”, “more”, “less”, and a host of more subtle values.
@andros_rex @SuperNovaStar Programming languages do logic a lot of injustice, often assuming certain values are false, most values are true, and a few are weird (like “none”). Those are implementations for practical reasons, and not pure math.
Exactly. And sometimes you need to understand the underlying logic well before you even try to program anything. It is far easier to know set theory and then adapt that knowledge to programming than to learn a warped, trimmed down version of set theory just to fit programming languages and then try to derive the real thing once you run into a problem that needs it.
I tool a sql class, so if the trinary logic is True, False, and Null then I don’t have to imagine it, I already learned it.
I suppose you could have “true”, “false”, and “unknown” too. That could be interesting. But it wouldn’t look all that different - AND compares the values and returns the less certain of the two. OR compares values and returns the more certain of the two. Unknown inverted is still unknown. Not that hard.
Qbits have four states, I think? Now those are fun truth tables.
Can you construct a truth table for a trinary logic system half adder?
Probably? I don’t feel like doing homework rn, though, and what would be the point?
Some programs might have reasons to add an additional truth value, (for example, most databases include “NULL”) but trinary would be a terrible choice for hardware. The tolerances are just much more forgiving when you’re detecting the presence/absence of a charge than trying to measure multiple distinct states.
That’s exactly what I said, is it not?
Also,
Obviously. In English, “opposite” means antonyms. Good would be the opposite of bad, as would splendid, terrific, and amazing.
But logical opposites work on set theory. The opposite of A is !A, not Z.