Skip to main content

The Chicken and the Egg - Redux

There is still considerable skepticism regarding my conclusion that the chicken comes first. Many of the objections are simply due to different interpretations of the question, interpretations which I consider unfaithful to the original purpose of the chicken-egg dilemma.

Fundamentally, this question is supposed to represent a causality dilemma. When there is a causal dependency between any two objects, A and B, we can ask ourselves, "which came first, A or B?" An object C could have caused B, and thus triggered the recursive relation C→B→A→B→A... Of course, it could just as easily have been A that was caused first.

To properly answer this question, we must reduce the abstract objects A and B to concrete objects and apply our scientific knowledge to ground the recursion. Using chickens and eggs as our objects, we have to precisely define what chickens and what eggs to consider.

The question "which came first, chickens or any type of egg?" is not a causal dilemma at all, and further is not faithful to the original purpose of the question. The ancient Greeks that first posed this question had no concept of evolution and no inkling that chickens could have any relationship to other egg types, so they would not have asked, "which came first, the chicken or the fish egg?" To the ancient Greeks, such a question isn't a dilemma, it's complete nonsense. Thus, the paper linked in my last post is invalid.

The more precise and faithful phrasing of the dilemma is, "which came first, the chicken or the chicken egg?", or more generally, "which came first, species Sn or it's reproductive mechanism Rn?"

Sn and Rn are in the appropriate recursive relation to form a causal dilemma, and we can ground it in biology and chemistry. The very first single-celled organism did not form by mitosis, thus the first single-celled organism, S preceded its own reproduction mechanism, R. Thus, the dominoes fall, ie. the first egg-laying species was not hatched from an egg, thus it too preceded its own reproductive mechanism, and so on, ad infinitum.

Eventually, we reach chickens and chicken eggs, and the conclusion is simply, that the chicken necessarily came before its egg.

Comments

Tian Mu Liu said…
Chicken egg comes first!
Species are defined by its characteristics which are encoded in its DNA. Thus, the egg that haves DNA of a chicken is a chicken egg and an animal that haves DNA of a chicken is a chicken.

Now, DNA is constantly changing through reproduction and sometimes mutation. Mutation usually results in cancer, which in turn kills the animal. Therefore, the probability of an animal sporadically turned into a chicken is next to nothing. But DNA changes occur during reproduction, ie. two healthy parents could give a child with six fingers in each hand. Keep in mind, the DNA of an egg is same of its embryo.

In conclusion, it takes a chicken egg to get a chicken. However, it does not necessarily take a chicken to produce a chicken egg.

Assumptions:
1. Species are defined by its DNA signatures
2. Change in DNA is much more dramatic during reproduction than mutation.
Sandro Magi said…
In conclusion, it takes a chicken egg to get a chicken.No, you have an egg containing a chicken, not necessarily a "chicken egg" (whatever that means).

And what about the first species to lay eggs? How was it born? As I explained, it was born via non-egg-laying means, meaning the first egg-laying species preceded egg-laying itself.

Any mutations happen before the organism is fully formed, in the single-cell phase, and the organism is born using its progenitors' reproductive mechanism, not its own. Thus, the species always precedes its reproductive mechanism. Chicken thus came first.
Tian Mu Liu said…
There is no mutation during cell-division progress because DNA can be modified only before birth. DNA is already encoded in the progenitor cells, the species type is already defined when it is an egg. When I have an egg containing a chicken, it has the DNA of a chicken, therefore, it is a chicken egg.

The first species to lay eggs was given birth by another species that does not lay eggs. It is given a different reproductive mechanism upon mutation at conception.
Sandro Magi said…
The first species to lay eggs was given birth by another species that does not lay eggs. It is given a different reproductive mechanism upon mutation at conception.You agree that the first egg-laying species came into being without an egg, then conclude that the egg came first. This is a contradiction.

When I have an egg containing a chicken, it has the DNA of a chicken, therefore, it is a chicken egg.Not at all. The egg is formed mostly by the mother, not the embryo. The chemical composition of the egg would resemble more closely the progenitor's egg. Defining a "chicken egg" as "an egg containing a chicken" is thus insufficient, and in fact contradictory if we're being rigourous.

Your argument based on DNA and mutation at conception simply supports my point: at conception, the species S(n) is fixed, but is produced by reproductive mechanism R(n-1). Thus, the chicken, S(n), comes before the egg, R(n).
Tian Mu Liu said…
I concluded chicken egg came before chicken, and egg-laying species came into being without an egg. They do not contradict each other.

