The "hook" symbol for implication (⊃) is the same symbol for superset. Is this just a coincidence, or is there a relationship between these two ideas?


2 Answers 2


In math in general, how things came to be is less important than why they stayed that way. (Bourbaki notwithstanding, our traditional notations persist because they either conform to intuition or shape it productively.)

So skipping the history, these two signs are related because they define related lattices.

Both symbols are replaced by the 'greater than (or equal to)' symbol '>=' in broader (or more typographically constrained) contexts. (Before the 40's, the undecorated containment symbol more often meant simply containment and not proper containment.)

The implying statement seems to have 'more truth', and to have some part of that truth be the truth of the implied statement. And literally "False <= True" when these are 0 and 1. You can read <= between booleans as 'whenever' if => is 'implies'. So "A implies B means B whenever A" gets written 'A=>B = B<=A' in various computing languages.

The superset is clearly 'larger' than its subset. So the sign is obvious there.

But instead of a nice symbol polymorphism we have a duality relation: (A => B) = (a in A <= a in B).

This captures the natural set vs state lattice duality of properties.

The set of states of the world that a proposition is true in is larger when the set of objects it applies to is smaller. If A implies B, any state (of a machine, universe, etc.) where A is true is a state where B is true, even though any element satisfying B is an element satisfying A.

(So dualizing twice, you can get a coincidence: (a in A) => (a in B) == A <= B == worldsWhere(a in A) >= worldsWhere(a in B) )


In addition to jobermark's good and correct answer, I'll give a slightly more direct answer. However, I'll preface it with some warm-up.

If your domain is U then define s(A(x)) = {x in U| A(x) is true} and likewise for s(B(x)). Then it follows that s(~A(x)) = A complement.

It also follows that s(A(x) /\ B(x)) = s(A(x)) intersect s(B(x)). This is the connection between the intersection and the conjunction symbols, which we already kind of knew because the intersection is defined as the set of elements in the first AND second set.

It also follows that s(A(x) \/ B(x)) = s(A(x)) union s(B(x)).

In the above we associate open formulae with sets, but the pattern seems to get broken when we transition to subsets. After all, intersection and union are operations on sets, which produce new sets. The subset relation is not an operation, and only tells us how two sets relate. However, in logic the conditional is an operator just like conjunction and disjunction, so there is some dis-analogy here. But we can still say something to connect the concepts. Namely, s(A(x)) is a subset of s(B(x)) if and only if U = s( A(x) ⊃ B(x) ).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .