1,544 karma · joined February 8, 2008
There is a beautiful application of the power set of the Naturals to denotational semantics. I assume Prof. Hamkins's book will cover that topic, but it is not mentioned in the linked article.
Dana Scott (and apparently Gordon Plotkin independently) came up with a clever way to create a model of the lambda calculus that employs the power set of the Naturals.
The problem is that in lambda calculus, the formal language permits every expression to appear in the left-hand slot of the "Function_Application" operator. I.e., every term is simultaneously permitted to be given as an argument to a function, and also to be used as a function.
So we have the conundrum of finding some set "S" where every element of S is a function (not a problem so far), BUT, those functions all take elements of S as inputs and produce elements of S as outputs. So we need a set S that is isomorphic to the set of functions "S -> S". Cardinality arguments show that this is not possible: the function space for any non-trivial set has greater cardinality than the set itself.
So, Scott and Plotkin devised a "computationally sensible" way to interpret an arbitrary set of integers as a function over sets of integers.
By standard encodings, interpret any integer "n" as an ordered pair "<M,u>". Now, again via standard encoding, interpret M as a finite set of integers M_set.
The "function" defined by a singleton set { n } applied to some other set Q is: {u} if M_set is a subset of Q, Empty_set otherwise.
Then for a set of more than one element, take the union of the outputs of each of the elements applied to Q as above.
One can define a topology over the power set of the Naturals, and the above functions turn out to be exactly the continuous functions relative to that topology. The continuous functions so defined have the same cardinality as the power set of the Naturals.
An interesting historical side-note: historically, mathematical structures were the starting point, and axiometized formal languages a la Frege, Russell & Whitehead, etc. were built later. In the case of lambda calculus, it was the other way around: the formal language came first, and it was a multi-decade riddle what actual mathematical structure (if any) this formal language actually described.
Then, I can reason through the AI agent's responses and decide what if anything I need to do about them.
I just did this for one project so far, but got surprisingly useful results.
It turns out that the possible bugs identified by the AI tool were not bugs based on the larger context of the code as it exists right now. For example, it found a function that returns a pointer, and it may return NULL. Call sites were not checking for a NULL return value. The code in its current state could never in fact return a NULL value. However, future-proofing this code, it would be good practice to check for this case in the call sites.
What is a workable definition of "evil"?
How about this:
Intentionally and knowingly destroying the lives of other people for no other purpose than furthering one's own goals, such as accumulating wealth, fame, power, or security.
There are people in the tech space, specifically in the current round of AI deployment and hype, who fit this definition unfortunately and disturbingly well.
Another much darker sort of of evil could arise from a combination of depression or severe mental illness and monstrously huge narcissism. A person who is suffering profoundly might conclude that life is not worth the pain and the best alternative is to end it. They might further reason that human existence as a whole is an unending source of misery, and the "kindest" thing to do would be to extinguish humanity as a whole.
Some advocates of AI as "the next phase of evolution" seem to come close to this view or advocate it outright.
To such people it must be said plainly and forcefully:
You have NO RIGHT to make these kinds of decisions for other human beings.
Evolution and culture have created and configured many kinds of human brains, and many different experiences of human consciousness.
It is the height (or depth) of arrogance to project your own tortured mental experience onto other human beings and arrogate to yourself the prerogative to decide on their behalf whether their lives are worth living.
I find that the easiest intuitive on-ramp to complex arithmetic is to start with compass headings: "Oh that nice coffee shop? Go two blocks north and then a block east." Numbers come with any direction on the compass, not just "east" and "west". It turns out that it is pretty easy to intuitively justify multiplication by a scalar and addition of complex numbers, but multiplication is harder. A great way to get a feel for multiplication is to consider the equation "(x+1)(x-1) = x*2 - 1". Then, substitute "i" for x. The left-hand side is (intuitively) on a circle of radius 2 centered at the origin, and the right-hand side is on a circle of radius 1, where the circle is shifted horizontally so that its center is on the real line at -1. There's only one place these two circles meet: -2 on the real line.
There's a classic cartoon showing two wolves in the bushes at the edge of a campfire, looking at the leftovers being thrown around by the humans. One says, "Look, what the heck, let's cozy up to these two-legged creatures that seem to have lots of food. What could go wrong?"
Next frame is a picture of an unhappy-looking pug wearing a birthday hat..
Something I learned late in the game as a programmer is how beautiful it is when multiple people somehow sync up and get into a flow state together. It is like a choir, where everyone is somehow elevated and together they achieve a lovely unity. Or a sports team where all of the players are locked in, seemingly reading each others' minds, and getting to some amazing transcendent place together. The book "The Boys in the Boat" describes this phenomenon beautifully. When all nine members of the team achieve this sort of locked-in unity, the boat just flies across the water.
In software, there are times when ideas seem to pass with electricity from person to person. People immediately build upon the thoughts of others. Ideas seemingly come from nowhere, a synthesis of the conceptual pieces held by each of the team members. You realize that some wonderful new way of doing things has emerged from the dialog, and no one person could have possibly gotten there on their own.
There is a wonderful old-fashioned phrase that describes this: "The whole is greater than the sum of the parts."
He was studying standing waves of brain activity among circularly linked groups of neurons. Neurons can provide both excitatory inputs and inhibitory inputs to other neurons.
For a computer programmer, it is easy to imagine excitatory and inhibitory localized phenomena giving rise to all sorts of interesting and complex self-sustaining standing waves.
Think of the study of cellular automata by Stephen Wolfram and others, in which various simple localized rules give rise to all sorts of interesting computational phenomena, up to and including Turing Completeness.
In animal models such as pigs, these standing waves can be observed to persist for months if not longer.
His particular area of interest is to subject the brain to gentle sub-lethal doses of radiation treatment in order to change selected standing waves.
My thought is that there may be a qualitative difference between the underlying "neural hardware" and the thought processes that "execute" on this hardware.
It is the bread and butter of computer scientists to reason in a world in which the complexity of software greatly exceeds the simple computational artifacts on which it runs.
One might say that chess has information content that is qualitatively dissimilar to the wood-working needed to make a pretty chess board.
The information content in DNA is composed of chemically interchangeable A, G, T, and C molecules. So, one might say that the underlying physics is "walled off" from the information content of the DNA. Evolution has, as it were, a free hand to encode advantageous alleles, with no bias introduced by the underlying physics or chemistry.
All this is to say "Hear hear!" to this excellent article.
The "metaphorical brain talk" the author describes may indeed be a conceptual limitation if applied too broadly to the mind.
Here is an approximation that captures the main effect (the 23.5 degree tilt of the earth's rotation axis) and overlooks secondary effects.
Consider the equator. Imagine a circle on the X-Y plane centered at the origin. Angle the circle up 23.5 degrees, rotated around the x axis. The projection of this circle back onto the plane is an ellipse on the X-Y plane, with the vertical axis about 92% of the length of the horizontal axis. Now, consider a series of vectors in the X-Y plane starting on the X axis, with angles in steps of 0.986 degrees. (This is approximately the angle the earth progresses around the sun each day.)
Where each vector hits the unit circle, move the point up or down so that it hits the ellipse. The angle will change a bit for most of the rays. In some cases the angle will be a bit smaller, and in some cases a bit larger. These discrepancies are the variations in time of day of sunrise and sunset over the course of a year on the equator.
Sunset on these days after the shortest day is of course even later than sunset of the shortest day.
On the beautiful image of the OP, you can see that after dawn of December 21, dawn continues to get later over the next few days.
In my area, sunrise on 12/21/2024 was 6:54am, and it will continue to get later until 1/8/2025, when it is at 6:59am.
Length of day on 12/21/2024 is 9 hours, 54 minutes, and length of day on 1/8/2025 is 10 hours, 2 minutes.
Searching the web, I haven't found an explanation for this that "clicks" for me as both intuitive and rigorous. Any thoughts or pointers on this?
'cal 9 1752' is .. funny. I guess instead of doing this annoying a-periodic leap second business, they accumulated a bunch of leap seconds owed, and skipped 11 days at one go. Sysadmins at the time were of divided opinion on the matter.
In short:
A beautifully designed abstraction is easy to understand and use.
It is so trustworthy that you don't feel any need to worry about how it is implemented.
Finally, and most importantly, it enables you to reason with rigor and precision about the correctness of the code you are writing that makes use of it.
If an expression M can appear in the left position of the function application operation, this implies that M is a function.
By way of analogy, if I have a formula x == x+0, this implies that x is a number.
Or, s == s + '' would imply that s is a string.
So, if M == lambda x. M(x), this is saying that M is a function.
This thoughtful and profound essay brings home the lived reality of the patients who are treated by our systems.
The writer speaks lived truth that has a tone of heft and substantiality.
Human life is a fragile and temporary gift. Most of us are lucky enough to have a few moments of transporting and profound beauty and joy.
While life's journey has an inevitable end for all of us, we can help each other in innumerable ways to make the journey more bearable, and at times joyful.
I'm an old guy, and have an artificial hip and cataract implants. I'm deeply grateful for the quality of life I've been gifted to receive by the medical people who make these kinds of things possible.
I hope that the brain treatment system I work on will be a similar gift to the lives of at least some of the patients who require that kind of treatment.