I think we have different definition of a chicken egg.
If a chicken egg is an egg from chicken, then chicken came first.
If a chicken egg is an egg from which a chicken is born, then chicken egg came first.
Sandro Magi said…
I concluded chicken egg came before chicken, and egg-laying species came into being without an egg. They do not contradict each other.They do. Your definitions must be consistent with the recursive relation between S(n) and R(n). Species n+1 must derive from species n, and from biology, as you have described, we know that R(n) produces S(n+1).

This whole debate is about resolving which came first, the chicken or the egg. Given the above, the fact that S(n) precedes R(n) is established. Thus, eggs being the reproductive mechanism of chickens, chickens came first. This is a rigourous and formal argument.

But let's take a different tack, and define "chicken egg" as "an egg containing a chicken". We must then be consistent and say a "chicken-1 egg" is "an egg containing a chicken-1", and ditto for chicken-2, and so on. As you have done, we then conclude based on this assumption that the egg came first, or, R(n) precedes S(n).

However, at n = first egg-laying species, we have S(n) being formed without an egg, R(n), which contradicts your conclusion that the R(n) precedes S(n).

The only resolution is that S(n), and consequently the chicken, came first.

I have now provided a proof by contradiction, and an inductive proof. There is no escaping the conclusion! The chicken came first.
Tian Mu Liu said…
Let's generalize the idea of egg as a single-cell organism that would eventually mature into adult form.

When the life form started to emerge on earth, it started as a single-cell organism, R(n). As it matures, S(n) it would reproduce an organism with slightly different DNA, R(n+1), which would matures S(n+1) and cycle goes.

The form of R(n) could be an egg, an embryo, or simply a single cell. The process of S(n) -> R(n+1) is where change of DNA occurs. Thus, "egg" came first.

Now, "the first egg-laying species came into being without an egg" does not contradict my arguments because R(n) does not have to be in a form of an egg.

However, there is a flaw in my argument that I did not take into the account an animal could have gave birth to an embryo chicken instead of a chicken egg. But, let us assume chicken came from a relative bird species that happens to reproduce with eggs too.
Sandro Magi said…
My argument was not restricted to eggs and egg-laying species, but is inductive right back to the very first primordial cell. From our current understanding, the very first life was a rare spontaneous organization of proteins. In other words, the very first cell preceded mitosis, and we again reach the conclusion that S(n) precedes R(n).

Also, your use of S and R appear backwards or at least inconsistent with my definitions. I defined S as the species, and R is that species' reproductive mechanism (note: not eggs specifically, but any reproductive mechanism).

I suggest you re-read what I have written, including the link to the inductive argument I provided in my last comment.

The process of S(n) -> R(n+1) is where change of DNA occurs. Thus, "egg" came first.S(n) -> R(n+1) is impossible. It contradicts all biology and logic. I'm not even sure what confusion would lead you to say that species n would use species n+1's reproductive mechanism. You are effectively saying that the first egg-laying species, S(n+1), was produced from an egg, R(n+1), even though the egg-laying did not even exist yet!

The valid relation is R(n) -> S(n+1), or, the reproductive mechanism of species n produces species n+1. This also coincides with what you've been saying.

The change in DNA occurs in R(n), producing the species S(n+1), which necessarily precedes n+1's reproductive mechanism, R(n+1). The existence of the species precedes its reproductive mechanism.
Tian Mu Liu said…
I had the wrong interpretation of R(t). Now let S(t) by species of the mature, R(t) be reproductive mechanism of the mature. Since species do not change its reproductive mechanism along its life time, define S(t)->R(t) as C(t). X(t) be species and reproductive mechanism of egg/embryo.

When X(t) -> C(t), there is no DNA change. Thus, new species could not be introduced as embryo/egg matures/hatches. Chicken could not come first.
Sandro Magi said…
I'm sorry but your argument is unnecessarily confusing, and has not demonstrated anything. X(t) is unnecessary, since I already captured this as R(n+1). n ranges over all differentiable species numbered numerically from 0, the first lifeform. The differentiation can be made arbitrarily precise.

Performing substitution for C and X in your relations, we derive the following:

X(t) -> C(t)
= R(n+1) -> S(n) -> R(n)

So species n+1 managed to create species n, its progenitor! A remarkable causal paradox.

