<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=Lean_theorem_prover%2FExplainers%2FWhat_the_axioms_are</id>
	<title>Lean theorem prover/Explainers/What the axioms are - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=Lean_theorem_prover%2FExplainers%2FWhat_the_axioms_are"/>
	<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_the_axioms_are&amp;action=history"/>
	<updated>2026-10-21T06:37:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_the_axioms_are&amp;diff=6757&amp;oldid=prev</id>
		<title>PMA Publisher: Published from the Principia Machina source</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_the_axioms_are&amp;diff=6757&amp;oldid=prev"/>
		<updated>2026-10-15T19:34:25Z</updated>

		<summary type="html">&lt;p&gt;Published from the Principia Machina source&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:34, 15 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:What the axioms are}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:What the axioms are}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Technical|Lean theorem prover/Foundations/The three axioms|Lean theorem prover/Foundations/Classical logic from choice|Lean theorem prover/Foundations/Quotient types}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Technical|Lean theorem prover/Foundations/The three axioms|Lean theorem prover/Foundations/Classical logic from choice|Lean theorem prover/Foundations/Quotient types}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Lean theorem prover map}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every proof Lean accepts rests on two things: the rules of Lean&amp;#039;s logic, and&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every proof Lean accepts rests on two things: the rules of Lean&amp;#039;s logic, and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pma_cutover_20261020t051351z-soft_:diff:1.41:old-6550:rev-6757:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PMA Publisher</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_the_axioms_are&amp;diff=6550&amp;oldid=prev</id>
		<title>PMA Publisher: Published from the Principia Machina source</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_the_axioms_are&amp;diff=6550&amp;oldid=prev"/>
		<updated>2026-10-14T18:00:48Z</updated>

		<summary type="html">&lt;p&gt;Published from the Principia Machina source&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:What the axioms are}}&lt;br /&gt;
{{Technical|Lean theorem prover/Foundations/The three axioms|Lean theorem prover/Foundations/Classical logic from choice|Lean theorem prover/Foundations/Quotient types}}&lt;br /&gt;
&lt;br /&gt;
Every proof Lean accepts rests on two things: the rules of Lean&amp;#039;s logic, and&lt;br /&gt;
whatever &amp;#039;&amp;#039;&amp;#039;axioms&amp;#039;&amp;#039;&amp;#039; the proof uses, statements assumed without proof. Lean&lt;br /&gt;
itself provides three.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt; This page says what each one says in plain&lt;br /&gt;
words, why the third makes Lean&amp;#039;s logic the classical logic most mathematicians&lt;br /&gt;
use, and how to ask Lean which axioms a given theorem depends on.&lt;br /&gt;
&lt;br /&gt;
== Rules and axioms ==&lt;br /&gt;
&lt;br /&gt;
The rules of Lean&amp;#039;s logic say how types, functions and inductive definitions&lt;br /&gt;
work, and how proofs are built from them. Much can be proved with these rules&lt;br /&gt;
alone, with no axioms at all, as the example at the end of this page shows.&lt;br /&gt;
&lt;br /&gt;
An &amp;#039;&amp;#039;&amp;#039;axiom&amp;#039;&amp;#039;&amp;#039; is something more. In Lean it is a new constant of a given type,&lt;br /&gt;
simply postulated. When the type is a proposition, the axiom is an assumed proof of&lt;br /&gt;
it.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot;&amp;gt;The Lean Developers, &amp;quot;Axioms&amp;quot;, &amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, for Lean 4.35.0, chapter 8. [https://lean-lang.org/doc/reference/4.35.0/Axioms/ lean-lang.org/doc/reference/4.35.0/Axioms/] (accessed 13 October 2026).&amp;lt;/ref&amp;gt; That makes axioms dangerous. Lean cannot check that an&lt;br /&gt;
axiom is consistent with the rest of the logic, and an axiom that is false lets&lt;br /&gt;
every statement be proved. Any proof that relies on an axiom is only as good as the&lt;br /&gt;
axiom.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this reason Lean keeps track of the axioms beneath every theorem, so that they&lt;br /&gt;
can be audited.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt; And the three that Lean provides are&lt;br /&gt;
well studied; Lean&amp;#039;s reference manual describes them as known to be&lt;br /&gt;
consistent.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Propositional extensionality ==&lt;br /&gt;
&lt;br /&gt;
The first axiom, &amp;#039;&amp;#039;&amp;#039;propositional extensionality&amp;#039;&amp;#039;&amp;#039; (Lean&amp;#039;s name is&lt;br /&gt;
&amp;lt;code&amp;gt;propext&amp;lt;/code&amp;gt;), says: &amp;#039;&amp;#039;&amp;#039;if two propositions imply each other, they are&lt;br /&gt;
equal&amp;#039;&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot;&amp;gt;Jeremy Avigad, Leonardo de Moura, Soonho Kong and Sebastian Ullrich, with contributions from the Lean Community, &amp;#039;&amp;#039;Theorem Proving in Lean 4&amp;#039;&amp;#039;, chapter 12, &amp;quot;Axioms and Computation&amp;quot;, online book for Lean 4.33.0. [https://lean-lang.org/theorem_proving_in_lean4/Axioms-and-Computation/ lean-lang.org/theorem_proving_in_lean4/Axioms-and-Computation/] (accessed 13 October 2026).&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In plain words, a proposition is identified by when it is true, not by how it is&lt;br /&gt;
worded. &amp;quot;&amp;#039;&amp;#039;p&amp;#039;&amp;#039; and true&amp;quot; holds in exactly the cases where &amp;#039;&amp;#039;p&amp;#039;&amp;#039; holds, so by this&lt;br /&gt;
axiom it is the same proposition as &amp;#039;&amp;#039;p&amp;#039;&amp;#039;, and one may be replaced by the other&lt;br /&gt;
anywhere. This fits the reading of a proposition as a type that is either empty,&lt;br /&gt;
when it is false, or has a single element, when it is true.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
It is also acceptable to constructive mathematicians.&amp;lt;ref name=&amp;quot;ref-props&amp;quot;&amp;gt;The Lean Developers, &amp;quot;Propositions&amp;quot;, &amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, for Lean 4.35.0, section 4.2, entry for &amp;lt;code&amp;gt;propext&amp;lt;/code&amp;gt;. [https://lean-lang.org/doc/reference/4.35.0/The-Type-System/Propositions/ lean-lang.org/doc/reference/4.35.0/The-Type-System/Propositions/] (accessed 13 October 2026).&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quotient soundness ==&lt;br /&gt;
&lt;br /&gt;
The second axiom concerns &amp;#039;&amp;#039;&amp;#039;quotients&amp;#039;&amp;#039;&amp;#039;. A quotient is a new type made from an&lt;br /&gt;
old one by declaring some of its values to count as the same. The fractions 1/2&lt;br /&gt;
and 2/4 are different pairs of numbers but the same rational number; the numbers 3&lt;br /&gt;
and 10 are different, but the same when counting in sevens. The page on&lt;br /&gt;
[[Lean theorem prover/Foundations/Quotient types|quotient types]] treats the&lt;br /&gt;
construction.&lt;br /&gt;
&lt;br /&gt;
Lean&amp;#039;s logic provides the construction itself. The axiom, &amp;#039;&amp;#039;&amp;#039;quotient&lt;br /&gt;
soundness&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;Quot.sound&amp;lt;/code&amp;gt;), supplies the one fact that makes it a real&lt;br /&gt;
quotient: &amp;#039;&amp;#039;&amp;#039;values declared to count as the same become equal in the&lt;br /&gt;
quotient&amp;#039;&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A useful consequence follows from it: &amp;#039;&amp;#039;&amp;#039;function extensionality&amp;#039;&amp;#039;&amp;#039;, the principle&lt;br /&gt;
that two functions giving equal results on every input are equal. In Lean this is a&lt;br /&gt;
theorem proved from quotients, not a separate axiom.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Choice ==&lt;br /&gt;
&lt;br /&gt;
The third axiom, &amp;#039;&amp;#039;&amp;#039;choice&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;Classical.choice&amp;lt;/code&amp;gt;), says: &amp;#039;&amp;#039;&amp;#039;from the&lt;br /&gt;
bare knowledge that a type has at least one value, one may obtain a value of&lt;br /&gt;
it&amp;#039;&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In plain words: if you know that something exists, you may name one, without&lt;br /&gt;
saying how to find it. Mathematicians use this freely. For a program it is&lt;br /&gt;
strange, because the knowledge that something exists, being a proof, carries no&lt;br /&gt;
information about where to look. The authors of &amp;#039;&amp;#039;Theorem Proving in Lean 4&amp;#039;&amp;#039;&lt;br /&gt;
describe choice as entirely at odds with a computational reading, and Lean&lt;br /&gt;
requires any definition that uses it to produce data to be marked&lt;br /&gt;
&amp;lt;code&amp;gt;noncomputable&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Why choice makes the logic classical ==&lt;br /&gt;
&lt;br /&gt;
Without axioms, Lean&amp;#039;s logic is &amp;#039;&amp;#039;&amp;#039;constructive&amp;#039;&amp;#039;&amp;#039;. To prove &amp;quot;&amp;#039;&amp;#039;P&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;quot; one&lt;br /&gt;
must supply a proof of one side and say which, as the page on&lt;br /&gt;
[[Lean theorem prover/Explainers/Propositions as types|propositions as types]]&lt;br /&gt;
describes. In such a logic the &amp;#039;&amp;#039;&amp;#039;law of the excluded middle&amp;#039;&amp;#039;&amp;#039;, &amp;quot;every proposition&lt;br /&gt;
is either true or false&amp;quot;, cannot be proved in general, because nothing tells us&lt;br /&gt;
which side holds.&lt;br /&gt;
&lt;br /&gt;
Choice changes this. A result known as Diaconescu&amp;#039;s theorem, after a paper by&lt;br /&gt;
Radu Diaconescu of 1975, shows that choice together with the two extensionality&lt;br /&gt;
principles proves the law of the excluded&lt;br /&gt;
middle.&amp;lt;ref name=&amp;quot;diaconescu1975&amp;quot;&amp;gt;Radu Diaconescu, &amp;quot;Axiom of choice and complementation&amp;quot;, &amp;#039;&amp;#039;Proceedings of the American Mathematical Society&amp;#039;&amp;#039; 51 (1), 1975, pp. 176–178. [https://doi.org/10.1090/S0002-9939-1975-0373893-X doi:10.1090/S0002-9939-1975-0373893-X]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt; Lean&amp;#039;s core library proves it that way, and with it&lt;br /&gt;
the familiar classical methods: proof by contradiction, proof by cases on whether&lt;br /&gt;
a statement holds, and the elimination of double negation.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
So the three axioms together give the classical logic that most of mathematics is&lt;br /&gt;
written in. The page on&lt;br /&gt;
[[Lean theorem prover/Foundations/Classical logic from choice|classical logic from choice]]&lt;br /&gt;
gives the proof.&lt;br /&gt;
&lt;br /&gt;
The price is paid in computation, not in correctness. Proofs are dropped when&lt;br /&gt;
Lean compiles a program, so a program whose proofs use any of the three axioms&lt;br /&gt;
still runs; what Lean cannot compile is a definition that obtains data from&lt;br /&gt;
choice.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt; When Lean&amp;#039;s kernel&lt;br /&gt;
evaluates an expression, the axioms can also stop the evaluation before it reaches&lt;br /&gt;
an answer.&amp;lt;ref name=&amp;quot;tpil-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Asking Lean ==&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;#print axioms&amp;lt;/code&amp;gt;, followed by the name of a theorem or&lt;br /&gt;
definition, lists every axiom it depends on, directly or through other theorems it&lt;br /&gt;
uses.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt; Here are three small theorems: that &amp;quot;p and q&amp;quot;&lt;br /&gt;
implies &amp;quot;q and p&amp;quot;; that &amp;quot;p and true&amp;quot; is the same proposition as &amp;#039;&amp;#039;p&amp;#039;&amp;#039;; and the law&lt;br /&gt;
of the excluded middle, taken from Lean&amp;#039;s core library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lean&amp;quot; style=&amp;quot;background: #f8f9fa; border: 1px solid #c8ccd1; padding: 0.6em; margin: 0.3em 0; font-size: 0.85em; line-height: 1.35; overflow-x: auto; white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
theorem swap (p q : Prop) : p ∧ q → q ∧ p := fun ⟨hp, hq⟩ =&amp;gt; ⟨hq, hp⟩&lt;br /&gt;
theorem same_prop (p : Prop) : (p ∧ True) = p := propext ⟨fun h =&amp;gt; h.1, fun h =&amp;gt; ⟨h, trivial⟩⟩&lt;br /&gt;
theorem either (p : Prop) : p ∨ ¬p := Classical.em p&lt;br /&gt;
#print axioms swap&lt;br /&gt;
#print axioms same_prop&lt;br /&gt;
#print axioms either&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lean 4.34.1 prints:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lean-output&amp;quot; style=&amp;quot;background: #ffffff; border: 1px dashed #a2a9b1; padding: 0.6em; margin: 0.3em 0; font-size: 0.85em; line-height: 1.35; overflow-x: auto; white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;swap&amp;#039; does not depend on any axioms&lt;br /&gt;
&amp;#039;same_prop&amp;#039; depends on axioms: [propext]&lt;br /&gt;
&amp;#039;either&amp;#039; depends on axioms: [propext, Classical.choice, Quot.sound]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first proof uses only the rules of the logic. The second uses propositional&lt;br /&gt;
extensionality, by name. The third uses all three axioms, because Lean&amp;#039;s&lt;br /&gt;
proof of the excluded middle goes through choice and the two extensionality&lt;br /&gt;
principles.&lt;br /&gt;
&lt;br /&gt;
== Other names that can appear ==&lt;br /&gt;
&lt;br /&gt;
The list printed by &amp;lt;code&amp;gt;#print axioms&amp;lt;/code&amp;gt; is the place to look for anything&lt;br /&gt;
that weakens a proof.&amp;lt;ref name=&amp;quot;ref-validating&amp;quot;&amp;gt;The Lean Developers, &amp;quot;Validating a Lean proof&amp;quot;, &amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, for Lean 4.35.0. [https://lean-lang.org/doc/reference/4.35.0/ValidatingProofs/ lean-lang.org/doc/reference/4.35.0/ValidatingProofs/] (accessed 13 October 2026).&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sorryAx&amp;lt;/code&amp;gt; appears when a proof, or a theorem it relies on, is unfinished. Lean lets a proof be left open with the word &amp;lt;code&amp;gt;sorry&amp;lt;/code&amp;gt; while work goes on; such a proof proves nothing.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt;&lt;br /&gt;
* A name containing &amp;lt;code&amp;gt;_native&amp;lt;/code&amp;gt; means that part of the proof was settled by running compiled code, so the result also trusts Lean&amp;#039;s compiler and not only Lean&amp;#039;s kernel.&amp;lt;ref name=&amp;quot;ref-axioms&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;ref-validating&amp;quot; /&amp;gt;&lt;br /&gt;
* Any other name is an axiom someone added, and the theorem holds only if that axiom is true.&amp;lt;ref name=&amp;quot;ref-validating&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lean&amp;#039;s reference manual recommends exactly this check: a finished theorem should&lt;br /&gt;
report no axioms beyond the three standard ones.&amp;lt;ref name=&amp;quot;ref-validating&amp;quot; /&amp;gt;&lt;br /&gt;
Principia Machina applies the same test to its own Lean sources; see&lt;br /&gt;
[[Principia Machina/Lean transition|the move to Lean]].&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
&lt;br /&gt;
* [[Lean theorem prover/Explainers/Two kinds of equality|Two kinds of equality]]: the two kinds of equality in Lean, and why the difference matters.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>PMA Publisher</name></author>
	</entry>
</feed>