Collatz conjecture
Template:Unsolved The Collatz conjecture is a conjecture in mathematics that concerns a sequence defined as follows: start with any positive integer Template:Mvar. Then each term is obtained from the previous term as follows: if the previous term is even, the next term is one half the previous term. If the previous term is odd, the next term is 3 times the previous term plus 1. The conjecture is that no matter what value of Template:Mvar, the sequence will always reach 1.
The conjecture is named after Lothar Collatz, who introduced the idea in 1937, two years after receiving his doctorate.[1] It is also known as the Template:Math problem, the Template:Math conjecture, the Ulam conjecture (after Stanisław Ulam), Kakutani's problem (after Shizuo Kakutani), the Thwaites conjecture (after Sir Bryan Thwaites), Hasse's algorithm (after Helmut Hasse), or the Syracuse problem.[2]Template:Refn The sequence of numbers involved is sometimes referred to as the hailstone sequence or hailstone numbers (because the values are usually subject to multiple descents and ascents like hailstones in a cloud),[3][4] or as wondrous numbers.[5]
Paul Erdős said about the Collatz conjecture: "Mathematics may not be ready for such problems."[6] He also offered US$500 for its solution.[7] Jeffrey Lagarias in 2010 claimed that based only on known information about this problem, "this is an extraordinarily difficult problem, completely out of reach of present day mathematics."[8]
Statement of the problem



Consider the following operation on an arbitrary positive integer:
- If the number is even, divide it by two.
- If the number is odd, triple it and add one.
In modular arithmetic notation, define the function Template:Mvar as follows:
Now form a sequence by performing this operation repeatedly, beginning with any positive integer, and taking the result at each step as the input at the next.
In notation:
(that is: Template:Math is the value of Template:Mvar applied to Template:Mvar recursively Template:Mvar times; Template:Math).
The Collatz conjecture is: This process will eventually reach the number 1, regardless of which positive integer is chosen initially.
That smallest Template:Mvar such that Template:Math is called the total stopping time of Template:Mvar.[9] The conjecture asserts that every Template:Mvar has a well-defined total stopping time. If, for some Template:Mvar, such an Template:Mvar doesn't exist, we say that Template:Mvar has infinite total stopping time and the conjecture is false.
If the conjecture is false, it can only be because there is some starting number which gives rise to a sequence that does not contain 1. Such a sequence would either enter a repeating cycle that excludes 1, or increase without bound. No such sequence has been found.
Examples
For instance, starting with Template:Math, one gets the sequence 12, 6, 3, 10, 5, 16, 8, 4, 2, 1.
Template:Math, for example, takes longer to reach 1: 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
The sequence for Template:Math, listed and graphed below, takes 111 steps (41 steps through odd numbers, in large font), climbing to a high of 9232 before descending to 1.
- 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1 Template:OEIS

