I am reading about type theory along with abstraction and am wondering how they relate. Am i right in thinking that an abstract concept (from the result of abstraction) can be represented by a type in type theory?
- 19,541
- 3
- 18
- 83
- 796
- 3
- 11
-
1Your parenthetical remark implies that you mean something by abstract concept which is not just a generic category of things. What is it you are talking about? When you say "type", are you sure you don't mean "sort"? Types are generally part of a hierarchy of applicability, if you have different kinds of objects they are usually called sorts. – David Gudeman Mar 01 '23 at 19:49
-
@DavidGudeman https://en.wikipedia.org/wiki/Type_theory – J D Mar 01 '23 at 20:18
-
@DavidGudeman hello, I'm talking about types for e.g., 'let f be a real function of two real variables' and 'let m be of the type Month'. – Richard Bamford Mar 01 '23 at 20:35
-
1OK, that's what is called a type in computer programming, and maybe that terminology has worked its way into mathematics. "Type theory" is a kind of logic and it's not quite the same thing. As I said, in the terminology of logic, I think you are talking about sorts. – David Gudeman Mar 01 '23 at 20:47
-
Went the other way. It started w Russell and got used by computer scientists, so it's just an example that computer science is essentially an effort to automate logic and arithmetic. – J D Mar 01 '23 at 21:53
-
@JD historically accurate? Computers initially were trying to calculate more and faster, so on the arithmetic side of things. Logic I would say came much later? But you would have to refine your statement to mention the Babbage machine and/or earlier "computers", maybe the development of stored program computers (and the work of Von Neumann to calculate more in the Manhattan project), Turing's mathematical work on computable numbers, etc etc. – Frank Mar 01 '23 at 23:52
-
@Frank Type theory was first a mathematical theory, then it was embraced for implementing programming languages. – J D Mar 02 '23 at 02:48
-
The chronology is there, no doubt. I'd be interested to see the history of types in programming languages. – Frank Mar 02 '23 at 03:17
-
@jd, type theory was not embraced for programming languages. Type theory was invented to resolve logical paradoxes. Programming languages don't have paradoxes. They do have non-termination which is analogous in some ways, but is not addressed by types. Programming language types started as an outgrowth of machine architecture to distinguish integers from floating point. They were then expanded by languages like Algol into a formalism to aid in program reliability and self-documentation. Type-theory types are much different from programming language types in both purpose and definition. – David Gudeman Mar 02 '23 at 03:52
-
@DavidGudeman I respect your confidence, as always! But you might want to read up on how Church's [simply typed lambda calculus was a formalism of mathematical logic that was used to model computability](https://en.wikipedia.org/wiki/History_of_type_theory#Theory_of_simple_types) as electronic computers were first being built. There were no computer scientists when ABC, ENIAC, and Bombe were built, so all of the foundations of computer science were invented by (mostly Princeton) mathematical logicians. Russell invented it and Church co-opted it for computability... – J D Mar 02 '23 at 05:15
-
Computer scientists simply borrowed the idea from Church, Turing, and others as they implemented PLs, particularly functional ones like Lisp. In fact, it's been known since around that era that the formal type inference systems compromise Turing completeness. Type checking was a formalism that predates modern programming languages. – J D Mar 02 '23 at 05:20
-
@jd, Well, I'm a guy on the interwebs with a PhD in Computer Science who has read a considerable amount on the history of programming languages, set theory, and logic. Lambda calculus inspired only one early programming language, Lisp, and it was the untyped lambda calculus, not the typed lambda calculus. Computability theory had little or no influence on other early programming languages such as Fortran, Algol, Cobol, and Snobol which had nothing in common with lambda calculus, Turing machines, or combinatory logic. – David Gudeman Mar 02 '23 at 05:43
-
OK, I'm voting to close this question because it has not been updated for clarification. – David Gudeman Mar 02 '23 at 05:45
-
1Maybe take a look at Girard's (and Taylor's) book **Proofs and Types**, freely-and-legally available at https://www.paultaylor.eu/stable/prot.pdf That of any interest/relevance to your question? – John Forkosh Mar 02 '23 at 06:47
-
@DavidGudeman Type theory influenced early type systems including those of . Hopper, McCarthy, Backus who didn't operate ignorant of Turing, Church, Kleene, and Church. Backus even repudiated von Neuman (Eckert and Mauchly) architecture, and went functional. (And I doubt you have a PhD in Computer Science or even can code, though you're free to offer your thesis and I'll concede.) BTW, Curry-Howard specifies anything that exists in a logic system (such as a paradox) has an isomorphism in computation. Type theory and logical types, and type systems and data types are 2 sides of the coin... – J D Mar 02 '23 at 17:03
-
one aspect is mathematical formalism, and the other is practical engineering. I'll accept that type theory doesn't determine practice, but to claim they exist in a vacuum is silly. And this statement "OK, that's what is called a type in computer programming, and maybe that terminology has worked its way into mathematics." is just patently false. – J D Mar 02 '23 at 17:04
-
@JohnForkosh Thanks for the reference, looks good. Just skimmed it, section 3.1.1 looks like what i'm talking about with types here. Do you know any reference for linking this maths and the philosophy of properties? Thanks – Richard Bamford Mar 02 '23 at 17:28
-
@jd, here's my ACM profile: https://dl.acm.org/profile/81100608112. As to the rest, you are just filibustering now. I didn't say anyone was ignorant of computation research; I said that the formalisms of that research did not have much influence on early programming languages, other than lambda calculus/Lisp. Backus' FP was certainly influenced by combinatory logic, but FP was not typed, and no languages came out of that till the 90s. Those 90s functional languages are also the first where the type system may, arguably, have been influenced by type theory. – David Gudeman Mar 02 '23 at 18:02
1 Answers
The TLDR is that abstraction and abstract object (SEP) is probably best understood as a process of eliminating facts or structure to get to something simpler. Mathematical objects are abstract objects that represent other things.
For instance, in computer science, we have 1's and 0's and at the physical layer of the ISO OSI, the physical layer is conceived of in terms of electronics. But if I want to talk about sending email, I don't do it in the language or semantics of binary arithmetic encoded by elecromechanical circuits, I do it in terms of SMTP. Thus, we consider the email grounded in computer hardware. Email is an abstraction because quite physically, there is no piece of mail like there is in snail mail. Email is an abstract object that corresponds to physical letters. 'Email' makes it simpler to think and talk about computers than talking about binary strings.
In mathematics, we do the same. We learn naive set theory, for instance, and that appeals to our intuitions about collections and items in collections and the relations that govern them. But then we make it rigorous and call it ZFC or NBG or whatever. You can make your own theory if you want. But, along come category theorists and say, you guys are making it complicated. There are only 7 primitive ideas (think in terms of nodes and edges of a graph), and all of the rest is detail. Thus category theory abstracts over ZF, ZFC, and NBG (and others) and makes things simpler. Thus, a category is a mathematical object which abstracts from other mathematical objects.
Mathematical abstraction can also occur when consider physical objects. Take a pocket full of change and then imagine stacking up the coins on a counter. At first, we can use a set {x:x is the set of all coins in your pocket} and then switch over to a sequence (x:x is the set of all coins in your pocket from lowest to highest). And then we can do math with these symbolic abstractions of physical circumstances. For example, it's true that {a,b,c,d}!=(a,b,c,d) because sets don't account for order or repetition {a,b,c,d}=={d,a,b,c,b,a} but sequences do (a,a,b,c,d)!=(a,b,c,d,a). Of course, from there math springs to life with various theories like partially-ordered sets, real analysis, and so on. These sorts of abstractions are usually presumptions in the axiomatic method.
Oh, and yes, types are just sets that have a rule that says members of the set have to be of a certain sort, have a certain structure, or obey a certain standard. For instance, in modern computer languages, both integers and double floats are two primitve types to a compiler. We use types because it prevents problems (some types cannot belong to other types which stops Russell's paradoxesque problems in compilation) and because it allows for type checking, autounboxing, casting, etc. which are datatype operations that are governed by the type system. If you've worked in Python and C/C++ the latter is much more rigorous in its type system.
- 19,541
- 3
- 18
- 83
-
-
-
Well, @Frank, that depends on your metaontological leaning. Meinong, Carnap, and others have a variety of things to say about the relation of abstract and physical (and universal, particular, de facto, de re, a priori, syntheic, a posteriori... you get the idea...) – J D Mar 01 '23 at 21:39
-
I think it's fair to say that realists tend to say no. Physical things aren't abstract. But anti-realists, say idealists wouldn't have a problem with a qualified yes. Is the physical merely phenomenological, or is it absolutely noumenological? I don't have an answer myself to that. – J D Mar 01 '23 at 21:43
-
@RichardBamford No problem! It's good to see you taking your critical thinking skills so seriously. – J D Mar 01 '23 at 21:54
-
@JD - I didn't ask about physical things, but about non-physical things. This was after reading your sentence that an email is "abstract" compare to a physical letter. To me a specific email would be quite "concrete", whereas "mail" may be an "abstraction" that encompasses various types of emails. "Mail" can be populated with many exemplars that it "summarizes", but a specific email - or this comment I'm writing, although maybe not "physical", doesn't feel "abstract" to me. – Frank Mar 01 '23 at 22:57
-
No, @Frank. An email is more abstract than a binary encoding propigated across the wire with a MAC header that ultimately contains an SMTP message body whose binary encoding specified in the SMTP header allows us to decode a text-specific encoding that says "Hi". I simply say instead, I got an email that says "Hi!". "Email" is a stand-in for the technical description. An electronic mail message is no more a letter than a Windows folder is a folder. Now, in relation to the physical letter, it is an abstraction insofar as an email isn't a letter, it's a message... – J D Mar 01 '23 at 23:18
-
Snailmail has a physical envelope, a physical medium like paper with ink, physical stamp carried by a physical person to your house. An email has none of those physical. By analogy, we extend our physical post office protocol to a virtual one. SingING telegrams? Delivery of a box with a record in it? A runner darting across the battlefield delivering orders? FedEx dropping of a package with photos? Email does all of those things. So, in this sense, an email isn't necessarily an abstraction bc it is not physical, but because the mechanism of communication can embody all of the former... – J D Mar 01 '23 at 23:27
-
-
@JD I would say the proper abstraction is "mechanism of communication", where email, letters, ... are concrete examples of that abstraction. – Frank Mar 01 '23 at 23:33
-
Now, could it generalize across all of those cases as a communication technology if it were physical? In so far as the underlying physical medium is a fundamentally different type of artifact, Id have to say that the abstraction consists precisely of using one malleable physical medium to achieve the results of the disparate media, and as such thev abstraction is hidden is by denoting electronic communication as "mail" when it is in fact a much more generalized thing: artificial electromechanical telecommunication. But your question makes me want to think about my normal verbal diarrhea? – J D Mar 01 '23 at 23:34
-
-
@JD you'll find that concrete/abstract is an open question to this day in philosophy, with several possible ways to slice and dice the question. – Frank Mar 01 '23 at 23:40
-
@JD in your example of the email, you could also say that SMTP message body, etc etc are "abstractions" over the transfer of bits, which are themselves "abstractions" over the electrons that travel in the wires... The SMTP or whatever level doesn't ground the abstraction ladder if that's how you want to use "abstract". – Frank Mar 01 '23 at 23:42
-
Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/144292/discussion-between-j-d-and-frank). – J D Mar 02 '23 at 05:35