I'm afraid you're arguing in circles. If there is a flaw in my formal argument, then point it out. Since you have not, I surmise that you cannot. Chicken remains the answer unless you discover a flaw.
Tian Mu Liu said…
Typo correction C(t) -> X(t) was what I meant
Sandro Magi said…
With your correction:

C(t) -> X(t)
= S(n) -> R(n) -> R(n+1)

which is also nonsense. R is not in a recursive relation with itself, it is in a recursive relation with S.
Tian Mu Liu said…
Ok, instead of proofing my point, I am going to take a stab at your reasoning.

First of all, your framework of S(t) and R(t) is insufficient (not general enough). Instead of R(t), it is should be R1(t), R2(t), R3(t), ... ie. dogs can mate with different breeds of dog, therefore, it is capable of multiple reproductive mechanics (offsprings of mixed breeds)

But I am not done, the beauty of multiple R(t) leads to multiple S(t), where two different breeds of dogs can mate and reproduce a three kind, which is a S1(t), S2(t) and R(t) tree graph.

This is where you precious little inductive reasoning breaks apart. You see, multiple cross breeding does not require two mixed dog of same breed to reproduce a mix dog of that breed. Since every species in the universe is a mix breed of some kind, chicken egg does not require a chicken to reproduce.
Sandro Magi said…
I quote from a definition of species, "A species is often defined as a group of organisms capable of interbreeding and producing fertile offspring."

R1(n), R2(n), ... are not needed since the S(n) encompasses the set of animals that can interbreed, ie. a species. After all, a species does not have multiple reproductive mechanisms, just one R(n), to the best of our knowledge.
Tian Mu Liu said…
Interspecific hybrids are scientifically possible
Sandro Magi said…
I don't see how the possibility of inter-species reproduction refutes the conclusion that a species precedes its reproduction mechanism. If anything, it seems to support my conclusion.
Tian Mu Liu said…
Interspecific hybrids are hybrids between different species within the same genus, the possibility of cross-species breeding reintroduce multiple S(t).

Also, assuming your original conclusion S(t) -> R(t) -> S(t+1) -> R(t+1) -> (...) is right. At t=0, S(0) is the ancestor of all species. As evolution progress, the species evolve into other species. S(0) -> R(0) -> S(1) -> R(1) -> (...). Since there is single state of S(t) and R(t) as you claim, there should exist only one child species for one parent species. However, phylogenetic tree implies different species could have a common ancestor (multiple child species for one parent species). Your assumption of single S(t) and R(t) is invalid because it contradicts theory of evolution.
Sandro Magi said…
Since there is single state of S(t) and R(t) as you claim, there should exist only one child species for one parent species.I claimed no such thing. The argument requires only that there exists a one-to-one mapping between species and the natural numbers. If you insist on numbering the entire speciation tree, a level-order or pre-order traversal of the tree suffices.

In any case, the argument does not depend on numbering the entire speciation tree, it depends only on numbering the path between species j and k, where k is a descendant of j.

As for multiple parent species, this too is irrelevant. For sexual reproduction, we need only consider the female of the species in the relation. The equations are:

1. S(n) -> R(n)
2. R(n) -> S(n)
3. R(n) -> S(n+1)
4. S(0) (assumption: first life formed spontaneously)

The argument places no restrictions on how equation #3 comes about, either by species inter-breeding, intra-breeding, mutation or otherwise. It's irrelevant. The first egg-laying species could have been formed from two distinct microscopic multicellular species, or by recombination from horizontal gene transfer, it doesn't change the fact that the first egg-laying species preceded the first egg, and the first life form preceded its reproductive mechanism.

The base case is all that matters to establish the conclusion from the recursive equations, and to the best of our knowledge, the base case is that the species formed first, and consequently, the chicken came before the egg.
Tian Mu Liu said…
Hmm... Now I think of it, first egg-laying species came from an egg.

Thanks to modern genetic science, we can now be sure that the egg came first. This is because reproductive mutations separating a new species from its progenitor generally occur in reproductive rather than somatic DNA and are thus expressed in differences between successive generations, but not in the parent organisms themselves.
reference: http://www.megafoundation.org/CTMU/Articles/Which.html
Sandro Magi said…
Now I think of it, first egg-laying species came from an egg.Logically impossible, since the first egg-laying species by definition is the first species which can lay eggs, so it cannot itself have been hatched from an egg.

This is because reproductive mutations separating a new species from its progenitor generally occur in reproductive rather than somatic DNA and are thus expressed in differences between successive generations, but not in the parent organisms themselves.Yes, and this is reflected in the equations between S and R, specifically equation 3.