Numbers with a total stopping time longer than that of any smaller starting value form a sequence beginning with:
- 1, 2, 3, 6, 7, 9, 18, 25, 27, 54, 73, 97, 129, 171, 231, 313, 327, 649, 703, 871, 1161, 2223, 2463, 2919, 3711, 6171, ... Template:OEIS.
The starting values whose maximum trajectory point is greater than that of any smaller starting value are as follows:
- 1, 2, 3, 7, 15, 27, 255, 447, 639, 703, 1819, 4255, 4591, 9663, 20895, 26623, 31911, 60975, 77671, 113383, 138367, 159487, 270271, 665215, 704511, ... Template:OEIS
Number of steps for Template:Mvar to reach 1 are
- 0, 1, 7, 2, 5, 8, 16, 3, 19, 6, 14, 9, 9, 17, 17, 4, 12, 20, 20, 7, 7, 15, 15, 10, 23, 10, 111, 18, 18, 18, 106, 5, 26, 13, 13, 21, 21, 21, 34, 8, 109, 8, 29, 16, 16, 16, 104, 11, 24, 24, ... Template:OEIS
The longest progression for any initial starting number
- less than 10 is 9, which has 19 steps,
- less than 100 is 97, which has 118 steps,
- less than 1000 is 871, which has 178 steps,
- less than 104 is 6171, which has 261 steps,
- less than 105 is Template:Val, which has 350 steps,
- less than 106 is Template:Val, which has 524 steps,
- less than 107 is Template:Val, which has 685 steps,
- less than 108 is Template:Val, which has 949 steps,
- less than 109 is Template:Val, which has 986 steps,
- less than 1010 is Template:Val, which has 1132 steps,[10]
- less than 1011 is Template:Val, which has 1228 steps,
- less than 1012 is Template:Val, which has 1348 steps.
These numbers are the lowest ones with the indicated step count, but not necessarily the only ones below the given limit. As an example, Template:Val has 1132 steps, as does Template:Val.
The powers of two converge to one quickly because Template:Math is halved Template:Mvar times to reach 1, and is never increased.
Visualizations
-
Directed graph showing the orbits of small numbers under the Collatz map. The Collatz conjecture is equivalent to the statement that all paths eventually lead to 1.
-
Directed graph showing the orbits of the first 1000 numbers.
-
The Template:Mvar axis represents starting number, the Template:Mvar axis represents the highest number reached during the chain to 1. This plot shows a restricted Template:Mvar axis: some Template:Mvar values produce intermediates as high as Template:Val (for Template:Math)
Cycles
In this part, consider the "shortcut" form of the Collatz function
A cycle is a sequence Template:Math of distinct positive integers where Template:Math, Template:Math, ..., and Template:Math.
The only known cycle is Template:Math of length 2, called the trivial cycle.
Cycle length
The length of a non-trivial cycle is known to be at least Template:Val.[11] In fact, Eliahou (1993) proved that the period Template:Mvar of any non-trivial cycle is of the form
where Template:Mvar, Template:Mvar and Template:Mvar are non-negative integers, Template:Math and Template:Math. This result is based on the continued fraction expansion of Template:Math.
A similar reasoning that accounts for the recent verification of the conjecture up to Template:Val leads to the improved lower bound Template:Val (or Template:Val without the "shortcut").
Template:Mvar-cycles
A Template:Mvar-cycle is a cycle that can be partitioned into Template:Math contiguous subsequences: Template:Mvar increasing sequences of odd numbers alternating with Template:Mvar decreasing sequences of even numbers. For instance, if the cycle consists of a single increasing sequence of odd numbers followed by a decreasing sequence of even numbers, it is called a 1-cycle.[12]
Steiner (1977) proved that there is no 1-cycle other than the trivial Template:Math.[13] Simons (2004) used Steiner's method to prove that there is no 2-cycle.[14] Simons & de Weger (2005) extended this proof up to 68-cycles: there is no Template:Mvar-cycle up to Template:Math.[12] Beyond 68, this method gives upper bounds for the elements in such a cycle: for example, if there is a 75-cycle, then at least one element of the cycle is less than Template:Gaps.[12] Therefore, as exhaustive computer searches continue, larger cycles may be ruled out. To state the argument more intuitively: we need not look for cycles that have at most 68 trajectories, where each trajectory consists of consecutive ups followed by consecutive downs.
Supporting arguments
Although the conjecture has not been proven, most mathematicians who have looked into the problem think the conjecture is true because experimental evidence and heuristic arguments support it.
Experimental evidence
Template:Asof, the conjecture has been checked by computer for all starting values up to Template:Gaps.[15] All initial values tested so far eventually end in the repeating cycle Template:Math, which has only three terms. From this lower bound on the starting value, a lower bound can also be obtained for the number of terms a repeating cycle other than Template:Math must have.[16] When this relationship was established in 1981, the formula gave a lower bound of Template:Val terms.[16]
This computer evidence is not a proof that the conjecture is true. As shown in the cases of the Pólya conjecture, the Mertens conjecture, and Skewes' number, sometimes a conjecture's only counterexamples are found when using very large numbers.
A probabilistic heuristic
If one considers only the odd numbers in the sequence generated by the Collatz process, then each odd number is on average Template:Sfrac of the previous one.Template:Refn (More precisely, the geometric mean of the ratios of outcomes is Template:Sfrac.) This yields a heuristic argument that every Hailstone sequence should decrease in the long run, although this is not evidence against other cycles, only against divergence. The argument is not a proof because it assumes that Hailstone sequences are assembled from uncorrelated probabilistic events. (It does rigorously establish that the 2-adic extension of the Collatz process has two division steps for every multiplication step for almost all 2-adic starting values.)
And even if the probabilistic reasoning were rigorous, this would still imply only that the conjecture is almost surely true for any given integer, which does not necessarily imply that it is true for all integers.
Terry Tao (2019) proved using probability that almost all Collatz orbits attain almost bounded values.[17][18]
Rigorous bounds
In a computer-aided proof, Krasikov and Lagarias showed that the number of integers in the interval Template:Math that eventually reach 1 is at least equal to Template:Math for all sufficiently large Template:Mvar.[19]
Other formulations of the conjecture
In reverse

