I was reading about the concept of quine and in particolar of “reciprocal Quines” for example a Program $ A$ that output the code of a program $ B$ and vice versa, with the two being written in the same programming language.
Thinking of this particular case I have come to the conclusion that these two program must necessarily submit to certain properties. The first thing that came to my mind is the fact that they cannot have different cardinalities, the reason is easily understood: lets take the case that one of the two (lets say $ A$ ) has a $ \gt$ cardinality, so $ \mid A \mid\gt\mid B \mid$ .
Now we codify this example in a trivial way: $ A = 1111$ (|A|=4) and $ B = 111$ (|B|=3).
It is evident that $ A$ can produce the $ B$ code but the reverse cannot happen as $ B$ has fewer bits than $ A$ . The only way for the game to work is that the programs have the exact same length and all the practical examples I have seen online (through high-level programming languages) seem to respect this “supposition” of mine.
A second thing I noticed is the fact that these two codes differ only by a short number of characters.
Am I making any mistakes in these considerations?
Is there a way to calculate the maximum number of difference characters that can exist between the two codes?
I would also appreciate if someone could indicate me some sources for the theoretical study of this particular case of quines, searching online I found only practical examples accompanied by brief explanations on the syntax of programming languages.