Once again, you are assuming a definition of "chicken egg" that is not consistent with the recursive equations. You are free to use that definition in conversation, but you cannot derive a conclusion to the chicken-egg paradox from that definition because you would be assuming the conclusion.

The meaning of "egg" for the purposes of the paradox must be derived from the equations, which are formal and not ambiguous like the English language.
Tian Mu Liu said…
I do not know to make this more clear. There are multiple R(t) for S(t)! Take a look at phylogenetic tree, in order for phylogenetic tree to exist, a common ancestor must have multiple reproductive mechanics to evolve into multiple species.

Again, "reproductive mutations separating a new species from its progenitor generally occur in reproductive rather than somatic DNA". It means during the reproduction, a species can introduce another species other than its own. And since, mutation during cell-division is insignificant to introduce a new species, the first existence of a species is always in "egg" form.
Sandro Magi said…
I don't know how to make this more clear either. S(n) having multiple R(n) is irrelevant. Any given species' has a linear path via its maternal ancestors. Each node on this path is assigned a natural number n. The recursive equations then imply that the species precedes its egg.

It means during the reproduction, a species can introduce another species other than its own.Yes, and as I said, this is equation 3, R(n) -> S(n+1), ie. the species n gives birth to species n+1. You're not saying anything that I have not already covered, and the conclusion still holds.

And since, mutation during cell-division is insignificant to introduce a new species, the first existence of a species is always in "egg" form.Only if you define "egg" to mean its single-cell form, ie. a zygote, which is irrelevant to the chicken-egg paradox. If so, you are confusing a question of logic with semantic issues of biology. There is no paradox if we equate egg to zygote, as a zygote is obviously always first given single-celled organisms must precede multicellular organisms.

This is not the meaning of "egg" in the chicken-egg paradox however, and attempting to redefine the problem arbitrarily just so you can reach a preconceived conclusion is dishonest.
Tian Mu Liu said…
Great, you just admitted zygote of a chicken came before a chicken. Since zygote of a chicken grows to be a chicken egg before it becomes a chicken, chicken egg came before chicken.
Sandro Magi said…
As I said, Zygote != Egg, as specified in the paradox. Feel free to play word games it you like, but it doesn't change the result.
Tian Mu Liu said…
For a multiple R(t) universe:

1. S(n) -> Rm(n), Rm+1(n), ... {m>=n}
a species can reproduce different species other than its own

2. Rm(n) -> S(m)
a new species is born by another species that has its reproductive mechanism

3. S(0) (assumption: first life formed spontaneously)

Rm(t) preceded S(m), thus a new species is only formed if there is another species that is capable to create a such mutate, and so on, ad infinitum.

Eventually, we reach chickens and chicken eggs, and the conclusion is simply, that another species must be able to produce a mutated egg (chicken egg) that became a chicken.
Sandro Magi said…
Rm(t) preceded S(m), thus a new species is only formed if there is another species that is capable to create a such mutate, and so on, ad infinitum.These are the equations you are really after:

1. S(n) -> R(n)
2. R(n) -> S(n)
3. R(n) -> S(m), where m in [n, n+1, ..., k]
4. S(0) (first life formed spontaneously)

And this does not change any of the inferences I have already described, namely, the species came first, S(0), and all speciation happens during the reproductive process of the progenitor to produce any new species.

The first egg-laying species thus preceded eggs.
Tian Mu Liu said…
You are using multiple S(t) system instead of multiple R(t) system I described. You are assuming a species with only its own reproductive mechanism can reproduce other species. But I assume a species can have multiple reproductive mexhanisms that reproduce new species that associated with that reproductive mechanism.

It is time to clarify the definition of reproductive mechanism. You used reproductive mechanism as a generalized form of chicken egg. Since we assumed chicken egg as an egg that will hatch a chicken, reproductive mechanism is the zygote of a species that would eventually mature into that species. Do you agree?

Keep in mind, if you do not agree. Even if you proof R came before S, you would not be able to conclude chicken egg came before chicken as R is not a generalized form of a chicken egg.

If you agree with the above definition, then it is easy to see there cannot be multiple species, S(t) from single R(t) as chicken egg can only hatch chicken, and zygote of an species can only mature into that species.

