wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Well yes, function can be a verb, but don't you agree it's also a noun?

If you think Mathematical operators are nouns we have some deep-seated misunderstanding.

f(x) -> x

The only noun here is the unbound variable.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I didn't think it would, which is why I'm puzzled at how you're going on about the basic notions of functions. Didn't I just correctly use "functions" as a noun?

Functions aren't "basic" notions?!? They are the highest forms of abstractions! Operators.

Every Mathematical expression can be expressed in Combinatory logic, which means we can do away entirely with quantification over variables.

Quantifiers themselves are operators/iterators.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Doesn't parse.

count(eggs) = 12

Counting. Verb/function.

Eggs. Noun.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
That, I don't follow. Now there are a number of levels here. The mathematical formalization of functions, functions used in everyday language, and so forth. Perhaps some of these usages require observers. But there aren't observers in math. I don't know what you mean here.

(...)

Oh cool. We are in agreement. And math isn't physics. To the extent that you're talking about things beyond math, I'm not involved in that conversation.

OK, but that is conceptually a non-starter for me. There are no "observers" in maths. Are there no Mathematicians in math? Who does Mathematics?

Who assigns meaning to Mathematical expressions?

Few posts back you mentioned "self understanding", how do you plan on achieving that if you have no meaningful notion of "self" (Mathematicians) in Maths?

Your field puts an unreasonable restriction on self-reference.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Mathematical functions are just a formalization of the idea of establishing relationships. But not any kind of relationships;

*functional* relationships. So for example, "parent of" is not a function because someone can have several kids. In a functional relationship, you always get the same output for a given input.

OK, but that's only a subset (used informally) of all functions. You are specifically talking about deterministic/memoisable/pure functions.

There are other kinds of functions. The read_temperature() function is not that kind of function, but it's still a function!

Function application to self is a valid (and consistent) construct in Combinatorics. Why are Mathematicians being so conservative and rejecting it without nuanced consideration?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
In set theory, functions are sets. But there are class functions. A proper class is a collection defined by a predicate, such as "is a set." So there's a proper class of all sets but (Russell's paradox) not a set of all sets. And if you like, you can have functions from a proper class to a proper class.

OK, but we are still talking about f: A -> A. Instead of A being a set, A is now a proper class. Abstractly that doesn't matter. Sets and Proper classes are still abstract objects. Which is why I proposed f: Any -> Any (which includes f: f -> f) as way of generalising the discussion.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Why do you think f: A -> A is a problem? In high school didn't you deal with functions from the reals to the reals, for example f(x) = x^2? Surely functions from R -> R are the most commonplace functions at the elementary level.

It's not a problem. f: Any -> Any addresses it. I just assumed you had a reason to use distinct placeholders (such as A and B) instead of A and A.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Now f: f -> f is problematic, since the f on the left does not mean the same thing as the second and third instances. What do you mean by it? You have some kind of weird self reference going on there without a base case. It's on you to make sense of this notation. On the other hand if you wrote g: f -> f I'd have no problem. A function is a set of ordered pairs, and there's no problem mapping a set of ordered pairs to itself. But the function can't also be f if the set of ordered pairs is f, you'd have a TYPE ERROR in your own favorite terminology.

It's not a type error.

I mean exactly what it says: The type of type is type.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Your formalisms are perfectly fine in math, except for f : f-> f which is malformed.

