LMD Async Tutoring

I’ve had trouble understanding the conditional operation ‘if p then q’ or p ⇒ q. It seems this is common with other beginners. It seems to not map well to spoken language and I’ve seen it recommended that you just think of it as a convention.

Screenshot 2024-06-18 at 2.40.44 PM

So p⇒q outputs q if p is true. That makes sense. But if p is false it outputs true. I don’t know a way for this to make sense to me. I have read that it’s equivalent to ~p v q, and I can make the truth table for that and see it, but that doesn’t seem to help me. It just seems like a fact about two operations outputting the same thing.

It seems like there should be a better way than just accepting it as a convention, and before I do I want to know if there is a better way. Do you have any advice for how to think about it?