Hard to Vary or Hardly Usable?
Showing only ideas leading to #5609 and its comments.
See full discussion·See most recent related ideasLog in or sign up to participate in this discussion.
With an account, you can revise, criticize, and comment on ideas.My critique of David Deutsch’s The Beginning of Infinity as a programmer. In short, his ‘hard to vary’ criterion at the core of his epistemology is fatally underspecified and impossible to apply.
Deutsch says that one should adopt explanations based on how hard they are to change without impacting their ability to explain what they claim to explain. The hardest-to-change explanation is the best and should be adopted. But he doesn’t say how to figure out which is hardest to change.
A decision-making method is a computational task. He says you haven’t understood a computational task if you can’t program it. He can’t program the steps for finding out how ‘hard to vary’ an explanation is, if only because those steps are underspecified. There are too many open questions.
So by his own yardstick, he hasn’t understood his epistemology.
You will find that and many more criticisms here: https://blog.dennishackethal.com/posts/hard-to-vary-or-hardly-usable
A simple implementation of hard-to-vary
This is my submission for Veritula's bounty for Idea #3069, which asks for an executable implementation that can compare arbitrary English explanations by how hard they are to vary.
Code: hard-to-vary/htv.py at 9da0ddd
I've implemented the approach as a small interactive program. It takes arbitrary explanations supplied by the user, collects working variations of each, and ranks the explanations by hardness to vary.
I think hard-to-vary can be implemented more simply than the approaches considered in Dennis's blog, Hard to Vary or Hardly Usable?. The basic idea I'm using is this: if an explanation is harder to vary, there should be fewer ways of changing it while still having it explain what it's supposed to explain.
The program starts by asking the user what question they're trying to answer and then asks for a list of proposed explanations. It goes through each explanation one at a time and asks the user to come up with variations of it that would still work as explanations. The user can enter as many as they can find, then move on to the next explanation.
Variations can either be entered individually or parameterized using notation like <X> and <Y>. For example, <X> kg of grass mixed with <Y> kg of wheat cures the disease can represent a whole family of variations. The user can either enter how many working values or combinations the parameters have, including an infinite number, or enumerate them and let the program count. This avoids requiring the user to manually enter every member of a family of variations.
The user can also review and revise their inputs before the final ranking by adding, editing, or deleting explanations and variations.
Finally, the program counts the working variations and ranks the explanations. Fewer working variations means harder to vary, while equal numbers mean equally hard to vary. So if explanation A has two working variations and explanation B has five, A is harder to vary than B.
Infinite variations need a little more information. If two explanations both have infinitely many working variations, the program first compares how many independently variable parameters have infinitely many possible values. Fewer infinitely-variable parameters means harder to vary. If that's also equal, it compares the remaining finite parts of the variations. This lets the program distinguish, for example, between an explanation with one unconstrained infinite parameter and another with two.
An example
I'll use Deutsch's example from Chapter 1, “The Reach of Explanations,” of The Beginning of Infinity: Why do seasons occur?
One explanation is the story of Persephone. Hades, god of the underworld, kidnaps Persephone. Her mother Demeter eventually negotiates her release under an arrangement that requires Persephone to return to Hades once a year. Whenever Persephone is away, Demeter becomes sad and makes the world cold and bleak.
Deutsch's point is that we can change many of the details of this explanation while still accounting for the same observations. For example, I might try variations like:
- Persephone escapes instead of being released under an agreement.
- Something other than a magic seed compels her to return.
- Some other arrangement causes Persephone to return annually instead of a marriage contract.
The details have changed, but the story can still be made to explain the seasonal cycle. Suppose I find three such variations.
Now I try the explanation involving Earth's axial tilt. Here the details are much more constrained by what we're trying to explain. Changing the geometry substantially changes what the theory predicts about the seasons. Suppose I only find one working variation.
The program therefore ranks axial tilt as harder to vary: one working variation versus three. That's the entire comparison procedure.
How I understand Dennis's criticism
I don't understand Dennis as claiming that Deutsch simply gets the Persephone example wrong. The issue in the blog is how we get from examples like this, where we seem to have an intuition that one explanation is harder to vary, to a sufficiently specified procedure that could compare explanations in general.
Dennis initially explores numerical quality scores, but that immediately creates problems. Why should one explanation have a score of 500 rather than 550? Why choose that scale? How do criticisms affect the score? How do criticisms of criticisms affect it? I agree with Dennis that these choices look arbitrary.
He eventually gets rid of the quality scores entirely. Instead of trying to measure the quality of an idea, his program keeps track of pending criticisms. His proposed rule becomes: adopt ideas without pending criticisms and reject ideas that have them.
There's something important about how that system works, though. The program doesn't generate criticisms itself; people do. And that's intentional: Dennis says "I’m not looking to formalize or automate creativity as a whole". Creative input can come from users while the program handles the non-creative part of the process. I agree that you can have a rational decision-making process while outsourcing the creative part to the user.
I just don't see why we can't do the same thing with HTV. Let the user come up with variations and say which ones they think still work. The program doesn't need to understand the explanation or come up with the variations itself. It keeps track of the variations and compares the counts.
This doesn't seem fundamentally different from Dennis letting the user tell his program that something is a criticism. In fact, in the blog he explicitly avoids having the program figure out whether a comment is really a criticism: the user checks a box saying that it is. So in my program the user is supplying a working variation; in his, the user is supplying a criticism. In both cases the user is providing the part that requires understanding and judgment, and the program does something simple with that input.
It also means I don't need the quality scores Dennis runs into trouble with. I don't need to decide how many points axial tilt gets compared with Persephone. I'm just asking: how many ways have we actually found to change each explanation while still having it work?
But isn't this subjective?
One criticism Dennis quotes is:
“Also, isn’t the difficulty of changing an explanation at least partly a property not of the explanation itself but of whoever is trying to change it? If I’m having difficulty changing it, maybe that’s because I lack imagination. Or maybe I’m just new to that field and an expert could easily change it.”
I think this is true. I just don't think it's a problem specific to HTV.
Imagine I can't think of any working variations of an explanation, but an expert can immediately think of five. Then yes, our results will be different. But isn't that also what happens with criticism? I might look at an idea and fail to see anything wrong with it while someone who knows much more about the subject immediately sees a serious criticism.
The same goes for participation. An idea on Veritula might have zero pending criticisms simply because hardly anyone has tried to criticize it. That doesn't mean there are literally no criticisms of it. Someone could find one tomorrow. Dennis's answer in the blog is basically that if this bothers you, try to find a criticism yourself. If you can't find one, why not adopt the idea?
I think HTV can work the same way. Zero working variations doesn't mean that we've somehow proven there are no possible variations. It means we haven't found one. If you think the explanation is actually easy to vary, try to come up with a variation that still works.
So yes, the result depends on the knowledge and creativity of the person using the program. But I think rational decision-making is always going to depend on what criticisms, arguments, alternatives, etc. a person is actually aware of. I don't see how Veritula escapes that either.
What about human judgment?
There's another obvious question: who decides whether a variation actually works?
For this program, the user does. I don't think we can get rid of that kind of human judgment, at least until we get AGI. Two people can disagree about whether a variation still explains the thing we're trying to explain. They can also disagree about whether two variations are really different or are basically the same variation stated twice.
Again, I think Veritula has the same underlying issue. People still have to decide whether something really is a criticism, whether a countercriticism actually answers it, whether two criticisms are redundant, and so on. Dennis's program can keep track of the structure, but the structure only means something if those judgments make sense.
Take an extreme case. If a malicious moderator rejects every good criticism of an idea and accepts nonsense countercriticisms, the idea could end up showing 0 pending criticisms. I obviously shouldn't look at the 0 and conclude that the idea is rational to adopt. I'd want to read what happened and decide whether I agree with it.
I don't mean this as a criticism specific to Veritula. I think it's just a limit of this kind of approach. At some point people have to make judgments, and people can disagree about them. Ultimately everyone is their own moderator when it comes to their own decision-making. I have to decide which arguments I accept, which criticisms I think have been answered, and so on.
The same is true with my HTV program. If someone gives me a ranking based on ten supposed working variations, I don't have to accept the ranking blindly. I can look at the ten variations and decide that five don't really work and three others are basically duplicates. My result would then be different.
I'm fine with that. I don't think the goal of either program should be to somehow remove judgment from rational thinking. The program gives us a procedure for what to do with the judgments we've made.
What does the program actually contribute?
Dennis writes:
“We can’t just outsource everything to the user – the app has to do some things or it has no value.”
This was actually the part of the blog that made me think about Veritula itself. What is Veritula doing, and what is it outsourcing?
It outsources the interesting creative part to people. People come up with the ideas. People come up with the criticisms. The user can even tell the program whether something they've written is a criticism by checking a box. The program then keeps track of the structure and tells us how many criticisms are pending.
My program is doing something similar, except with variations. People come up with the explanations and the working variations. The program keeps track of them, counts them, and ranks the explanations.
So I don't think I'm outsourcing everything to the user any more than Veritula is. I'm outsourcing the part that requires creativity and judgment. The actual decision rule is implemented in the program.
For Veritula, that rule ultimately depends on whether there are pending criticisms. For my program, it depends on the number of working variations: fewer working variations means harder to vary.
Where I disagree with the blog
I agree with Dennis that the quality sliders in the blog don't work. I also agree with his decision to let users supply the creative input rather than expecting the program to generate it.
Where I disagree is that I think once we allow this same freedom for HTV, we can construct a similarly simple program for it. The user comes up with explanations and tries to vary them while keeping them working. The program counts the working variations and ranks the explanations.
There are still all the normal problems of human knowledge: maybe I missed a variation, maybe I accepted a bad one, maybe someone else would judge things differently. But those same problems exist when we come up with and judge criticisms.
I don't think either program solves those problems, and I don't think it needs to. That's the part people do.
This approach leads to wrong results when more variations are given for the true explanation:
➜ hard-to-vary git:(master) python3 htv.pyHard-to-Vary Explanation Comparator-----------------------------------What question are you trying to answer?> Why are there seasons?Enter explanations one at a time.Press Enter on an empty line when you're done.Explanation 1: Because god did it.Explanation 2: Because of axial tilt.Explanation 3:============================================================Explanation:Because god did it.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1: Because angels did it.Variation 2: Because satan did it.Variation 3: Because Buddha did it.Variation 4:============================================================Explanation:Because of axial tilt.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1: Because of axial tilt for earth.Variation 2: Because of axial tilt for Mars.Variation 3: Because of axial tilt for Saturn.Variation 4: Because of axial tilt for Neptune.Variation 5: Because of axial tilt for Uranus.Variation 6:============================================================Question:Why are there seasons?============================================================HARDNESS-TO-VARY RANKING============================================================Rank 1Explanation: Because god did it.Working variations submitted: 3 variationsRank 2Explanation: Because of axial tilt.Working variations submitted: 5 variationsFewer working variations = harder to vary.Result:"Because god did it." is harder to vary than "Because of axial tilt.".
The program is operating on the user's current understanding of the explanation.
The seasons example in my submission is intentionally a toy example to demonstrate how the program works. In a proper use of the program, both the problem/question and the proposed explanations would include the relevant context needed to understand what is actually being explained and how the explanation works.
For example, “Earth's seasons are caused by axial tilt” is obviously not the full explanation. Someone who properly understands the explanation knows that Earth's tilt matters in relation to the Sun, Earth's orbit, the changing angle and duration of incoming sunlight, the resulting heating, and so on. These parts are connected and constrain each other.
So if the problem is to explain Earth's seasons, I wouldn't accept replacing Earth with Mars, Saturn, Neptune, etc. as working variations of that explanation. Once the relevant context is included, changing the planet changes other parts of the explanatory relationship and no longer explains the original phenomenon.
On the other hand, if a user genuinely understands “because of axial tilt” in such a shallow way that they think Earth can simply be replaced with any other planet while the explanation of Earth's seasons remains intact, then yes: according to their current understanding, the explanation really is easy to vary. The program is correctly reflecting the explanatory knowledge they've supplied to it.
This is why different users can get different results. Someone with a shallow understanding of an explanation may think many of its details can be changed independently. Someone who understands more of the explanatory structure may understand why those same changes break it. Conversely, an expert may also know genuine working variations that a novice would never think of.
So I don't expect the program to produce a context-independent ranking from a few isolated English sentences. The question and explanations are inputs supplied and understood by the user, and the HTV comparison is relative to that current understanding.
The approach underestimates how easy it is to come up with variations. It’s trivially easy to come up with infinitely many just by, for example, adding nonsense that has an incrementing counter:
➜ hard-to-vary git:(master) python3 htv.pyHard-to-Vary Explanation Comparator-----------------------------------What question are you trying to answer?> Why are there seasons?Enter explanations one at a time.Press Enter on an empty line when you're done.Explanation 1: Because god did it.Explanation 2: Because of axial tilt.Explanation 3:============================================================Explanation:Because god did it.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1: Because god did it while wearing 1 green hat.Variation 2: Because god did it while wearing 2 green hats.Variation 3: Because god did it while wearing 3 green hats.Variation 4: Because god did it while wearing 4 green hats. And so on.Variation 5:============================================================Explanation:Because of axial tilt.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1: Because of axial tilt while I wear 1 green hat.Variation 2: Because of axial tilt while I wear 2 green hats.Variation 3: Because of axial tilt while I wear 3 green hats.Variation 4: Because of axial tilt while I wear 4 green hats. And so on.Variation 5:============================================================Question:Why are there seasons?============================================================HARDNESS-TO-VARY RANKING============================================================Rank 1Explanation: Because god did it.Working variations submitted: 4 variationsRank 1Explanation: Because of axial tilt.Working variations submitted: 4 variationsFewer working variations = harder to vary.Result:The two explanations are equally hard to vary.
As I explained in #5553, the program operates on the user's current understanding of the explanation.
In this case, though, I think the green-hat example actually illustrates what it means for an explanation to be easy to vary.
Suppose my explanation really is “God causes the seasons while wearing one green hat,” and I genuinely think I can change that to two hats, three hats, a thousand hats, etc. without affecting the explanation at all. Then the number of hats is completely unconstrained by what I'm trying to explain. Nothing in the explanation tells me why it should be one rather than two or a thousand.
I would consider that a problem with the explanation, not with the HTV comparison. It's exactly the kind of arbitrariness that HTV is supposed to expose.
Of course, the program isn't going to enumerate infinitely many hats. It only works with the variations the user actually comes up with. But if I can keep producing arbitrary variations without affecting the explanatory argument, that seems like evidence that the explanation is easy to vary, not a reason to reject the method.
I would consider that a problem with the explanation, not with the HTV comparison. It's exactly the kind of arbitrariness that HTV is supposed to expose.
Yes but if the program is an accurate representation/use of HTV, then the program should expose it. The program asks the user for variations in service of exposing it. But that doesn’t work in this case. I think that’s a problem.
I think the program does expose it, given inputs that reflect the user's genuine understanding of the explanations.
If I genuinely regard “axial tilt while I wear one green hat,” “axial tilt while I wear two green hats,” etc. as distinct working variations of the axial-tilt explanation, then I've told the program that the hat count is part of the explanation and can be varied freely. In that case, I think it's completely fair for HTV to judge the explanation easier to vary.
If I instead understand the hat as an irrelevant fact that has nothing to do with the axial-tilt explanation, then I shouldn't submit changes in my hat count as variations of that explanation in the first place.
The program can't accept my judgment that these are genuine variations and then independently override that judgment because it “knows” they're actually irrelevant. Doing that would require the program itself to understand what is doing explanatory work. That's precisely the part I'm outsourcing to the user.
So I don't think this example shows that the program fails to expose easy-to-varyness. It shows that the result depends on which changes the user genuinely judges to be variations of the explanation—which is the same point I made in #5553 and #5555.
The program can't accept my judgment that these are genuine variations and then independently override that judgment because it “knows” they're actually irrelevant. Doing that would require the program itself to understand what is doing explanatory work. That's precisely the part I'm outsourcing to the user.
Fair enough.
In a situation where both competing explanations have infinitely many variations (eg #5528), the algorithm returns an equal ranking, even though one explanation is clearly preferable over the other. (“Because of axial tilt while I wear 1 green hat”, though still bad, is intuitively preferable to “Because god did it while wearing 1 green hat.”)
As I argued in #5554, if the number of green hats is genuinely part of an explanation and can be changed arbitrarily without affecting anything, then I think that really does expose an easy-to-vary part of the explanation.
But I don't think adding “while I wear one green hat,” “while I wear two green hats,” etc. to the axial-tilt explanation necessarily varies the explanation at all.
If my explanation is that Earth's seasons result from its axial tilt and the resulting relationship between Earth and the Sun, whether I happen to be wearing one green hat or a thousand isn't part of that explanatory argument. Appending an unrelated fact to the English sentence doesn't change the explanation it expresses.
If, on the other hand, I genuinely claim that my hat is part of the explanation—say, that Earth's seasons occur because of axial tilt and because I'm wearing exactly one green hat—then changing the number of hats would be a genuine variation. But in that case I really have made the explanation worse by adding an arbitrary component that isn't constrained by what I'm trying to explain.
So I think there's a difference between varying an explanation and varying the string of English used to express it. The program relies on the user to understand that distinction, for the same reason I described in #5553: it operates on the user's understanding of the explanatory argument, not on arbitrary syntactic changes to its wording.
On that understanding, I don't think both explanations become equally easy to vary merely because infinitely many irrelevant statements can be appended to the sentences expressing them.
But I don't think adding “while I wear one green hat,” “while I wear two green hats,” etc. to the axial-tilt explanation necessarily varies the explanation at all.
If you don’t think those are genuine variations, the program should either reject them or, in light of #5553, it should give users a way to resolve disagreement about what makes a genuine variation, because such a resolution would presumably itself involve some measure of HTV and so is part of the problem of making HTV work.
As the bounty states, human input is fine within reason. It’s beginning to look like your program does relatively little compared to the amount of work it expects its users to do.
I don't think those are genuine variations, so I wouldn't input them when running the program. But someone else might genuinely think they are.
The program can't decide which of us is right without itself understanding the explanation and the problem situation—in other words, without being a general intelligence. That's the point I just made in #5572, and more generally in #5553 and #5557.
At the current stage, without AGI, I think any work that requires that kind of understanding and creative judgment necessarily has to be outsourced to the user. The program then operates on the judgments the user supplies.
Some variations are good (and then described as reach). I could vary the axis-tilt explanation of the seasons by replacing earth with any other tilted planet (as I did in #5526). I could do this infinitely many times, including for yet-to-be-discovered planets and even imaginary ones. But that doesn’t make the explanation worse. (That isn’t your fault, I think Deutsch just hasn’t gotten technical enough about the difference between reach vs. easy to vary.)
I think this is where the problem/question given to the program matters.
If the problem I'm trying to answer is “Why does Earth have seasons?”, then replacing Earth with Mars doesn't give me another working variation of the explanation of Earth's seasons. I've changed the phenomenon I'm trying to explain. Applying the same underlying theory to explain seasons on Mars seems to me like an example of its reach, not a variation of its explanation of Earth's seasons.
This is one reason the program asks for the question first. Whether a proposed variation still works can't be judged independently of what we're trying to explain.
As I explained in #5553, the program relies on the user's understanding of both the problem situation and the explanation. So I agree that reach and easy-to-vary shouldn't be confused, but I don't think the program requires us to confuse them. The user has to judge whether they've varied an explanation while preserving what it was supposed to explain, or instead applied the explanation to a different problem.
And of course people can disagree about that distinction, because they can understand the problem situation and explanatory argument differently. That's part of the human judgment the program deliberately leaves to the user.
@dirk-meulenbelt says it isn’t clear what counts as a variation vs an entirely different explanation. I’ll add that the program can’t currently recognize the difference, nor is the user given an opportunity to correct any mistakes to that effect.
I agree that people can disagree about what counts as a variation versus a completely different explanation. I don't agree that the program itself needs to recognize the difference.
The program isn't intended to distinguish a variation from a completely different explanation. That's something the user has to decide. In fact, I don't see how a program could make that distinction in general without being a general intelligence that actually comprehends the problem situation and the explanations involved.
And people themselves can disagree about what counts as a variation. That's unavoidable because it depends on how they understand the underlying explanatory argument. What looks like a harmless change to me might look to someone with a deeper understanding like a change that completely breaks the explanation.
So I don't think different people getting different results is necessarily a problem. If I understand an explanation poorly, I may think lots of its details can be changed independently. Once I understand more of the connections between those details, I may realize that many of those variations don't actually work. On the other hand, an expert might also know valid ways of varying an explanation that I would never have thought of. The result reflects our current understanding, and that can change as our knowledge changes.
This is also part of the broader point I made in #5553: the program operates on the user's current understanding of the problem and explanations rather than independently understanding them for the user.
So I don't think different people getting different results is necessarily a problem.
#5531 doesn’t say that.
Fair, I didn't mean to imply that #5531 says different people getting different results is itself a problem. I was explaining why I think disagreement about what counts as a variation is okay, even when that disagreement leads to different results.
I don’t think this response addresses the part from #5531 that says “nor is the user given an opportunity to correct any mistakes to that effect.”
… nor is the user given an opportunity to correct any mistakes to that effect.
The user could simply run the program again with corrected inputs.
When variations are given for both competing explanations, the user is none the wiser which variation of the ‘better’ explanation he should adopt. There’s no clear preference:
Whenever a wide range of variant theories can account equally well for the phenomenon they are trying to explain, there is no reason to prefer one of them over the others, so advocating a particular one in preference to the others is irrational.
#5526 is an example. Even ignoring the obviously false outcome, which I caused for illustrative purposes, we don’t know which variation of the better explanation to prefer.
I don't think the program needs to choose one of the surviving variants if our current knowledge gives us no reason to choose.
If several variants of the better explanation still work and we currently have nothing that differentiates them, then I think it's fine for them to remain competing possibilities. In fact, my guess is that this is exactly how different research programs can get started: people can follow the different explanatory threads until further criticism, experiments, observations, or other new knowledge gives us a reason to distinguish them.
So I don't think the program should invent a preference between variants when our current problem situation and knowledge don't provide one. Sometimes the rational state really is that we don't yet know which variant is right. We can continue developing and testing them until we find something that differentiates them.
I don't think the program needs to choose one of the surviving variants if our current knowledge gives us no reason to choose.
It does. Preference formation is the point of the program.
Sometimes the rational state really is that we don't yet know which variant is right. We can continue developing and testing them until we find something that differentiates them.
Then we’d need to find a way to feed the results of the tests back into the program. Tests would somehow need to be formally tied to HTV. The program has to at least be able to tell the user which preference to form (short of the user not typing in the variant he’s already decided he doesn’t want, eg because of a negative test case).
It does. Preference formation is the point of the program.
I don't think preference formation requires the program to always select exactly one variant.
If several variants are equally hard to vary given everything I currently know, then “equally hard to vary” is itself the result of the comparison. I don't currently have a rational reason from HTV to prefer one over the others.
I don't think the program should invent a preference when the current problem situation doesn't give us one. The variants can remain competing possibilities until we learn something that differentiates them.
I don't think test results need some separate formal mechanism for being “fed back” into HTV.
This is the same point I made in #5562. A test result is new knowledge, and new knowledge changes the problem situation and therefore what counts as a working explanation.
This is out of scope for the bounty. The bounty merely says the program must “Return a ranking indicating which explanation is better, worse, or equal.” It doesn’t say the program has to specify which variation.
There are still all the normal problems of human knowledge: maybe I missed a variation, maybe I accepted a bad one, maybe someone else would judge things differently. But those same problems exist when we come up with and judge criticisms.
That’s true, but it isn’t clear how criticisms fit into the program as proposed. The BoI chapter 1 glossary (p. 31) defines:
Good/bad explanation An explanation that is hard/easy to vary while
still accounting for what it purports to account for.
The program currently has no way to tell, neither automatically nor through human input, whether a variation of an explanation still accounts for what it purports to account for. One could run the program again with corrected inputs but as I noted in #5533, that approach won’t scale.
I think the program already gets this through human input.
The prompt isn't asking the user to enter arbitrary changes. It specifically asks:
“Enter variations of this explanation that would still work to explain the same thing.”
So by entering a variation, the user is making the judgment that it still accounts for what the original explanation was supposed to account for. That's intentionally a human judgment, just like the other judgments I've discussed in #5553.
One could run the program again with corrected inputs but as I noted in #5533, that approach won’t scale.
Jad originally replied in #5559. I’ve extracted his reply to avoid bulk criticism:
If the user later changes their mind about one of those judgments, then yes, the current minimal CLI requires them to run it again with the corrected input. I agree that wouldn't be good UX for a full application, but that's not what I'm trying to build here. Adding the ability to add, edit, or delete variations and immediately recalculate the ranking is straightforward and doesn't change the decision procedure being demonstrated.
@jadelmourad be sure to submit separate criticisms separately. You benefit because it means I need to address each criticism individually, not in ‘bulk’. (See #5546, keyword ‘bulk’.)
I don't think either program solves those problems, and I don't think it needs to. That's the part people do.
I think Veritula solves it because it has a recursive notion of criticism. It doesn’t ‘solve’ it in the sense that it completely takes all burden off humans – creative input is still required – but it solves it in the sense that new input can be given at runtime that changes the displayed (tentative) result.
In any case, although the blog post suggests Veritula as a working alternative to HTV, the bounty isn’t a competition between HTV and Veritula. It’s about rehabilitating HTV in its own right. That may require addressing flaws even if Veritula has them, too.
I agree that HTV has to stand on its own. My argument isn't “Veritula has this problem too, therefore it's okay for HTV to have it.”
The reason I've been comparing the two is narrower: to show that outsourcing the parts requiring creativity and judgment to the user doesn't prevent us from having an executable decision procedure built on top of those inputs.
On revisability specifically, I agree that the result should be tentative and able to change when the user's judgments change. As I explained in #5559, this can technically already be done by rerunning the program with the updated inputs. The current CLI is only a minimal demonstration, so that's obviously not ideal UX. Letting the user add, edit, or delete variations and immediately recalculate the result would be straightforward and wouldn't change the decision procedure.
There are still all the normal problems of human knowledge: maybe I missed a variation, maybe I accepted a bad one, maybe someone else would judge things differently. But those same problems exist when we come up with and judge criticisms.
In this context, there’s a serious issue at the heart of HTV in that not all preference formation involves thinking about variants. Oftentimes, preference formation simply doesn’t take this form. Successful rehabilitation of HTV would be universal in this sense: it would reduce all preference formation to HTV somehow.
I’ve given the example of Pop Tarts in the past. You can ask someone why they’re called that. And they might guess some answers (‘because they “pop” out of the toaster’, ‘because the name is fun’, ‘because the filling tastes tart’, etc.). But ultimately the preferable (and correct) answer will be gotten by just looking it up on the company website, say. Not by seeing which guess is “harder to vary”. I think that should count toward the “normal problems” you mention, but it’s one that needs to be addressed.
➜ hard-to-vary git:(master) python3 htv.pyHard-to-Vary Explanation Comparator-----------------------------------What question are you trying to answer?> Why are they called Pop Tarts?Enter explanations one at a time.Press Enter on an empty line when you're done.Explanation 1: Because they ‘pop’ out of the toaster.Explanation 2: Because the name is fun.Explanation 3: Because the filling tastes tart.Explanation 4:============================================================Explanation:Because they ‘pop’ out of the toaster.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1:============================================================Explanation:Because the name is fun.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1:============================================================Explanation:Because the filling tastes tart.Enter variations of this explanation that would still work to explain the same thing.Press Enter on an empty line when you're done.Variation 1:============================================================Question:Why are they called Pop Tarts?============================================================HARDNESS-TO-VARY RANKING============================================================Rank 1Explanation: Because they ‘pop’ out of the toaster.Working variations submitted: 0 variationsRank 1Explanation: Because the name is fun.Working variations submitted: 0 variationsRank 1Explanation: Because the filling tastes tart.Working variations submitted: 0 variationsFewer working variations = harder to vary.
In this case, I couldn’t think of any good-faith variants of any of the three guesses. So they end up being equally preferable according to the program. But I happen to know that all three are false.
If I didn’t know, I’d reject guess 3 because Pop Tarts don’t actually taste tart. They taste sweet. So that’s a pending criticism. But guess 1 and 2 are plausible and I see no reason to prefer one over the other. One would need additional info, but not variant guesses.
I think the Pop-Tarts example mixes together two different things: acquiring new knowledge and forming a preference between explanations. Looking up why Pop-Tarts were actually given their name gives us new knowledge; it doesn't by itself show that the preference formation between explanations isn't HTV.
As I argued in #5553, the program operates on the user's current understanding of the problem and explanations. The user is comparing explanations and variations they currently judge to work. So everything they already know, including criticisms they're aware of, is part of that judgment.
In the Pop-Tarts example, say the three explanations are equally hard to vary given what I currently know. That's fine. I currently have no reason to prefer one over another.
Now suppose I look it up and find historical evidence saying the name was chosen for reason X. I've gained new knowledge, and that changes the problem situation. I'm no longer just asking why they're called Pop-Tarts; I'm asking why they're called Pop-Tarts given that I also know this historical evidence says X.
I could still maintain that the real reason was something else. Maybe the company was lying or the historical source was wrong. But then I have to explain that too. If I just say “the real reason is that they pop out of the toaster, and for some unrelated reason the company says X,” I've added another arbitrary factor to preserve my explanation. That seems like exactly the kind of thing that would expose it as easy to vary.
So I don't see acquiring new knowledge as something that sits outside the process and simply overrides the HTV result. New knowledge changes the problem situation and therefore changes what a working explanation now has to account for. We can then compare the explanations again in light of that new problem situation.
Being hard to vary also doesn't guarantee that an explanation is true. Newton's theory of gravity was a good explanation and remains good enough for many engineering problem situations, even though we later learned that it isn't the full story. As new problems and observations came up that Newton couldn't adequately account for, the problem situation changed and we needed a better explanation.
So I don't think every act of acquiring knowledge or finding a criticism itself needs to take the form of thinking about variants. Those things change the problem situation and affect which explanations and variations we consider to still work.
But that's different from saying the preference formation itself isn't HTV. Once our current knowledge and criticisms are taken into account, HTV can still operate on the explanations that still work and give us a preference—or sometimes tell us that, given what we currently know, they're equally good.
Being hard to vary also doesn't guarantee that an explanation is true.
Agreed, but I’m not asking for a guarantee. I’m basically saying preference formation using HTV should help us find truth. The Pop-Tart example seems to be a case where HTV is unrelated to finding truth.
How does this show that HTV is unrelated to finding truth?
You say:
But guess 1 and 2 are plausible and I see no reason to prefer one over the other.
That's exactly how I see it. Before looking up the historical evidence, both seem like good explanations given what we know. So HTV giving us no preference between them seems like the right result at that point.
Once we acquire new knowledge that distinguishes them, the problem situation changes, as I explained in #5562.
I don't see why HTV failing to distinguish two good explanations before we have the knowledge that distinguishes them means it's unrelated to truth.
I don't see why HTV failing to distinguish two good explanations before we have the knowledge that distinguishes them means it's unrelated to truth.
Because it doesn’t help us form a preference in a factual matter like the Pop-Tart question. HTV is not involved.
I'm not sure it's clear what you mean by this.
Are you saying the process I've outlined doesn't work for a factual matter like the Pop-Tarts question? If so, I've explained in #5586 and #5562 how facts and new knowledge change the problem situation and what explanations and variations we accept.
If, on the other hand, you're saying that this process does work, but that not all of it should be called HTV, then I think that's the same point you were making in #5585, which I'm fine with.
So I don't see acquiring new knowledge as something that sits outside the process and simply overrides the HTV result.
One would reject some explanations for reasons unrelated to HTV. It’s not that one would override a specific HTV result – one wouldn’t even get to that result because one would first make other choices leading to different inputs.
If I gather new info and the problem situation changes to where I already know Pop-Tarts aren’t tart but sweet (eg because I taste test them), then I simply won’t include that guess in the inputs to the program, and I won’t bother varying that guess.
HTV could still be part of the process, but DD’s claim was that all rationality boils down to HTV.
HTV could still be part of the process, but DD’s claim was that all rationality boils down to HTV.
I'm not defending DD's claim. My claim is that HTV can be implemented.
One would reject some explanations for reasons unrelated to HTV. It’s not that one would override a specific HTV result – one wouldn’t even get to that result because one would first make other choices leading to different inputs.
I think this is fair. You can treat new knowledge and criticism as changing the problem situation within which HTV operates, or more narrowly as filtering which explanations still work before applying HTV. I think those are functionally equivalent; if you want to call the latter preference formation outside HTV, I'm fine with that.
It sounds like you’re agreeing, in which case this shouldn’t be marked as a criticism.
There’s currently no validation, neither automatic nor creative. A user could input junk and there’s no way to correct that short of running the program a second time. (The revision may already address this criticism, I haven’t checked it yet.)
As I recall, FoR has an example of a grass cure. It says something like: you could eat 1g of grass to cure some disease. If that doesn’t work, proponents of that theory can simply say you actually need to eat 0.9g. When that doesn’t work either, they can say you need 0.95g. And so on. So there is literally an uncountably infinite number of variant theories: one for each decimal number in that vicinity.
Put those variants up against a competing explanation that also has uncountably many variants. Now you can arbitrarily get a result saying to prefer one over the other by typing in fewer variants for one than for the other.
More abstractly put, we can’t always count the variants. But the algorithm, as written, expects us to.
I don't think it follows that a competing explanation would also have uncountably many working variants just because it involves continuous quantities.
The grass example is easy to vary precisely because there's no explanation for why the amount should be 1kg rather than 0.9kg, 0.95kg, etc. If 1kg doesn't work, I can just keep changing the number. Nothing in the explanatory argument constrains it.
But suppose grass really did cure the disease and we actually understood how. Maybe a particular compound in the grass interacts with some biological mechanism, and a certain concentration is required for the effect. The explanation might allow a whole range of effective dosages rather than one exact number, but that range would itself be explained and constrained by the mechanism.
I wouldn't consider every possible dosage within that range a different variation of the explanation. They're different cases covered by the same explanation. Saying “this mechanism works within this dosage range” is one explanatory claim, even if there are infinitely many numerical values inside the range.
So I think there's a difference between an explanation containing a continuous variable and an explanation whose parameters can be changed arbitrarily without explanatory reason. The first can be perfectly constrained by the explanatory structure. The second is exactly what I understand easy-to-vary to mean.
This also comes back to the point I made in #5553: the program relies on the user's understanding of the explanatory argument. A knowledgeable user wouldn't enter 0.9kg, 0.9001kg, 0.90001kg, etc. as infinitely many distinct explanatory variations if they understand them as instances of one explained dosage range.
But suppose grass really did cure the disease and we actually understood how. Maybe a particular compound in the grass interacts with some biological mechanism, and a certain concentration is required for the effect. The explanation might allow a whole range of effective dosages rather than one exact number, but that range would itself be explained and constrained by the mechanism.
That assumes the cure works: then I agree there’s a reason for the specific range, and that range will be part of the one working variant. Your program would then accurately prefer it over a rival.
But the program also needs to account for cases where the cure doesn’t work. Then we can’t refer to a range anymore because there’s no reason to constrain the explanation to that range. And then we’re left with the situation described in #5549.
Ok so let’s put ourselves in the shoes of someone who genuinely thinks different decimal numbers lead to different variants for both competing explanations, and that, as a result, there are infinitely many variants for each. Walk me through how that person would use your program?
In short, the question is: how can we use the program when we genuinely think both explanations have infinitely many variants?
If the user already judges that both explanations have infinitely many working variations, do they really need the program to tell them that they're equally hard to vary? That seems unlikely—the result already follows from the inputs.
That said, if you think it's important for the program itself to represent this case explicitly, I can extend it to handle infinite families of variations as I suggested in #5598. I see that as a small extension to the implementation rather than a problem with the underlying HTV procedure.
Okay, so you're thinking of an edge case where two competing explanations genuinely both have infinitely many working variations.
For example, one explanation says some amount X of grass cures the disease, another says some amount Y of wheat cures it, and neither explanation constrains what X or Y should be. Both can just keep being varied indefinitely.
If that's the kind of case you have in mind, then yes, I agree it's an interesting edge case. If these were the only two competing explanations, my current program would have an awkward time representing the fact that both have infinitely many variations. But also, in this example they're genuinely both extremely easy to vary, so ranking them equally doesn't seem obviously wrong to me.
I don't think we need to get into comparing different sizes of infinity here. If a third explanation had only a finite number of working variations, it would clearly be harder to vary than either of the infinite ones.
As for the implementation, one simple extension would be to let the user indicate that a submitted variation represents an infinite family of working variations, rather than requiring them to enumerate individual examples. Something like a checkbox for "this can be varied indefinitely." That would let the program represent this edge case without changing the basic idea.
Unfortunately, Jad has admitted to using AI for his submissions, in violation of the bounty terms. As a result, he’s not eligible for a payout. After discussing the issue with him and separately with cofunders @dirk-meulenbelt and @davies, I’ve decided to withdraw my funds.
However, the co-funders say they don’t mind the use of AI. For that reason, and as a token of appreciation for Jad’s idea, I’m making an exception and he’ll remain eligible for their funds, pending further development of this bounty.
Just to confirm, and so you can hear it from me, yes I did use AI to help with my submission.
For posterity, here was my position during the discussion:
I think it's technically fair for Dennis to consider the submission ineligible because the bounty terms clearly say "Submissions must be handwritten. No AI-generated text or code; suspected AI use makes submissions ineligible."
On the other hand, I think this outcome is a shame because I don't think my use of AI changes any of the real work and thought that was put into it. If you zoom out, the motive of the bounty is to attract people to work on ideas and develop them, which is exactly what I did here, regardless of the tools used. As How Do Bounties Work? puts it, "Bounties let you invite criticism and reward high-quality contributions with real money."
And this is exactly what happened here. The idea had been posted on Veritula for about 10 months, and when I saw the bounty, I took it as a fun challenge to work on. So in that sense, the bounty incentive worked. And it seems to me that the reception of the idea has been good so far, which is why I find this outcome disappointing. On a symbolic level—and I acknowledge that this may be very different from how Dennis sees or intends the decision—his withdrawal of all his funds feels to me like this work is somehow not something he's willing to reward.
I did attempt to persuade Dennis to reinterpret the no-AI rule by discussing the underlying reasons for the rule. We agreed that handwriting can be a way to test the submitter's own understanding rather than relying on AI's understanding. While we agreed that this wasn't an issue for me, we disagreed about what should follow from that. My view was that the purpose of the rule should matter more than the literal wording, whereas Dennis seemed to think that the written terms should still govern.
Ultimately, we couldn't come to an agreement on whether my use of AI was appropriate in the context of this bounty. We also disagreed about whether I should have raised my use of AI proactively. In any case, I respect Dennis's decision since ultimately these were the terms of his bounty. We also agreed that in the future, discussions like this about the terms ought to be brought up at the beginning rather than after the fact.
When thousands of dollars are at stake, I think it’s fair to ask people to play by the rules. Still, I’m allowing flexibility by giving Jad a chance to collect the remaining funds.
I’m always happy to reward good work; I’ve paid out bounties in the past. And before I found out about Jad’s use of AI, I gave him tips increasing his odds of beating the bounty. I also submitted criticisms of some of my own ideas, further increasing his odds.
But people need to earn the reward. At some point, I noticed Jad had submitted his replies very quickly, with unusually verbose text, and in fairly rapid succession. AI is notoriously verbose, so that would have been the second-best time for him to mention he was using AI. He did not. But some people do genuinely type fast, so I gave him the benefit of the doubt.
When I later asked him directly whether he was using AI, he admitted to it but claimed it was merely to “help edit some of [his] writings”.
Pangram, an AI detector, paints a different picture: it says 100% (!) of the code and 22% of the prose in his first idea are AI-generated. I’ve also sampled some of his replies since, which Pangram says are also 100% AI-generated.

To play devil’s advocate once again, I wanted to make sure Pangram wasn’t giving me false positives. So I ran several tests against some of my own prose and code, and compared the results with known AI-generated prose and code. Pangram was almost always right – the few times it did make mistakes, they were almost always false negatives, so if anything, Pangram is too permissive. It does have lower confidence for shorter texts, so I also made sure to use only texts that are long enough. I showed Jad these results privately and he didn’t have a good answer, so I’m surprised he now wants to continue the discussion publicly.
In terms of content, handwriting the code matters because of Deutsch’s yardstick for having understood a computational task: if you can’t program it, you haven’t understood it. Jad says he still understands the code regardless, so it shouldn’t matter. But why not raise that before agreeing to a rule he took issue with? Why accept the risk of disqualification instead?
In terms of fairness, as Jad knows, payout for a bounty depends on addressing all known criticisms inside a review deadline. When a participant uses AI to help with that, but the funders don’t know about it, it creates an unfair advantage. That’s a violation of not just the letter but also the spirit of the rules. It’d be like secretly using a chess computer for help in a chess competition. The amount of text Jad has submitted also creates an uphill battle for the remaining funders to review his submissions before the deadline. Jad says he knows how bounties work, so he knows payouts are automatic at the deadline. Still, the remaining funders are willing to accommodate him.
Before I made the decision to withdraw my funds, I reached out to Jad privately, as I said, to make sure there wasn’t anything I had missed and that there were no hard feelings. We discussed the issue thoroughly and I couldn’t find anything. I also discussed the matter with the co-funders for a second and third opinion, again to make sure I hadn’t left any stones unturned. (To be clear, the responsibility for the decision to withdraw my funds is mine alone.)
I understand Jad was hoping for a bigger payout, so this must be a disappointing outcome. I empathize with that. I’d be bummed too. But he could have easily avoided this outcome. One can’t agree to a rule, immediately break it, get an unfair advantage, hope I won’t notice, and then complain when I do. But with any luck, he’ll get the remaining funds, provided that the arguing ends now.
But people need to earn the reward.
This one sentence is really at the heart of this discussion. This is the point that bothers me the most because it confirms my interpretation that Dennis doesn't think I earned the reward because I used AI. Do I take it to mean that he thinks AI could have solved this puzzle if only anyone thought to plug it into an LLM? Do I take it to mean that he thinks that's how I used AI? I think that is dismissive of all the work and thought I put into this.
One question I would pose is: What do you think AI did that means I didn't earn the reward?
I gave you an opportunity to be eligible for the remaining funds if you just stopped arguing. Now you’re doubling down and arguing more. You’ve forfeited the remaining funds.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved.
I’m banning you from Veritula in perpetuity. Don’t contact me again. I wish you well and hope you find another forum more to your liking.
At some point, I noticed Jad had submitted his replies very quickly, with unusually verbose text, and in fairly rapid succession.
For the record, I was working in blocks. I would read all the criticisms available at a time, then think about how to address them together. So I was sometimes writing out the response for each criticism, but holding off on submitting them so that I can properly cross-reference between them. Then I would submit them all at the same time. This is the explanation for the rapid succession and what might have appeared as unusually fast typing.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
When I later asked him directly whether he was using AI, he admitted to it but claimed it was merely to “help edit some of [his] writings”.
Pangram, an AI detector, paints a different picture
I think this relates to #5615. I think there is a fundamental disagreement about what the term AI-generated means. If I write something and then pass it to an LLM for edits, then that gets marked as AI-generated. But is that really the deal-breaker here? Are we testing "ability to solve the bounty and write up the solution without AI"? Or are we testing that the submitter understands what they're submitting, which we already established?
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
I showed Jad these results privately and he didn’t have a good answer
My actual reply to this was to bring up the questions from #5617 about what "AI-generated" signifies. Specifically, I asked "What does Pangram consider AI edits to be?", to which Dennis replied "I don't think they disclose that."
After that, I tried to make progress towards common ground by raising the deeper issue. I said:
Hmm, maybe we mean different things, so what do you think qualifies as an appropriate use of AI / using AI to edit vs an inappropriate use?
To which, Dennis replied by re-iterating that the bounty terms are clear that no AI must be used, but that didn't address the deeper issue I was trying to raise. I was trying to distinguish between different kinds of AI use in the context of what it means to have done the intellectual work necessary to earn the reward, see #5615.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
When a participant uses AI to help with that, but the funders don’t know about it, it creates an unfair advantage. That’s a violation of not just the letter but also the spirit of the rules.
I don't see what creates an "unfair advantage". Maybe the next lines clarify.
It’d be like secretly using a chess computer for help in a chess competition.
I don't think this analogy is appropriate at all. In a chess competition, people are competing between themselves to prove who is better at chess. My understanding of this platform and the bounty is that it's to incentivize the growth of knowledge, not to prove who is better at writing ideas without AI.
The amount of text Jad has submitted also creates an uphill battle for the remaining funders to review his submissions before the deadline.
This reads to me as suggesting that the text I submitted was somehow excessive or perhaps even intentionally overwhelming, when instead my intention with all my writing was to communicate my ideas as clearly as possible. In fact, on the contrary, I felt that I had to excessively elaborate on some ideas that were clear to me just so that I could better get the idea across.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
I’m surprised he now wants to continue the discussion publicly
In fact, I had explicitly conveyed in the private discussion that I wanted to continue the discussion, but that I will also respect Dennis's boundaries if he wishes to stop the conversation. Dennis brought the conversation to an end by saying: "I think we've discussed all we have to discuss."
When he subsequently posted about the issue publicly in #5606, I replied publicly to confirm the AI use and explain my position.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
But with any luck, he’ll get the remaining funds, provided that the arguing ends now.
I'm not sure what you mean by that. Are you saying that my eligibility for the remaining funders' funds depends on me not continuing this discussion?
If so, then this statement seems to block discussion and thus the growth of knowledge. Isn't the point of this platform to be able to hash out ideas and conflicts between them and thereby become more rational and knowledgeable?
I like the quote at the bottom of the website
[T]he growth of knowledge depends entirely upon disagreement.
— Karl Popper, The Myth of the Framework
I hope this is what we are doing here :)
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
But why not raise that before agreeing to a rule he took issue with? Why accept the risk of disqualification instead?
This is a fair point, like I conceded in #5613: "We also agreed that in the future, discussions like this about the terms ought to be brought up at the beginning rather than after the fact."
And I definitely learned a lesson: to hash things out before if I see any potential conflict.
If you're curious for some more details about what happened here, I would say I got excited about getting my idea out as fast as possible and hearing criticisms. I had noticed the potential conflict about AI use, and I had marked it in my head as something we might have to discuss eventually, but I didn't see that point as arriving until at least the submission seemed to be surviving the criticisms. So when you brought it up and asked whether I was using AI, I immediately said yes.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.
One can’t agree to a rule, immediately break it, get an unfair advantage, hope I won’t notice, and then complain when I do.
I don't accept the characterization that I knowingly violated the rule and hoped you wouldn't notice. That wasn't my state of mind. More on this in #5622.
Veritula discussion trees can’t accurately reflect problematic vs unproblematic ideas when unreasonable people are involved, see #5624. Submitting this as a fix. Jad agrees to terms, breaks them, then wants to argue the purpose and meaning of them. That’s arbitrary, ie the opposite of reason and Veritula. He will no doubt claim he was just trying to follow the Veritula method of addressing criticisms, but the effect is that he’s turning Veritula on its head in the process. There’s no point discussing with people like him.