There is another approach to prove the conjecture, which considers the bottom-up method of growing the so-called Collatz graph. The Collatz graph is a graph defined by the inverse relation
So, instead of proving that all positive integers eventually lead to 1, we can try to prove that 1 leads backwards to all positive integers. For any integer Template:Mvar, Template:Math iff Template:Math. Equivalently, Template:Math iff Template:Math. Conjecturally, this inverse relation forms a tree except for the 1–2–4 loop (the inverse of the 4–2–1 loop of the unaltered function Template:Mvar defined in the Statement of the problem section of this article).
When the relation Template:Math of the function Template:Mvar is replaced by the common substitute "shortcut" relation Template:Math, the Collatz graph is defined by the inverse relation,
For any integer Template:Mvar, Template:Math iff Template:Math. Equivalently, Template:Math iff Template:Math. Conjecturally, this inverse relation forms a tree except for a 1–2 loop (the inverse of the 1–2 loop of the function f(n) revised as indicated above).
Alternatively, replace the Template:Math with Template:Math where Template:Math and Template:Math is the highest power of 2 that divides Template:Math (with no remainder). The resulting function Template:Mvar maps from odd numbers to odd numbers. Now suppose that for some odd number Template:Mvar, applying this operation Template:Mvar times yields the number 1 (that is, Template:Math). Then in binary, the number Template:Mvar can be written as the concatenation of strings Template:Math where each Template:Math is a finite and contiguous extract from the representation of Template:Math.[20] The representation of Template:Mvar therefore holds the repetends of Template:Math, where each repetend is optionally rotated and then replicated up to a finite number of bits. It is only in binary that this occurs.[21] Conjecturally, every binary string Template:Mvar that ends with a '1' can be reached by a representation of this form (where we may add or delete leading '0's to Template:Mvar).
As an abstract machine that computes in base two
Repeated applications of the Collatz function can be represented as an abstract machine that handles strings of bits. The machine will perform the following three steps on any odd number until only one "1" remains:
- Append 1 to the (right) end of the number in binary (giving Template:Math);
- Add this to the original number by binary addition (giving Template:Math);
- Remove all trailing "0"s (i.e. repeatedly divide by two until the result is odd).
This prescription is plainly equivalent to computing a Hailstone sequence in base two.
Example
The starting number 7 is written in base two as 111. The resulting Collatz sequence is:
111 1111 1011010111 100010100011 11010011011 1010001011 10000
As a parity sequence
For this section, consider the Collatz function in the slightly modified form
This can be done because when Template:Mvar is odd, Template:Math is always even.
If Template:Math is the parity of a number, that is Template:Math and Template:Math, then we can define the Collatz parity sequence (or parity vector) for a number Template:Mvar as Template:Math, where Template:Math, and Template:Math.
Which operation is performed, Template:Math or Template:Math, depends on the parity. The parity sequence is the same as the sequence of operations.
Using this form for Template:Math, it can be shown that the parity sequences for two numbers Template:Mvar and Template:Mvar will agree in the first Template:Mvar terms if and only if Template:Mvar and Template:Mvar are equivalent modulo Template:Math. This implies that every number is uniquely identified by its parity sequence, and moreover that if there are multiple Hailstone cycles, then their corresponding parity cycles must be different.[9][22]
Applying the Template:Mvar function Template:Mvar times to the number Template:Math will give the result Template:Math, where Template:Mvar is the result of applying the Template:Mvar function Template:Mvar times to Template:Mvar, and Template:Mvar is how many increases were encountered during that sequence (e.g. for Template:Math there are 3 increases as 1 iterates to 2, 1, 2, 1, and finally to 2 so the result is Template:Math; for Template:Math there is only 1 increase as 1 rises to 2 and falls to 1 so the result is Template:Math). When Template:Mvar is Template:Math then there will be Template:Mvar rises and the result will be Template:Math. The factor of 3 multiplying Template:Mvar is independent of the value of Template:Mvar; it depends only on the behavior of Template:Mvar. This allows one to predict that certain forms of numbers will always lead to a smaller number after a certain number of iterations, e.g. Template:Math becomes Template:Math after two applications of Template:Mvar and Template:Math becomes Template:Math after 4 applications of Template:Mvar. Whether those smaller numbers continue to 1, however, depends on the value of Template:Mvar.
As a tag system
For the Collatz function in the form
Hailstone sequences can be computed by the extremely simple 2-tag system with production rules
In this system, the positive integer Template:Mvar is represented by a string of Template:Mvar, and iteration of the tag operation halts on any word of length less than 2. (Adapted from De Mol.)
The Collatz conjecture equivalently states that this tag system, with an arbitrary finite string of Template:Mvar as the initial word, eventually halts (see Tag system#Example: Computation of Collatz sequences for a worked example).
Extensions to larger domains
Iterating on all integers
An extension to the Collatz conjecture is to include all integers, not just positive integers. Leaving aside the cycle 0 → 0 which cannot be entered from outside, there are a total of 4 known cycles, which all nonzero integers seem to eventually fall into under iteration of Template:Mvar. These cycles are listed here, starting with the well-known cycle for positive Template:Mvar:
Odd values are listed in large bold. Each cycle is listed with its member of least absolute value (which is always odd) first.
Cycle | Odd-value cycle length | Full cycle length |
---|---|---|
1 → 4 → 2 → 1 ... | 1 | 3 |
−1 → −2 → −1 ... | 1 | 2 |
−5 → −14 → −7 → −20 → −10 → −5 ... | 2 | 5 |
−17 → −50 → −25 → −74 → −37 → −110 → −55 → −164 → −82 → −41 → −122 → −61 → −182 → −91 → −272 → −136 → −68 → −34 → −17 ... | 7 | 18 |
The generalized Collatz conjecture is the assertion that every integer, under iteration by Template:Mvar, eventually falls into one of the four cycles above or the cycle 0 → 0. The 0 → 0 cycle is often regarded as "trivial" by the argument, as it is only included for the sake of completeness.
Iterating on rationals with odd denominators
The Collatz map can be extended to (positive or negative) rational numbers which have odd denominators when written in lowest terms. The number is taken to be odd or even according to whether its numerator is odd or even. A closely related fact is that the Collatz map extends to the ring of 2-adic integers, which contains the ring of rationals with odd denominators as a subring.
When using the "shortcut" definition of the Collatz map, it is known that any periodic parity sequence is generated by exactly one rational.[23] Conversely, it is conjectured that every rational with an odd denominator has an eventually cyclic parity sequence (Periodicity Conjecture [9]).
If a parity cycle has length Template:Mvar and includes odd numbers exactly Template:Mvar times at indices Template:Math, then the unique rational which generates immediately and periodically this parity cycle is Template:NumBlk
For example, the parity cycle Template:Nowrap has length 7 and four odd terms at indices 0, 2, 3, and 6. It is repeatedly generated by the fraction
as the latter leads to the rational cycle
- .
Any cyclic permutation of Template:Nowrap is associated to one of the above fractions. For instance, the cycle Template:Nowrap is produced by the fraction
- .
For a one-to-one correspondence, a parity cycle should be irreducible, i.e., not partitionable into identical sub-cycles. As an illustration of this, the parity cycle Template:Nowrap and its sub-cycle Template:Nowrap are associated to the same fraction Template:Sfrac when reduced to lowest terms.
In this context, assuming the validity of the Collatz conjecture implies that Template:Nowrap and Template:Nowrap are the only parity cycles generated by positive whole numbers (1 and 2, respectively).
If the odd denominator Template:Mvar of a rational is not a multiple of 3, then all the iterates have the same denominator and the sequence of numerators can be obtained by applying the "Template:Math" generalization of the Collatz function
2-adic extension
The function
is well-defined on the ring Template:Math of 2-adic integers, where it is continuous and measure-preserving with respect to the 2-adic measure. Moreover, its dynamics is known to be ergodic.[9]
Define the parity vector function Template:Mvar acting on Template:Math as
- .
The function Template:Mvar is a 2-adic isometry.[24] Consequently, every infinite parity sequence occurs for exactly one 2-adic integer, so that almost all trajectories are acyclic in .
An equivalent formulation of the Collatz conjecture is that
Iterating on real or complex numbersTemplate:Anchor
The Collatz map can be viewed as the restriction to the integers of the smooth real and complex map
If the standard Collatz map defined above is optimized by replacing the relation Template:Math with the common substitute "shortcut" relation Template:Math, it can be viewed as the restriction to the integers of the smooth real and complex map

The point of view of iteration on the real line was investigated by Template:Named ref. He showed that the conjecture does not hold for real numbers since there are infinitely many fixed points, as well as orbits escaping monotonically to infinity. He also showed that there is, at least, another attracting cycle: 1.1925 → 2.1386.
On the complex plane, it was investigated by Template:Named ref Most points of the plane diverge to infinity, as seen in blue on the illustration below. The boundary between diverging and non-diverging regions show a fractal pattern called the "Collatz fractal".
Optimizations
Time–space tradeoff
The section As a parity sequence above gives a way to speed up simulation of the sequence. To jump ahead Template:Mvar steps on each iteration (using the Template:Mvar function from that section), break up the current number into two parts, Template:Mvar (the Template:Mvar least significant bits, interpreted as an integer), and Template:Mvar (the rest of the bits as an integer). The result of jumping ahead Template:Mvar steps can be found as:
The Template:Mvar (or better Template:Math) and Template:Mvar arrays are precalculated for all possible Template:Mvar-bit numbers Template:Mvar, where Template:Math is the result of applying the Template:Mvar function Template:Mvar times to Template:Mvar, and Template:Math is the number of odd numbers encountered on the way.[25] For example, if Template:Mvar, one can jump ahead 5 steps on each iteration by separating out the 5 least significant bits of a number and using:
- Template:Math(0...31) = {0,3,2,2,2,2,2,4,1,4,1,3,2,2,3,4,1,2,3,3,1,1,3,3,2,3,2,4,3,3,4,5}
- Template:Math(0...31) = {0,2,1,1,2,2,2,20,1,26,1,10,4,4,13,40,2,5,17,17,2,2,20,20,8,22,8,71,26,26,80,242}.
This requires Template:Math precomputation and storage to speed up the resulting calculation by a factor of Template:Mvar, a space–time tradeoff.
Modular restrictions
For the special purpose of searching for a counterexample to the Collatz conjecture, this precomputation leads to an even more important acceleration, used by Tomás Oliveira e Silva in his computational confirmations of the Collatz conjecture up to large values of Template:Mvar. If, for some given Template:Mvar and Template:Mvar, the inequality
holds for all Template:Mvar, then the first counterexample, if it exists, cannot be Template:Mvar modulo Template:Math.[16] For instance, the first counterexample must be odd because Template:Math, smaller than Template:Math; and it must be 3 mod 4 because Template:Math, smaller than Template:Math. For each starting value Template:Mvar which is not a counterexample to the Collatz conjecture, there is a Template:Mvar for which such an inequality holds, so checking the Collatz conjecture for one starting value is as good as checking an entire congruence class. As Template:Mvar increases, the search only needs to check those residues Template:Mvar that are not eliminated by lower values of Template:Mvar. Only an exponentially small fraction of the residues survive.Template:Refn For example, the only surviving residues mod 32 are 7, 15, 27, and 31.
Syracuse function
If Template:Mvar is an odd integer, then Template:Math is even, so Template:Math with Template:Math odd and Template:Math. The Syracuse function is the function Template:Mvar from the set Template:Mvar of odd integers into itself, for which Template:Math Template:OEIS.
Some properties of the Syracuse function are:
- For all Template:Math, Template:Math. (Because Template:Math.)
- In more generality: For all Template:Math and odd Template:Mvar, Template:Math. (Here Template:Math is function iteration notation.)
- For all odd Template:Mvar, Template:Math
The Collatz conjecture is equivalent to the statement that, for all Template:Mvar in Template:Mvar, there exists an integer Template:Math such that Template:Math.
Undecidable generalizations
In 1972, John Horton Conway proved that a natural generalization of the Collatz problem is algorithmically undecidable.[26]
Specifically, he considered functions of the form
where Template:Math are rational numbers which are so chosen that Template:Math is always an integer.
The standard Collatz function is given by Template:Math, Template:Math, Template:Math, Template:Math, Template:Math. Conway proved that the problem:
- Given Template:Mvar and Template:Mvar, does the sequence of iterates Template:Math reach 1?
is undecidable, by representing the halting problem in this way.
Closer to the Collatz problem is the following universally quantified problem:
- Given Template:Mvar does the sequence of iterates Template:Math reach 1, for all Template:Math?
Modifying the condition in this way can make a problem either harder or easier to solve (intuitively, it is harder to justify a positive answer but might be easier to justify a negative one). Kurtz and Simon[27] proved that the above problem is, in fact, undecidable and even higher in the arithmetical hierarchy, specifically Template:Math-complete. This hardness result holds even if one restricts the class of functions Template:Mvar by fixing the modulus Template:Mvar to 6480.[28]
See also
- [[3x + 1 semigroup|Template:Math semigroup]]
- Arithmetic dynamics
- Modular arithmetic
- Residue-class-wise affine group
Further reading
- The Ultimate Challenge: the 3x + 1 problem:
- This volume,[29] edited by Jeffrey Lagarias and published by the American Mathematical Society, is a compendium of information on the Collatz conjecture, methods of approaching it and generalizations. It includes two survey papers by the editor and five by other authors, concerning the history of the problem, generalizations, statistical approaches and results from the theory of computation. It also includes reprints of early papers on the subject (including an entry by Lothar Collatz).
References
External links
- Keith Matthews' 3x + 1 page: Review of progress, plus various programs.
- Distributed computing (BOINC) project that verifies the Collatz conjecture for larger values.
- An ongoing distributed computing project by Eric Roosendaal verifies the Collatz conjecture for larger and larger values.
- Another ongoing distributed computing project by Tomás Oliveira e Silva continues to verify the Collatz conjecture (with fewer statistics than Eric Roosendaal's page but with further progress made).
- Template:MathWorld
- Template:PlanetMath.
- Template:Cite web
- Mathematicians Are So Close to Cracking This 82-Year-Old Riddle
- ↑ Template:Cite web
- ↑ Template:Cite book
- ↑ Template:Cite book
- ↑ Template:Cite web
- ↑ Template:Cite book
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedGuy (2004)
- ↑ Template:Cite journal By this Erdos means that there aren't powerful tools for manipulating such objects.
- ↑ Template:Cite book
- ↑ 9.0 9.1 9.2 9.3 Cite error: Invalid
<ref>
tag; no text was provided for refs namedLagarias (1985)
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ 12.0 12.1 12.2 Cite error: Invalid
<ref>
tag; no text was provided for refs namedSimons & de Weger (2003)
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedSteiner (1977)
- ↑ Template:Cite journal
- ↑ Template:Cite web
- ↑ 16.0 16.1 16.2 Template:Cite web
- ↑ Template:Cite arXiv
- ↑ Template:Cite web
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ Template:Citation
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Cite book As PDF
- ↑ Template:Citation
- ↑ Template:Cite book