I have been reading introductory texts on first order logic (for example, Leary&Kristiansen). All of them used concepts that I have heard in set theory courses - ordered pairs, functions, bijections, isomorphism and so on.
I have read a lot of material in Math.StackExchange on set theory and first order logic and their interplay. I understand that we cannot define mathematics from nothing - we have to have primitive concepts. My problem is with understanding which are primitive concepts and which are not. Of course, different books might take these to be different, but still - maybe there are commonly accepted principles and notions that noone doubts.
For example, I am willing to accept that strings exist, that they can be glued together or separated, also I am willing to accept recursion and induction. I am also willing to accept counting numbers (which could as well be infinite: I, II, III, ...).
Question 1: As far as I have read and understood - sets in first order logic are different than those in set theory. But how so? At first I thought that it is because sets in first order logic are finite by definition and are basically just collections of finite terms, strings, and so on. Then, paradoxes that arise in set theory due to infinities do not arise in logic. But on the other hand, we use counting numbers and then, for example, the number of terms can be infinite.
Question 2: Are sets, ordered pairs, functions, bijections - primitive notions (by primitive notion I understand concept that is not defined) in first order logic (at least in the one that most of the mathematicians use)?
Question 3: If sets, ordered pairs, functions are indeed primitive notions then are they different from set theoretical definitions? If yes, then in which way? If no, then why define these concepts once again in set theory if we had them in the language of set theory anyway?
Question 4: If sets, ordered pairs, functions are not primitive notions in first order logic then how are they defined?
I would appreciate any comments and discussions about this topic.
Logic (like FOL) presupposes (natural) language and the "basic machinery" of language: the concepts related to syntax (like e.g.: string, (meaningful) expression, etc.) and to semantics (like e.g.: truth value, reference, etc.) as well as the mechanism of counting.
In this way, we can develop a semi-formal treatment of logic, in the same way used for every scientific theory: geometry, arithmetic, physics (see e.g. Aristotle's Logic).
Example : in this context, we do not need set theory to understand the concept of function (i.e. a correspondence between objects of a domain and objects of a co-domain) or that of (binary) relation (like that between father and son).
When we want to develop logic as a full mathematical discipline, we have to formalize it, developing the theory of logical system with the tool of mathematics.
In order to formalize syntax and semantics we have to define them as precise mathematical objects: we can do this using (a limited amount of) set theory, like Hereditarily finite sets [see e.g. M.Fitting, Incompleteness in the Land of Sets (2007)] or arithmetic, like some subsystems of Second-order arithmetic [see: S.Simpson, Subsystems of second-order arithmetic (2009)].