I understand why with a truth table p ∧ (p → q) and p → q are different but from a semantic point they look exactly the same to me. At a glance from a semantics point they look like they should have the same truth table but they don’t. I understand formal logic abstracts from semantics and looks only at the externality truth values. However these value patterns should hold with semantic examples.
If it’s raining then I need an umbrella. = p → q
If it’s raining then I need an umbrella and it’s raining. = (p → q) ∧ p
To summarize these statements look exactly the same to me logically but logically they have completely different truth tables so logically they must be different. If truth tables are valid which I’m sure they are then they must be different but I’m having trouble understanding how they are. How are they different logically using semantics as an example.