Q.E.D you have some grammatical restrictions (that I don't care about) which is limiting my expressivity.

So Mathematicians can express one less thing than I can.

If Mathematicians care about maximising the expression of Mathematical ideas, then they should abandon contemporary Mathematics.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Well that's a really good philosophical question. In set theory, sets are prior to everything. But set theory is only a model or platform to express mathematical ideas. In terms of mathematical ideas, numbers are prior. We've had numbers for thousands of years, and sets only for the past 140 years. So there's math as a formal system and math as those mathematical notions that seem hardwired into our brains. In the former, sets are prior; in the latter, numbers are prior.

Both of those systems exist within the same Mathematician's head.

My example re: f(R) -> 6 was aimed at the system in which sets are prior to numbers.

f(R) is how you "make" numbers from a set full of them.

But here's the paradox I am seeing. If numbers are singletons, how is it that you have numbers (prior to sets) on the one hand, and numbers (as elements of sets) at the same time. That's not a singleton - that's numbers being instantiated twice.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
First, I'm not the one who proposed that bizarre example, you are. But even so, I can live with it. Suppose we have a class function that maps the entire class of sets, to the real numbers, Then R might get mapped to 6. I don't see any conceptual problem.

OK, but you are moving the goal posts now, so I'll re-state my question given the new playing field.

In order to map Anything to Anything you need a "mapping function". Do classes exist prior to functions?

Start with an "empty" Mathematical universe, then tell me what exists "first"

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I'm ok with class functions, in notions of set theory that include proper classes. See for example

Morse-Kelley set theory.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
So where in your Mathematical universe does this relation fit: f: f-> f ?

The type of all types is a member of itself. I think it means something like (but I could be wrong on the nomenclature) all types are inhabited.

I guess now would be a good time to agree on whether types are sets or not.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
So what Mathematical "domains" and "ranges" do you see in the above formal expression?

I don't know what you mean by that. If we are talking about denotational semantics, the expression means what it says.

Anything else is an interpretation. What semantics are you using?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
It's a type error. Let's break it down. In set theory, a function is a set of ordered pairs. For example the squaring function is the set of all pairs (x, x^2) where x ranges over whatever set the function operates on: the integers, the reals, whatever.

type() ranges over all abstract objects in the type system and returns their type. Whan applied to itself, it returns itself.

Code: Select all

```
In [1]: type(True)
Out[1]: bool
In [2]: type(5)
Out[2]: int
In [3]: type('hello')
Out[3]: str
In [4]: def t(test): pass
In [5]: type(t)
Out[5]: function
```

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
So a function g: f -> f inputs a set of ordered pairs and outputs ordered pairs from the same set. Not sure I can think of a concrete example off the top of my head, but we can make one up.

g: f -> f is the same thing as g: Any -> Any. We already agree that this is not problematic in Math,

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
But what can f : f -> f mean?

It means exactly what it is defined to mean. A function, thatn when applied to itself - returns itself.

It's the Fix() function in Combinatorics. A fixed point.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
That is. the f on the left consists of pairs ((x, x^2), (y, y^2)). You have a type error. You've already defined f as a set of pairs, and now you want to redefined it as a set of pairs of pairs. You can't redefine a symbol in same expression like that. The expression is invalid. Not a well-formed formula. Or a type error.

And yet... it computes on a computer.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Not clear what you mean. eval() happens at runtime. I'm familiar with it in the context of interpreted languages were you can eval an expression of the language. Is that what you mean, or do you mean something else?

Yes. It is what I mean. 2+2 is an expression in a language.

eval(2+2) = 4

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
This is more akin to set membership. You are using eval() in a funny way that I'm not familiar with.

I am using eval() in the same way any interpreter uses it. The equivalent to eval() in Math is apparently an "inverse function", but intuitively that doesn't work for me.

if eval(expr) = 5 is an inverse/pre-image, then it suggests that there is an image such that f(5) = expr.

The set of all expressions which evaluate to 5 ? Is that even a set? I don't know...

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I lost you. Why don't you carefully define what you mean by eval() so we're on the same page? Like I say, I've seen eval() in interpreted languages when you have have a string like

mystring = "2 + 2"

answer = eval(mystring)

and upon execution, answer will have the value of 4. Is this what you mean, or something else?

Yes. That is what I mean: the function which evaluates (assigns value) to formal expressions.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
It's a programming construct. Nor have you defined it in any way that makes sense to me

I don't need to "define" LISP. That's the whole point of

homoiconicity. eval() is a first-class citizen in LISP like sets are first-class citizens in Maths. eval() exists prior to anything else!

eval() is a model of computation.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
because your examples aren't evals, they're expressions of set membership.

They ARE

**expressions**. That is precisely what eval() does! It evaluates expressions. In whatever language.

The expression "2 ∈ I" evaluates to True.

eval(+ 2 2) -> 4

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
In the example of assigning 5 to R, we have, let's say, the proper class of all sets, call it V, and the set of reals, call it R, and we have a function f: V -> R, and f(R) = 5. There's no problem with this.

Where did you get the function from, if functions aren't first class citizens in your universe?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
But that's formalism. Excessive formalism to model a weird function that nobody would ever bother to need or use. But if the philosophical question is where did I get the notion of 5, I got it when I happened to glance at my fingers when I was counting the eggs.

So you

**counted** you fingers? That's a verb!

f(fingers) = 5

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
The domain (ie, "origin of the input") is a set, or a proper class, or a type in a programming language (int, float, etc.)

So the origin/input is a proper class. Not your fingers?

A. f(Proper Class) = 5

B. f(fingers) = 5

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I don't see the difference. A function is an association. The method of making the association is irrelevant. All that matters is that the association is functional. We always get the same output for a given input.

The method is NOT irrelevant! The method is all that matters if you take the intensional view of a function!

The intensional view of the eval() function is the grammar itself. The grammar is a first class citizen in the system.

You can re-define everything. You can re-define "define".

(define define 5)

You have to take the intensional view of eval() otherwise you have no frigging clue what it does!

And then... the same output for the same input given? That seems artificial. I certainly don't expect the same output for the input "Alexa, what is the time?". Surely you don't either?

f: Any -> Any !

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
A mathematical function is a set of ordered pairs having the functional relationship. That is, if we have two sets A and B, a function is a subset of the Cartesian product A X B such that each element of A occurs once and only once in the set of ordered pairs.

https://en.wikipedia.org/wiki/Function_(mathematics)

That's a pure function. Surely there are other kinds of functions in the "set of all functions" ?

I've given you a bunch of examples already. That should suffice as demonstrating that your notion of a function is too narrow?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
They could be. More usually outputs of functions are elements of sets. But in set theory, everything is a set. So it's technically correct to say that sets are outputs of functions.

So functions are sets also?

Or do functions exist prior to sets?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Sure why not. Say I'm in calculus class and I want to have the set of elementary functions; that would be the set containing all the constant functions, the polynomials, the trig functions, exp and log.

Does your set of functions include or exclude the eval() function?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
The function concept is very general. And as I said, if it makes you happy you can extend the idea to functions defined on proper classes, in set theories that support proper classes.

It's becoming more and more obvious to me that my notion of a "function" is more general than yours.

I don't discriminate against any functions.

No inputs, only outputs? Cool.

Iputs without outputs? Cool.

No inputs or outputs? Cool.

Self-applicable functions? Cool.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
You would have to tell me, since sampling is not a set theoretic notion. If by sampling you mean removing it, then you're removing it. If by sampling you only mean associating it, then you're not. You'll have to explain what you mean by sampling. You could do it either way, actually.

Lets not get bogged down in the word "sampling". In a conceptual framework where sets are prior to numbers, then the only way to "manufacture" numbers (as far as I can tell) is to take them from a set of which they are elements: R.

Then the process of selecting element x from set R is expressed as f(R) -> x. It's a "choice" function.

This is not "mapping" or "association", this is "reach in the jar of Real numbers and grab one". According to you this is not a valid mathematical function, because given the same input it may (statistically certain: WILL) produce a different output every time.

OK. I'll make it explicit.

The set (or class, or collection; or conglomerate - which is the biggest?) of mathematical functions is smaller than the set of all functions.

eval() is not a "Mathematical function", but it is a function.

eval() can be used to implement Mathematical functions.

So eval() is more general (abstract?) than Mathematical functions.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
There are infinitely many functions whose output is 6 for some given input. What kind of question is this? It most definitely seems trollish. I get that you're trying to understand something but I can't figure out what.

This is where confusion ensues. From my POV there are infinitely many inputs for which eval(input) -> 6

There is only one function. eval() itself !!!

So why then can't I construct something crazy like....

Let Expr be the set of all mathematical expressions, then....

[ x for x in Expr if eval(x) == 6 ]

That will produce the set of all expressions which evaluate to 6.

Formally, what's wrong with this crazyness?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
By the way V is traditional in set theory as the class of all sets.

Is eval() somewhere in V?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
It occurs to me that there is a more natural way to express what you want, the selection of a particular real number out of the set of real numbers; and that is by using a constant function. Let f : R -> R be the function that maps everything to 6; that is, f(x) = 6. You may remember from high school math that this is a horizontal straight line six units above the x-axis. I'd see this as a more natural way of expressing the idea of picking out a particular real number. The set of all constant functions is essentially the same as the set of all real numbers. There's a constant function for each real and a real for each constant function.

As a particular case that's fine. If I want to "pick a real number" f(R) = 6 is sufficient to express it. But where I was going with this is expressing the general idea of "selecting an element from a collection (be it a set or a class)".

Lets call it f(V)

IF such a function exists, then the set is discrete! Because you are able to select precisely 6 from the other elements. Exactly like you can pull ping pong balls out of an infinite jar of ping pongs.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
No function introduces a discontinuity. When I measure the heights of the kids, each kid does not disappear when measure his or her height. Functions don't delete anything from the domain.

Yeah, but measuring height isn't an abstract operation. Choosing an element from a continuous set is.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
You are very confused on this point. Assigning a value to some object does not delete the object.

I am only confused by your words. Assigning value to expressions is what eval() does. eval(2+2) = 4, eval(2+2 == 4) = True.

Assigning value to variables (binding free variables) requires memory. You said you don't have observers (with memory) in Mathematics.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Functions don't delete anything. That's not my head, that's the official definition of a function. But perhaps you are thinking more of set difference, in which we could start with R, say, and delete 6. That's a perfectly valid operation.

So set difference is an operation, but it's not a function? In my world every operation is a function.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
When you were in high school and they showed you the identity function f(x) = x, whose graph is a straight line through the origin making a 45 degree angle with the positive x-axis; and you take that function and notice that when you input 47 you get 47 as the output; how do you end up with two copies of 47? Perhaps you can answer that so I can understand where you're coming from.

You don't end up with two copies. You have two axes with f() relating them.

You could just as well interpret f() = x to represent a generator function which produces the X-axis only. which is why I thought f: A -> A (one domain) is different to f: A -> B (two domains)

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Every set has an identity function defined on it. Input x, output x. How do you get two copies of x?

Let's talk programming. In pseudocode again I have:

f(x) :

return x

When I input 47, what comes out? 47, right? Do you regard this as a mystery requiring explanation?

Look, there's no mystery when I have memory. I know how to make copies of data, I have a bunch of strategies to pass data around: pass by value/pass by reference. The input and output of the function are not in the same memory location, so what the function does under the hood is it configures another memory address to be "like" the input memory address.

x = 47 is assignment (memory)

f(x) = 47 is evaluation.

You don't have memory in Mathematics because you don't have observers/Mathematicians. So I am way more curious about the origins of the first 47.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
At the risk of going on too long about identity, perhaps you are asking a very subtle and clever question. In high school they showed you the coordinate plane with a copy of the real numbers as the x-axis and another copy of the reals as the y-axis. Now we know that every set is completely characterized by its elements; so

*where did they get two copies of the same set*????

Well that turns out to be a good question. There's a trick. If we have a set, we can make another copy of the same set by coloring the elements of one copy red, and the other copy blue. That's what we do conceptually. How do we do that in set theory? If we have a set A and we need two copies of it, we take the Cartesian product A X {1} which consists of all the ordered pairs (a, 1) as a ranges over A; and then we take the Cartesian product A X {2} which is the set consisting of all the pairs (a, 2). So in this way we have two distinct sets having different elements, that can stand in for "two copies of the same set." It's a technical trick. Once we know that we can always do that to get as many copies of a set as we need, from now on we just say, "Consider 37 different copies of the reals," and there is no problem. We just do the Cartesian product trick 37 times.

So, conceptually none of this works for me.

In order for you to do cartesian_product(R, {1}) so that you can get ordered pairs (r, 1) you need a function which decomposes R into each of its elements! You NEED my "peculiar function" f(R) -> r

And if you put on the Combinatory logic, you don't have quantifiers either. You need iterators.

Show me an iterator for a continuous set.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Is that the answer to your question? If so, you asked an insightful question and that's the answer. This is another one of those things that mathematicians are trained on. When we need two or a million or infinitely many copies of the same set, we know that we can always do the Cartesian product trick; and instead of explicitly mentioning it and working with the different Cartesian products, we just remember that we know how to do this and we act like we can make copiesof the same set. But if someone ever challenged us to do this rigorously, we know how to do it.

This seems like a pretty stupid trick to me. Why can't you just define X as precisely the thing you need?

You can have ANYTHING you want, all you have to do is define it. Even infintismals aren't immune to being defined. Abraham Robinson did it in his non-standard analysis.

As far as I am concerned rigour starts with definition. Show me the intensional view of cartesian_product(A, B): .....

Like I said, the part I am most interested in is how you obtain EACH ordered pair from a continuous (uncountable!) set.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
ps -- Ok now I actually see where you're going with this idea of mapping R to 6. If R is the domain, you want to know where the 6 came from. How could I use it twice? If that's your question, it is indeed a good one and if so, I'll expand on it next post and fill in a detail or two. The point is that you are right, there is only one copy of every set. But we can use the Cartesian product trick to make more copies. Is this what your questions have been about?

My question is trivially about locating/selecting/sampling (discretising!) the elements of (sets|classes).

R is uncountable/continuous.

Cartesian product talks about ordered pairs. Those are discrete!

How do mapping functions iterate over uncountable sets?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Ok. I'd disagree about English, since it's historically contingent and constantly changing. New words and new usages are being invented all the time.

Apparently the same goes for Maths? You only got sets 140 years ago. Categories - in the last 60.

The concept of Mathematics may be static in your head, it's not so static on the ground.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
There's no formal set of rules for what's a legal sentence of English. Poets are in the business of creating new meanings. The fog creeps in on little cat's feet. Formally that makes not a lick of sense; but it's a beautiful image to anyone who can read English. It expands the language even as it delights us. Natural languages are not formal languages.

There's no formal definition for what a number is - it doesn't bother you as much as it bothers you in English?

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Yes, but English is not a formal language. There's no single set of rules that defines the language for all time.

Exactly like Maths.

Set theory was the lingua franca. Topoligists/type theorists are getting pissed off with the orthodoxy.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
You couldn't go back to England 500 years ago and communicate, even if they spoke something called English. You couldn't go forward too many years either. If fifteen years ago I said, "People got triggered by the president's latest tweet," what would that mean? Twitter wasn't founded till 2006; and we didn't have a president who triggered people with his tweets till 2016; and the word "triggered" did not acquire that particular meaning till a few years ago. When did that happen, exactly, do you remember? When did the trigger warnings start? English is dynamic and has no absolute rules.

You couldn't go back 500 years and speak of "homomorphisms" to a mathematician either. You are still confusing grammar with semantics. Grammar is the set of rules which governs the formation of sentences.

It's the (unstated) rules which dictate that you can't say 7.5 ∈ I, but you can say 7.5 ∈ R.

In formal languages grammar is only about form/structure and so it happens to coincide with meaning.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Not with the same meaning of Language. You're equivocating. Logic and math have formal rules. A computer can determine what's a valid sentence of logic or math; not so with English. Surely you know that natural language processing is a very difficult problem.

With a sufficiently abstract meaning of language.

All languages have rules. That's how we recognize them as being "languages" rather than just random characters strung together. That their universal mapping property cannot be strictly formalised doesn't mean it doesn't exist. This is Chomsky's

universal grammar argument.

NLP is difficult, not impossible. We have

GPT-3 now. It does what it does without formal axioms.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I don't agree with that at all, but that would lead into a huge discussion on its own. We came out of caves and started producing grunts, and then one day a primate grunted out the Gettysburg address. How the heck does that work? And then a hundred fifty years later, another primate tweeted. That's not how formal language works at all.

We engineered formal languages for a purpose. Obviously. But we copied everything about them from natural languages. Grammar. Subjects, Verbs (functions). Nouns (inputs).

I kicked the ball.

self.kick(ball)

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
You've totally changed the subject. Natural language is way too complicated to address here.

Sure. GPT-3 is a a complex beast. But I doubt you'll deny it's non-formal.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Which one of those is

*not like the other*?????

If you see a difference, you aren't abstracting away enough detail...

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
Now THIS is utter NONSENSE. Any program can be written down with pencil and paper and executed by hand, just as you can implement a Turing machine by hand.

It's only nonsense in theory. In practice your "nonsense" is nonsense.

Qualitatatively "up to isomorphism" doesn't cut it.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
The most powerful supercomputer in the world can't (in principle) compute anything that you couldn't compute with pencil and paper. It can only do it faster. How on EARTH could you claim that you can do something with a programming language that you can't do with pencil and paper?

In principle, that's total horseshit. Languages are human interfaces! There are such things as more and less expressive ones. By claiming equivalence you've got both your feet stuck in the

Turing tarpit
Courtesy of

http://math.andrej.com/2006/03/27/somet ... ontinuous/
The lesson is for those “experts” who “know” that all reasonable models of computation are equivalent to Turing machines. This is true if one looks just at functions from N to N. However, at higher types, such as the type of our function m, questions of representation become important, and it does matter which model of computation is used.

You are saying what you are saying, but you don't actually believe it.

Else you'd (in principle) not object to using Brainfuck as your prefered Mathematical notation.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
I know how to define the real numbers from first-order predicate logic plus the axioms of Zermelo-Fraenkel set theory. Tell me what you find unsatisfactory about that procedure. Be aware that as part of this process, the various overloads of + are perfectly well defined and could be given different symbols if desired. But why? Don't you believe in operator overloading?

What I'll probably find unsatisfactory is your appeal to yet another formal language (first order logic) without ever showing me the implementation of any of the functions/operators it depends on. Such as the ∀ iterator/quantifier when applied to "continuous" sets.

And I'll probably also object to your appeal to predicate logic which rests upon propositional logic, because propositional logic is isomorphic to type theory.

It's merely a foundational objection.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
But if you believe in proof assistants, surely R can be defined in any of the usual popular proof systems. What's wrong with those definitions?

The fictitious ∀ operator which accepts uncountable sets as inputs.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
R is the unique Archimedean totally-ordered field. That definition is categorical, meaning that any two models are isomorphic. What's wrong with that definition?

For starters, how do you test if any given model is actually a model of R? The Archimedean property is defined as an inequality. The > operators do not halt when comparing infinite precision reals which are really close to each other in any model of computation. The closer they are - the longer comparison takes. There is "no time" in Mathematics.

But a human could never do such comparison in theory or in practice.

wtf wrote: ↑Sat Sep 05, 2020 7:53 am
But this is an example of why I find talking with you so frustrating. If this is the question you're really driving at, why not just say that up front? You completely wore me out before I got to it. But if that's what you're interested in, answer the questions I just put to you and read the Wiki page on the the real numbers and we can talk about that.

I am really really driving at Finite Model Theory (

https://en.wikipedia.org/wiki/Finite_model_theory ).

FMT is mainly about discrimination of structures. The usual motivating question is whether a given class of structures can be described (up to isomorphism) in a given language. For instance, can all cyclic graphs be discriminated (from the non-cyclic ones) by a sentence of the first-order logic of graphs? This can also be phrased as: is the property "cyclic" FO expressible?

Is the property of "self reference" expressible?

Not in any Mathematical formalism!