# Can set elements be predicated of objects?

If we define a set as a cartesian product of properties, do you think that the cartesian product can be predicated of an object?

For example if we define:

Set of names of Captials N = { The name London, The name Paris, The name Madrid }

Set of ages of Captials A = { Set of Natural numbers }

Set of Captials C = N x A

Do you think it makes sense to say that the real world London is a member of C?

• Well, no, since C is a set of ordered pairs, and not just the Capitals by themselves. However, I'm not sure exactly what you're asking in the first place. Commented Jun 17 at 10:03
• @Joseph_Kopp Thank you for the response, i'm trying to ask is that one element of C which describes the properties of London [The name London, 2000 years old] predicable of London itself? Commented Jun 17 at 10:11
• What you want is the conjunction of properties, not their ordered pair. The conjunction will be predicable of whatever the conjuncts are. Commented Jun 17 at 10:38
• I don't think it makes sense to believe the real world, or the human intuition's description of the real world, obeys the laws of set theory
– Kaia
Commented Jun 17 at 18:19

Can set elements be predicated of objects?

Yes, and we can also do so using dependent types in type theory. Let's took a look at two ways of expressing what you want. We could write:

f:C(N,A)↦c : c ∈ C := {N×A : N is name of country, A is age of country in years}

This formalism says we have a function f defined as as the predicate Countries(Name,Age) such that all instances of the predicate are defined the Cartesian product of all names and all ages. For instance, Countries(US,248) represents the United States. What's fun about this notation is that Countries(US,247) would represent a different US, the one that existed last year, and Countries(US,1) would represent the US at it's inception. We can do something similar in type theory which is strongly related to set theory.

Let us declare a type `employee first last SSN` which is used in the run time to capture a specific individual's profile based on their first name, last name, and a unique identifier like the social security number. Then, in a type system that supports dependent types (Idris is an example of such a type system), at runtime, we can have a type `employee George Washington 555-55-5555` which is a unique type and can be used for type checking operations so that program flow relies on type rather than values contained in the profile itself. That means, in functional programming notation we can decide whether or not to act on a profile if it meets a functional constructor definition `profileCons : employee first last SSN -> profile` instead of examining the specific values. It might stand in contrast to a type `employee nickname` used with the constructor `profile2Cons : employee nickname -> profile` in the system which might refer to the same individual (and hence ultimately the profile type constructed to correspond), but be used as a distinct form of intension in pattern matching.

In your example, we wouldn't use a natural number, but we might use a country. So let's try again. We define dependent type `city name US_state` and now we can distinguish `city Springfield IL` from type `city Springfield MO` without accessing any value we associate with the type itself even though the type varies. This is the functional equivalent of combining a token and a Cartesian product to function as an identifier allowing us to predicate a portion of the identifier, but still not declare an intension. Sets are simply a different terminology than predication which is generally understood as a functional terminology. The notation of functions, sets, logics, matrices, etc. can be grounded in categories to demonstrate their isomorphic natures.

• Thank you, it's very interesting to learn more about maths, types and sets. Commented Jun 18 at 11:47
• @r0k1m No worries. I've added a couple of introductory paragraphs to show the notation you are asking after. Sorry I didn't get a chance to do it the first time. I was a bit rushed EOD yesterday.
– J D
Commented Jun 18 at 18:35

No, only predicates can be predicated. What you are trying to do is create a structure to represent a compound predicate. Such at thing might be useful in a computer representation of predicates, but it is not needed for actual predicates. Take two predicates: "red" and "big". You can combine them into a compound predicate "big and red" and what you get is another predicate, not a structure. You no more need a structure to represent the predicate "big and red" than you do to represent the number 2+3. All you need is another number: 5.

• Thank you for answering it's really appreciated. Do you know of any good books which might help me with the numbers/representations? Thanks Commented Jun 17 at 18:32
• @r0k1m, I'm not sure what you are asking for. Good books about how to represent concepts in a computer? Commented Jun 17 at 19:59
• Yeah, anything like that? Or maybe representing concepts with maths? Commented Jun 17 at 20:59
• @r0k1m, not really my area, but there are entire journals dedicated to knowledge representation and reasoning on computers. I'm sure with a bit of searching you can find an introductory book. Commented Jun 17 at 21:52