trentmkelly/LessWrong-43k huggingface dataset:
The halting problem is overstated
by Yair Halberstadt — 2021-08-16T05:26:06.034Z

Recently seen on an otherwise excellent blog post:

I've definitely been wrong before. For example, in my article Types + Properties = Software, I wrote about type systems:

"To the far right, we have a hypothetical language with such a strong type system that, indeed, if it compiles, it works."

To the right, in this context, means more statically typed. While the notion is natural, the sentence is uninformed. When I wrote the article, I hadn't yet read Charles Petzold's excellent Annotated Turing. Although I had heard about the halting problem before reading the book, I hadn't internalised it. I wasn't able to draw inferences based on that labelled concept.

After I read the book, I've come to understand that general-purpose static type system can never prove unequivocally that a generic program works. That's what Church, Turing, and Gödel proved.

Now he is correct that:

A general-purpose static type system can never prove unequivocally that a generic program works.

In other words there will always be programs that work, but you can't prove they work. A simple example would be:

RunSomeArbitraryProgram()
PerformIllegalOperation()

This is a working program if RunSomeProgram runs forever and so the illegal operation is never reached, but the halting problem means that for any compiler there will always be values of ArbitraryProgram which run forever but the compiler doesn't know this is the case.

But that's not the original statement:

We have a hypothetical language with such a strong type system that, indeed, if it compiles, it works."

This is trivially false. Consider for example AddLang. AddLang takes a comma separated list of integers as input, and prints the sum as the output. E.g 1,2,3 will output 6. It's trivial to write a compiler for that language such that if it compiles, it works.

Of course that's being a bit unfair. As is clear from the followup, he was talking about a general purpose typing system - i.e. a typing system for a Turing complete language, not a DSL.

For that though, we first need to define "works". I think a reasonable definition of "works" is "works as the user intended it to". Now a clever programmer could definitely write a program which works as the client intends it to if and only if the Goldbach conjecture is true, which would be an example of a program that might work, but wouldn't compile. However that doesn't much limit us - after all just wr...
A gentle apocalypse 
by pchvykov — 2021-08-16T05:03:32.210Z

Is robots taking over the world bad? Some of the AI-risk scenarios I’ve read almost feel like it’s inevitable – and I’ve been wondering if there is a way it could happen that we would actually be comfortable, or even happy with. Let me roughly outline one scenario I have in mind, and then reflect on whether it would be “bad” and why.

We start from the state we are in today: AI is getting progressively better at taking over various human jobs merely by leveraging statistical regularities in the data. As AI cannot run itself yet, humans remain in the loop for now, but make fewer and fewer independent actions and decisions that are not informed or assisted by AI in some way. The big assumption I will take for the scenarios here is that at some point, AI becomes fully self-sufficient in some parts of the economy: achieving autonomous self-replication, including sourcing raw materials, design, assembly, maintenance, debugging, and adapting by gathering more data and learning new statistical regularities.

At that point, or soon thereafter, in the perfect world we can imagine all humans being provided all the basic needs without needing to work. And with this comes the hard problem of finding purpose, meaning and fun in our lives where AI can perfectly well run our economy without needing any help from us. It is often said that meaning comes from helping other humans in some way shape or form. So sure, while AI might not need our help to run the economy, perhaps other humans will need us for some quality human connection and understanding? Empathy, listening, psychotherapy perhaps, sex, friendship. Perhaps we’ll still need each other to make art that strikes some deeper notes in our souls. Or to discover mysteries of nature through science – and explain them in a simple elegant way that gives the pleasure of “human understanding” (even if computers can make the same predictions more accurately through incomprehensible statistics).

So while basic human needs may be met through automation, perhaps we will still need each other to satisfy our higher needs? Well this might be true if meeting those higher needs was harder to automate – but currently the evidence we have does not seem to support that. Video games are a good example: by hacking our reward system, games can give us a powerful sense of meaning, of fighting for a great cause, and doing it toge...
An Apprentice Experiment in Python Programming, Part 3
by gilch — 2021-08-16T04:42:31.948Z