Therefore, your system with multiple S(t) is not a proper framework for our universe.
Tian Mu Liu said…
Typo correction:
Keep in mind, if you do not agree. Even if you proof S came before R, you would not be able to conclude chicken came before chicken egg as R is not a generalized form of a chicken egg.
Sandro Magi said…
You are assuming a species with only its own reproductive mechanism can reproduce other species.

That's because a species has only a single reproductive mechanism, and this mechanism must be able to produce different species. This is indisputable biological fact. A human female won't spontaneously be able to lay an egg, she will produce offspring only via fertilization, pregnancy and childbirth. In what way does a human female have multiple natural reproductive mechanisms?

Since we assumed chicken egg as an egg that will hatch a chicken

No, the definition of "egg" is a conclusion, not an assumption of my argument.

reproductive mechanism is the zygote of a species that would eventually mature into that species. Do you agree?

Even if I did agree, and we drop down to reasoning about cellular mechanics, the species is formed before the egg, as the species is fully defined at fertilization-time when it becomes a zygote. This precedes the formation of the egg shell, so again, the chicken comes before the egg.

Do not confuse the use of "fertilized egg" as a synonym for zygote to mean "egg" as used in this argument. A zygote in no way corresponds to an egg in the sense used in here. The macroscopic egg is formed by the mother of the species, not the zygote itself.

The only way to attack my argument, is to argue that R does not precisely equate to a macroscopic egg. Let's break this down more precisely:

G(n): single-cell of species n formed
H(n): organism of species n born
I(n): organism of species n reproduces

1. G(n) -> H(n)
2. H(n) -> I(n)
3. I(n) -> G(m), where m in [n, n+1, ..., k]
4. G(0), spontaneous cell formation

This more precisely captures what's occurring at the cellular level, and we now have the recursive relation:

...G->H->I->G...

Rule H(n) describes precisely laying and hatching from an egg, where species n lays eggs.

Now let's define:

S(n): G(n)
R(n): H(n)->I(n)

Thus we have exactly my original argument, abstracting over the details of birth and reproduction.

The conclusion remains the same: the chicken came first.

You seem to be equating R(n) with G(n), which doesn't make sense IMO. None of the other rules match properly with the concept of a "species", so S(n)=G(n).

Popular posts from this blog

async.h - asynchronous, stackless subroutines in C

The async/await idiom is becoming increasingly popular. The first widely used language to include it was C#, and it has now spread into JavaScript and Rust. Now C/C++ programmers don't have to feel left out, because async.h is a header-only library that brings async/await to C! Features: It's 100% portable C. It requires very little state (2 bytes). It's not dependent on an OS. It's a bit simpler to understand than protothreads because the async state is caller-saved rather than callee-saved. #include "async.h" struct async pt; struct timer timer; async example(struct async *pt) { async_begin(pt); while(1) { if(initiate_io()) { timer_start(&timer); await(io_completed() || timer_expired(&timer)); read_data(); } } async_end; } This library is basically a modified version of the idioms found in the Protothreads library by Adam Dunkels, so it's not truly ground bre

Building a Query DSL in C#

I recently built a REST API prototype where one of the endpoints accepted a string representing a filter to apply to a set of results. For instance, for entities with named properties "Foo" and "Bar", a string like "(Foo = 'some string') or (Bar > 99)" would filter out the results where either Bar is less than or equal to 99, or Foo is not "some string". This would translate pretty straightforwardly into a SQL query, but as a masochist I was set on using Google Datastore as the backend, which unfortunately has a limited filtering API : It does not support disjunctions, ie. "OR" clauses. It does not support filtering using inequalities on more than one property. It does not support a not-equal operation. So in this post, I will describe the design which achieves the following goals: A backend-agnostic querying API supporting arbitrary clauses, conjunctions ("AND"), and disjunctions ("OR"). Implemen

Easy Automatic Differentiation in C#

I've recently been researching optimization and automatic differentiation (AD) , and decided to take a crack at distilling its essence in C#. Note that automatic differentiation (AD) is different than numerical differentiation . Math.NET already provides excellent support for numerical differentiation . C# doesn't seem to have many options for automatic differentiation, consisting mainly of an F# library with an interop layer, or paid libraries . Neither of these are suitable for learning how AD works. So here's a simple C# implementation of AD that relies on only two things: C#'s operator overloading, and arrays to represent the derivatives, which I think makes it pretty easy to understand. It's not particularly efficient, but it's simple! See the "Optimizations" section at the end if you want a very efficient specialization of this technique. What is Automatic Differentiation? Simply put, automatic differentiation is a technique for calcu