I'm trying to come up with a simple language for specifying mathematics.
We can't simply define a set as a collection of objects because that's meant for human understanding and that would also lead to tail chasing. And we can't create a datatype that does a good job of defining an arbitrary set. So we have to treat set either as atomic (by atomic I mean, the definition of it can't be broken down further), or... ?
Here's my idea using the language:
Def set S: (S,in,<,U,&,x,) where (x in S):atom; A,B:sets => A&B ... (here we define the logical rules of sets)
or something. Any ideas?
What you are describing makes me think about formalism, which was one of the most prominent or popular schools of mathematical philosophy with many famous mathematicians in favour of it, for instance David Hilbert.
The school (or philosophy) stated that a mathematical theory should be possible to express as systematic string manipulations according to rules (axioms). To prove a theorem would be to compute it's string and then use the string manipulation rules (axioms) together with previously "proven" strings (theorems) to prove new theorems.
For computer scientists and mathematicians this can be very exciting as strings are expressible and manipulable with computers, possibly leading to methods for machinated theorem proving / disproving, although the school of philosophy was popular many decades before the first electric computers.