[Note to readers: We've converted this post into a Jupyter notebook so you can code along! (The notebook works on Firefox and Chrome, but may not work on all browsers.)] Let us know what you think!

[Epistemic Status: this post is reconstructed from primarily chat logs, so I am more confident in the accuracy of this post than the previous one which was reconstructed from more fragmented record.]

Previously: https://www.lesswrong.com/posts/jkaCF3yrfKvFQL4ym/an-apprentice-experiment-in-python-programming-part-2

Since the last pair-programming session, gilch and I have done some more Python programming.

Registry

After we talked about the solutions for the previous puzzle, gilch sent me the next one (gilch later clarified that I could put any code above the provided code):

registry = []
@register
def alice():
print("Alice")
@register
def bob():
print("Bob")
@register
def charlie():
print("Charlie")

>>> for name in registry: name()
Alice
Bob
Charlie

This one was pretty straightforward after I had figured out the previous one, I saw that all the decorator register had to do was to put the functions in the list:

def register(f):
registry.append(f)

registry = []
@register
def alice():
print("Alice")
@register
def bob():
print("Bob")
@register
def charlie():
print("Charlie")

While the output was exactly what I expected, I was a bit surprised that I got to use registry before it was declared, but then I realized the variable was not actually used until the first instance of @register, after registry was instantiated. To which gilch responded that globals don't need to exist until they are actually used. We moved on to the next puzzle:

Register, Part 2

registry = {}
@register
def alice():
print("Alice")
@register
def bob():
print("Bob")
@register
def charlie():
print("Charlie")

>>> for name, func in registry.items():
... print(f"{name}() does:")
... func()
... print()
...
alice() does:
Alice

bob() does:
Bob

charlie() does:
Charlie

>>>

I played around the Python shell and noticed the function name was in the string representation of the function object:

>>> alice
<function alice at 0x7fb5ad0db040>

So I used the first way I could think of to parse the function name in my solution:

def register(f):
function_name = f.__str__().split(" ")[1]
registry[function_name]

...
An arrogant Aristotle proves too much
by John Dog — 2021-08-16T01:19:41.491Z

Aristotle: Oi Plato, you said your friend Nadal was coming to meet us?

Plato: Yes, I did. He should be here shortly.

Aristotle: Did he say the time he was coming to meet us? After all, the movie starts in 30 minutes.

Plato: Yes, he said he would be here 15 minutes before the movie started. So, Nadal should be here 15 minutes from now.

Aristotle: I see. Yet, since we are watching a movie, it'd be nice to have him come earlier so I could formally meet him. It's hard to learn about a person in a theater. The crowd grows haste as conversations grow longer.

Plato: I understand your concern. However, there isn't much we can do about it now as he lives 15 minutes away and likely just left.

Aristotle: I guess I'll try to get to know him in the 15 minutes I have.

Plato: Although, I do remember Nadal mentioning something to me. I forget the exact details but he may not be able to make it.

Aristotle: He may not be able to make it? What exactly do you mean? Is there a 50/50 chance he makes it? Do you have any idea at all?

Plato: No, I have no idea. Also, why are you so eager to meet my friend? Why is it such a big issue if he comes or not?

Aristotle: I am not as concerned as you make me out to be. Though, it would be nice to meet your friend.

Plato: Why would it be nice to meet my friend? He isn't real.

Aristotle: Your friend.. isn't .. real? Plato, you're speaking nonsense! How would he be your friend if he isn't real?

Plato: You misunderstand me, as my friend he is real. To you, however, Nadal doesn't exist. After all, I could be completely lying to you about his existence. The entire concept of Nadal was placed in your head by me. As of this very moment, to you, Nadal doesn't exist.

Aristotle: It seems like a pointless comment to make. Obviously, Nadal's existence was placed in my head by you. After all, he's your friend and you told me about him. That's why it would be nice to meet him. Once I do he'll be real.

Plato: How naive. Even if you meet Nadal he'll still be fake! The Nadal I met and befriended won't be the same Nadal that meets you here. Even if you grow close with Nadal, you won't be the type of friends he and I are!

Aristotle: Plato, I am not trying to steal your friend. You are my best friend Aristotle. After all, I came and met you here at a moment's notice correct?

Plato: Yes

Aristotle: Ha! Your smug arrogance betrays you. By your own...
Chasing Infinities
by Michael Bateman — 2021-08-16T01:19:24.467Z

Crossposted from my blog Passing Time

How do we decide how to make decisions about the future?

How we, as a society, decide to answer this question is one of the most important moral quandaries we must face. All too often, questions of morality are focused on the actions themselves in question. The meta-question of how we make decisions across the dimension of time is, in my eyes, just as interesting as what is moral in the first place.

What exactly am I talking about here? Let’s run down an example: You’re given the choice between pressing two buttons: red and blue. The red button saves ten lives today; the blue button saves one million lives in 500 years. Which option should you choose?

An Abrupt Aside on Discount Rates

Discount rates describe the strength of time preferences; discount rates also, separately, describe opportunity costs. Mechanically, you discount future values by a discount rate in order to determine their present value to you today. Commonly, this idea is related to the time value of money; a dollar today is worth more than a dollar tomorrow. If I told you that you could give me $100 today and that I would give you $101 back in one year, you would probably pass on my offer. If so, your discount rate is higher than 1%. If you had a discount rate of zero, I could take your $100 now and you would happily accept $101 in a year (or two years, or ten years since you are not discounting the value of future returns as a function of time) since the proposition would have a positive net present value.

Discount rates are used extensively in business, finance, and public policy to guide decisions and are called, under various contexts, hurdle rates, required rates of return, or the weighted average cost of capital.

Due to my background, I’ve paid more attention to the types of discount rates related to investments, consumption, and goods—the opportunity cost of capital, the hurdle rate, internal rates of return, etc. I use these concepts every day at work, when I’m making personal financial decisions, and when reading about business, finance, or politics. These kinds of financial discount rates, however, are distinct from the (perhaps more interesting) pure rate of social time preference, which is what I will be referring to as a “time discount rate” or “time discounting.”

A time discount rate is the rate at which you value something today ...
Strategy vs. PR-narrative

by TekhneMakre — 2021-08-15T22:40:59.527Z

[This is me trying to state simply for myself a conceptual distinction I think is well-known.]
The point of PR-narrative is to make your actions understandable to other people. The point of strategy is to make high-level decisions about the (more local) aims of your thought and action, that you expect will have the consequences you want.
For whatever reason, good or bad, your PR-narrative may contain lies of commission or omission, and ontological confusions--thinking something "is even a thing" that really isn't, or vice versa. (E.g. because you want people to approve your actions more than you want them to understand and predict them.)
You might confuse your strategy with your PR-narrative. Both of them summarize your behavior in terms of purpose, but strategy is trying to modulate your more-zoomed-in aims to contribute to your larger aims, while PR-narrative is supposed to modulate other people's expectations of your more-zoomed-in aims. You might have both a PR-narrative and a strategy of doing X. "Going through the motions" is sometimes like, you're having the PR-narrative guide your zoomed-in behavior and not having your strategy guide it, so your behavior kind of looks like what it's supposed to look like. You can tell it's not guided by your strategy because it's not continuously answering to your detailed judgements about "will this result in X". (That could also happen e.g. because you've reached a local maximum in the motions you're going through.)
When you become aware that the activity you're doing is inconsistent with your PR-narrative, there's a rising tension. Should you keep going, and cover up that you're doing it? Or admit that you're doing it, but say you're trying your best to do better, spending some social capital? Or should you try to convince people that what you're doing is actually consistent with your PR-narrative? Or force yourself to stop, so you can say you did the right thing?
A similar thing might happen when you become aware that the activity you're doing is inconsistent with your strategy. A difference is that you have read and write access to everything involved in the conflict, so you could resolve it by comparing different possible strategies. Another difference is that it's more clear there shouldn't be a conflict if only you could think things through, it's all just you after all.
When you've done something that's consisten...
Pedophile Problems
by rogersbacon — 2021-08-15T18:23:54.424Z

I.

I volunteer taught a Biology 101 class at a prison. It was a cool program - a local community college partnered with the prison and people could receive an AA degree while incarcerated. Aside from some administrative issues, it was a great experience - it was fun to teach adults with a limited background in science and the students were really enthusiastic and appreciative (in contrast to the high school students that I normally teach). At the training meetings, they tell you not to look up students’ crimes while teaching in order to help you stay impartial as a teacher. The class was 12 male students, ranging from late 20s to maybe 50s. Naturally I was curious as to what crimes they committed, so at the end of the semester I looked up everyone’s name online.

Every. Single. One. Was. A. Pedophile.

One guy got caught with child pornography because he went to get his computer fixed and the technician found it on his computer. Another guy, about 50, was one of my favorite students because he knew a good amount of biology and was very helpful to his classmates. Turns out the reason he knew a lot of biology was because he used to be an environmental science teacher at a high school before he got caught committing a series of heinous sex crimes against minors - 100s of up-skirt photographs of his students, raping children as young as four years old, and producing pornographic materials that also included sexual acts with animals.

Instead of vaguely listing his crimes, I could have just linked to the news article that describes his arrest and conviction, but some part of me feels like that would be wrong to do. Why do I feel the need to protect his identity given that information about his crimes is freely available as public record? I did not sign any confidentiality agreement and it’s not illegal for me to disclose his name. But I still can’t shake the feeling that it would be wrong to reveal his identity. It is hard for me to say what my reasons are for thinking this and I am not at all sure if it is the right decision -

I am morally dumbfounded

. I guess it feels like a violation of a unwritten code of ethics for teachers akin to the Hippocratic Oath. Healing and learning both require a certain degree of trust, and breaching this trust – even for a pedophile and even when no one will know that I have done so – still seems wrong (perhaps I might feel differently i...
Utilitarianism Expressed in Julia
by Erich_Grunewald — 2021-08-15T11:31:51.109Z
Link: https://www.erichgrunewald.com/posts/utilitarianism-expressed-in-julia/

I had been looking for a small programming project for learning the basics of Julia when I had the idea of modelling a moral system in code. Due to its computational nature, Utilitarianism seemed a likely candidate. Any moral system involves functions in the sense that, given a state of the world and one or more possible actions, it can tell you whether those actions are right or wrong, or which action is better than the others. But Utilitarianism goes beyond that, because it does this by putting numbers on things, aggregating those numbers and mathematically comparing the results. That is probably one reason why it is so popular among programmers.

Quoting utilitarianism.net quoting Peter Singer, Utilitarianism says that, "as far as it is within our power, we should bring about a world in which every individual has the highest possible level of wellbeing". There are of course different ways of interpreting and implementing that in practice, and as a result there are many different variants of Utilitarianism. This will become obvious as we are faced with design choices in our implementation.[1]

For example, what is well-being, or utility? Let us assume that it is the average of all the positive and negative experiences in the life of an individual. I will call such an individual a receptacle because what is relevant about it here is the fact that it can contain, so to put it, utility. But it could be a human, or an animal, or an alien even.

Let us also assume – why not? – that utility is normally distributed around a value of two, two being our baseline value. Receptacles above two have mostly happy lives, receptacles below two have mostly unhappy lives, and receptacles below zero have lives that are objectively not worth living at all.

So a receptacle is just a floating-point value, and a world is just an array of receptacles:

const Receptacle = Float64
const World = Array{Receptacle}

We can create two functions for generating these:

using Random
genreceptacle() = randn() + 2 # standard deviation 1
genworld(n::Int = 100) = map(_ -> genreceptacle(), zeros(n))

Calling genworld() gives us our baseline world. We can plot it[2]

using Plots, StatsPlots
histogram(genworld())

to get a nice visual representation:

So there are a bunch of receptacles living normal lives around the baseline value, some lucky few with utilities of three or four and some poor devils with...
Open and Welcome Thread – August 2021
by habryka — 2021-08-15T05:59:05.270Z

If it’s worth saying, but not worth its own post, here's a place to put it.

If you are new to LessWrong, here's the place to introduce yourself. Personal stories, anecdotes, or just general comments on how you found us and what you hope to get from the site and community are invited. This is also the place to discuss feature requests and other ideas you have for the site, if you don't want to write a full top-level post.

If you want to explore the community more, I recommend reading the Library, checking recent Curated posts, seeing if there are any meetups in your area, and checking out the Getting Started section of the LessWrong FAQ. If you want to orient to the content on the site, you can also check out the new Concepts section.

The Open Thread tag is here. The Open Thread sequence is here.
Transitive Tolerance Means Intolerance
by orthonormal — 2021-08-14T17:52:26.849Z

Our society is pretty messed up around arguments of whose ideas we should and shouldn't tolerate. Some of this is inevitable: even without censorship, there are cases where group X can choose to actively show respect to person Y, and members of X will argue about that, and people with any influence over members of X may try and sway the decision too.

Of course, the actual kinds of conflicts in our world are... less tame than the above example. Troublingly, people lose jobs* for saying things that a supermajority of Americans find inoffensive, both on the left and the right.

You don't need me to tell you that things are bad. I do think I can point out how some of this is a consequence of the natural impulse to judge people by their friends, turned corrosive by the property of transitivity.

Transitivity is the property where if A relates in a certain way to B, and B relates in that same way to C, then A relates in that same way to C. For instance, if Alex is shorter than Beth, and Beth is shorter than Chris, then Alex is shorter than Chris.

Not all relations are transitive. If Alex is Beth's cousin, and Beth is Chris's cousin, it doesn't follow that Alex and Chris are cousins: Beth could share one set of grandparents with Alex, and the other set with Chris.

Pivoting back to toleration, we begin with the idea of guilt by association, which we rightly exclude from legal consideration, but which is still pretty good Bayesian evidence. A person who chums around with the Mafia might not be a mafioso themselves, but they're more likely to be one than a random person is.

Similarly for people who proclaim ideas: a person who associates with an X-sayer is more likely to believe X than a random person.

Where this goes horribly wrong is when toleration is assumed to be transitive.

In reality, if X associates with Y who associates with Z, that doesn't mean X associates with Z, or knows of/cares about/approves of Z. Y could be in a D&D group with X while volunteering with Z, or whatever.

But if our social rules treat toleration as fully transitive, then as soon as Z says something awful, X is contaminated by it. In fact, X needs to quickly ditch/denounce Y in order to avoid the contagion, and sometimes even that won't work.

(I may be getting the details wrong, but I recall a case where A was denounced for saying nice things about B... who had once appeared on C's podcast.....