<?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_has_to_be_trusted</id>
	<title>Lean theorem prover/Explainers/What has to be trusted - 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_has_to_be_trusted"/>
	<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=Lean_theorem_prover/Explainers/What_has_to_be_trusted&amp;action=history"/>
	<updated>2026-10-21T13:48:05Z</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_has_to_be_trusted&amp;diff=6768&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_has_to_be_trusted&amp;diff=6768&amp;oldid=prev"/>
		<updated>2026-10-15T19:34:39Z</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 has to be trusted}}&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 has to be trusted}}&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/System/The Lean kernel|Lean theorem prover/Foundations/Consistency and the metatheory}}&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/System/The Lean kernel|Lean theorem prover/Foundations/Consistency and the metatheory}}&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;A proof that Lean accepts is not a proof that rests on nothing. It rests on a short list of&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;A proof that Lean accepts is not a proof that rests on nothing. It rests on a short list of&lt;/div&gt;&lt;/td&gt;&lt;/tr&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_has_to_be_trusted&amp;diff=6561&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_has_to_be_trusted&amp;diff=6561&amp;oldid=prev"/>
		<updated>2026-10-14T18:00:54Z</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 has to be trusted}}&lt;br /&gt;
{{Technical|Lean theorem prover/System/The Lean kernel|Lean theorem prover/Foundations/Consistency and the metatheory}}&lt;br /&gt;
&lt;br /&gt;
A proof that Lean accepts is not a proof that rests on nothing. It rests on a short list of&lt;br /&gt;
things that Lean itself does not check. This page gives the list, shows what two features of Lean&lt;br /&gt;
add to it, and says how independent checkers make it shorter. The list cannot be made empty, and&lt;br /&gt;
the page ends with what remains.&lt;br /&gt;
&lt;br /&gt;
== Two questions, not one ==&lt;br /&gt;
&lt;br /&gt;
Pollack divided the problem of believing a machine-checked proof into two questions. The first&lt;br /&gt;
is whether the proof really is a derivation in the formal system it claims to use. That is a&lt;br /&gt;
formal question, and a machine can answer it. The second is whether the theorem it derives&lt;br /&gt;
means what is claimed for it. That is an informal question, because one side of the comparison&lt;br /&gt;
is a human idea, and no machine can answer it.&amp;lt;ref name=&amp;quot;pollack&amp;quot;&amp;gt;R. Pollack, &amp;quot;How to believe a machine-checked proof&amp;quot;, in Giovanni Sambin and Jan M. Smith (eds), &amp;#039;&amp;#039;Twenty Five Years of Constructive Type Theory&amp;#039;&amp;#039;, Oxford University Press, 1998, chapter 11 (from p. 205); first issued as BRICS Report RS-97-18, Aarhus University, 1997. [https://doi.org/10.7146/brics.v4i18.18945 doi:10.7146/brics.v4i18.18945]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lean&amp;#039;s own guide to validating a proof draws the same line. It separates &amp;quot;does the theorem have a&lt;br /&gt;
valid proof&amp;quot; from &amp;quot;what does the theorem statement mean&amp;quot;, and every check it describes speaks&lt;br /&gt;
only to the first.&amp;lt;ref name=&amp;quot;refval&amp;quot;&amp;gt;&amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, version for Lean 4.34.0, section &amp;quot;Validating a Lean Proof&amp;quot;. [https://lean-lang.org/doc/reference/4.34.0/ValidatingProofs/ lean-lang.org/doc/reference/4.34.0/ValidatingProofs], consulted 14 October 2026.&amp;lt;/ref&amp;gt;&lt;br /&gt;
The list below follows that division.&lt;br /&gt;
&lt;br /&gt;
== The list ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The Lean kernel is correct.&amp;#039;&amp;#039;&amp;#039; Every proof is checked by the Lean kernel (see&lt;br /&gt;
[[Lean theorem prover/Explainers/The small trusted core|the small trusted core]]). If it had a&lt;br /&gt;
fault, it could accept a proof that is not one. Such faults have been found and fixed: work on&lt;br /&gt;
an independent checker written in Lean led to one being spotted and fixed.&amp;lt;ref name=&amp;quot;l4l&amp;quot;&amp;gt;Mario Carneiro, &amp;quot;Lean4Lean: Verifying a Typechecker for Lean, in Lean&amp;quot;, arXiv:2403.14064, version 3, 14 September 2025. [https://arxiv.org/abs/2403.14064 arxiv.org/abs/2403.14064]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Two more were reported and fixed in July 2026, in Lean 4.32.1 and 4.32.2: each could be used by a&lt;br /&gt;
program written for the purpose to make the Lean kernel accept a proof of &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, from&lt;br /&gt;
which anything follows (see [[Lean theorem prover/History/Lean since 2023|Lean since 2023]]). The&lt;br /&gt;
version of Lean this edition uses, 4.34.1, is later.&amp;lt;ref name=&amp;quot;rn4321&amp;quot;&amp;gt;&amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, version for Lean 4.34.0, &amp;quot;Lean 4.32.1 (2026-07-22)&amp;quot;, release notes. [https://lean-lang.org/doc/reference/4.34.0/releases/v4.32.1/ lean-lang.org/doc/reference/4.34.0/releases/v4.32.1], consulted 14 October 2026.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;rn4322&amp;quot;&amp;gt;&amp;#039;&amp;#039;The Lean Language Reference&amp;#039;&amp;#039;, version for Lean 4.34.0, &amp;quot;Lean 4.32.2 (2026-07-28)&amp;quot;, release notes. [https://lean-lang.org/doc/reference/4.34.0/releases/v4.32.2/ lean-lang.org/doc/reference/4.34.0/releases/v4.32.2], consulted 14 October 2026.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lean&amp;#039;s logic is consistent.&amp;#039;&amp;#039;&amp;#039; The rules of Lean&amp;#039;s type theory, with its three standard axioms,&lt;br /&gt;
must not allow a proof of a contradiction (see&lt;br /&gt;
[[Lean theorem prover/Explainers/What the axioms are|what the axioms are]]). By Gödel&amp;#039;s second&lt;br /&gt;
incompleteness theorem, a consistent system strong enough for arithmetic cannot prove its own&lt;br /&gt;
consistency, so this rests on an argument made outside Lean. One such argument, from 2019, showed&lt;br /&gt;
Lean&amp;#039;s logic consistent provided that standard set theory, strengthened by assuming certain very&lt;br /&gt;
large infinite sets, is consistent; features added in Lean 4 mean that the argument no longer&lt;br /&gt;
applies directly to Lean as it now stands.&amp;lt;ref name=&amp;quot;l4l&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;No other axiom has crept in.&amp;#039;&amp;#039;&amp;#039; Anyone can add an axiom to Lean, and an unsound one proves&lt;br /&gt;
anything. The command &amp;lt;code&amp;gt;#print axioms&amp;lt;/code&amp;gt; lists every axiom a theorem depends on, directly&lt;br /&gt;
or through the results it uses. Lean&amp;#039;s guide says that only the built-in axioms&lt;br /&gt;
&amp;lt;code&amp;gt;propext&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Classical.choice&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Quot.sound&amp;lt;/code&amp;gt; should appear;&lt;br /&gt;
any other name marks an unfinished proof, native evaluation, or an axiom that someone&lt;br /&gt;
declared.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt; Pollack adds a point that is easy&lt;br /&gt;
to miss: the tool that lists the assumptions must itself be trusted, because nobody can read a&lt;br /&gt;
large proof to confirm the list.&amp;lt;ref name=&amp;quot;pollack&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The machine works.&amp;#039;&amp;#039;&amp;#039; The checker runs on a processor, under an operating system, after a&lt;br /&gt;
compiler has turned its source into a program. Pollack placed all of these in a stack beneath the&lt;br /&gt;
checker, and pointed out that belief in a machine-checked proof therefore depends on empirical&lt;br /&gt;
knowledge of how physical hardware behaves, which belief in a proof on paper does not.&amp;lt;ref name=&amp;quot;pollack&amp;quot; /&amp;gt;&lt;br /&gt;
Running the check again on different machines and with different compilers makes it most&lt;br /&gt;
unlikely that a fault in the platform is the cause of an acceptance; it leaves a fault in the&lt;br /&gt;
checker itself untouched, which is why independent checkers matter more.&amp;lt;ref name=&amp;quot;pollack&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The libraries were written in good faith.&amp;#039;&amp;#039;&amp;#039; A proof usually rests on imported definitions and&lt;br /&gt;
theorems. Lean&amp;#039;s guide assumes that their authors were honest and declared no unsound&lt;br /&gt;
axioms.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The statement is the right one.&amp;#039;&amp;#039;&amp;#039; This is the second of Pollack&amp;#039;s questions, and it is left to&lt;br /&gt;
people. See [[Lean theorem prover/Explainers/Stating the right thing|stating the right thing]].&lt;br /&gt;
&lt;br /&gt;
== What native evaluation adds ==&lt;br /&gt;
&lt;br /&gt;
Lean is also a programming language, and some of its features let a compiled program stand in&lt;br /&gt;
for the Lean kernel&amp;#039;s own computation. Lean&amp;#039;s guide names two consequences. A proof by native&lt;br /&gt;
evaluation (the tactic &amp;lt;code&amp;gt;native_decide&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;decide +native&amp;lt;/code&amp;gt;)&lt;br /&gt;
depends on the correctness of the Lean compiler and of every definition marked&lt;br /&gt;
&amp;lt;code&amp;gt;@[implemented_by]&amp;lt;/code&amp;gt;; and any such replacement in a library, made with&lt;br /&gt;
&amp;lt;code&amp;gt;implemented_by&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;extern&amp;lt;/code&amp;gt;, becomes part of the trusted code, since it must&lt;br /&gt;
mean the same as what it replaces.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt; The following lines&lt;br /&gt;
show why. The attribute tells Lean to run one function in place of another that is not the same:&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;
def other (n : Nat) : Nat := n + 1&lt;br /&gt;
&lt;br /&gt;
@[implemented_by other]&lt;br /&gt;
def same (n : Nat) : Nat := n&lt;br /&gt;
&lt;br /&gt;
theorem same_five : same 5 = 5 := rfl&lt;br /&gt;
&lt;br /&gt;
#eval same 5&lt;br /&gt;
#print axioms same_five&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lean 4.34.1 proves that &amp;lt;code&amp;gt;same 5&amp;lt;/code&amp;gt; is 5, runs it and prints 6, and reports no axioms:&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;
6&lt;br /&gt;
&amp;#039;same_five&amp;#039; does not depend on any axioms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The theorem is still sound: the Lean kernel reasons about the definition, never about the program&lt;br /&gt;
that runs in its place. Trouble starts when a proof takes the running program&amp;#039;s word. Continuing&lt;br /&gt;
the same file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lean lean-cont&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 same_six : same 5 = 6 := by native_decide&lt;br /&gt;
&lt;br /&gt;
theorem oops : False := by&lt;br /&gt;
  have h := same_five.symm.trans same_six&lt;br /&gt;
  contradiction&lt;br /&gt;
&lt;br /&gt;
#print axioms oops&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lean accepts this proof of &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;, built on purpose to show the danger, and&lt;br /&gt;
&amp;lt;code&amp;gt;#print axioms&amp;lt;/code&amp;gt; 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;oops&amp;#039; depends on axioms: [same_six._native.native_decide.ax_1_1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The axiom list is what gives it away. Since Lean 4.29.0, each computation asserted by native&lt;br /&gt;
evaluation enters as an axiom of its own,&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt; and a theorem that depends on one is&lt;br /&gt;
believed only as far as the compiler and every &amp;lt;code&amp;gt;implemented_by&amp;lt;/code&amp;gt; beneath it are believed.&lt;br /&gt;
The project this wiki records refuses &amp;lt;code&amp;gt;native_decide&amp;lt;/code&amp;gt; in its proofs altogether&lt;br /&gt;
(see [[Principia Machina/Lean transition|the move to Lean]]).&lt;br /&gt;
&lt;br /&gt;
== Making the list shorter ==&lt;br /&gt;
&lt;br /&gt;
An &amp;#039;&amp;#039;&amp;#039;external checker&amp;#039;&amp;#039;&amp;#039; is a second program, written separately, that reads a proof exported&lt;br /&gt;
from Lean and checks it again. It removes the need to trust the parts of Lean outside the Lean&lt;br /&gt;
kernel, which an exported proof no longer passes through, and, if its author made different&lt;br /&gt;
mistakes, the need to trust any one implementation of the checking rules.&amp;lt;ref name=&amp;quot;tcl4&amp;quot;&amp;gt;&amp;#039;&amp;#039;Type Checking in Lean 4&amp;#039;&amp;#039;, online book, chapter &amp;quot;Trust&amp;quot;. [https://ammkrn.github.io/type_checking_in_lean4/trust/trust.html ammkrn.github.io/type_checking_in_lean4], consulted 14 October 2026.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lean&amp;#039;s guide describes its strongest procedure in these terms: the proof is compiled in a sandbox,&lt;br /&gt;
exported, and checked by the Lean kernel or by an independent checker, and the statement proved is&lt;br /&gt;
compared with a statement written separately, in a trusted setting.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt;&lt;br /&gt;
[[Lean theorem prover/Explainers/Checking a proof again later|Checking a proof again later]]&lt;br /&gt;
describes these tools.&lt;br /&gt;
&lt;br /&gt;
They have a price. A checker that reads exported proofs has no access to Lean&amp;#039;s compiler, so it&lt;br /&gt;
cannot check a proof that relies on native evaluation; such proofs have to avoid it if that level&lt;br /&gt;
of checking is wanted.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What remains ==&lt;br /&gt;
&lt;br /&gt;
Even at its strongest, the procedure leaves a list. Lean&amp;#039;s guide gives it: that Lean&amp;#039;s logic is&lt;br /&gt;
sound, that the tool joining the steps together is correct, that the sandbox holds, that no fault is&lt;br /&gt;
shared by every checker used, and that the trusted statement contains no human error and is not&lt;br /&gt;
presented in a misleading way.&amp;lt;ref name=&amp;quot;refval&amp;quot; /&amp;gt; Two of these are of a different kind from the&lt;br /&gt;
rest. Consistency is a mathematical question, argued outside any checker. The statement is a&lt;br /&gt;
human question, settled by reading.&lt;br /&gt;
&lt;br /&gt;
== Next ==&lt;br /&gt;
&lt;br /&gt;
[[Lean theorem prover/Explainers/Checking a proof again later|Checking a proof again later]]&lt;br /&gt;
describes the independent checkers and how a proof is kept checkable as Lean changes.&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>