<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.6.47.6</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.6.47.6"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/24.6.47.6"/>
	<updated>2026-07-13T00:16:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Topological_skeleton&amp;diff=9600</id>
		<title>Topological skeleton</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Topological_skeleton&amp;diff=9600"/>
		<updated>2014-01-03T06:55:25Z</updated>

		<summary type="html">&lt;p&gt;24.6.47.6: /* Skeletonization algorithms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[mathematical logic]], the &#039;&#039;&#039;Brouwer–Heyting–Kolmogorov interpretation&#039;&#039;&#039;, or &#039;&#039;&#039;BHK interpretation&#039;&#039;&#039;, of [[intuitionistic logic]] was proposed by [[L. E. J. Brouwer]], [[Arend Heyting]] and independently by [[Andrey Kolmogorov]]. It is also sometimes called the &#039;&#039;&#039;realizability interpretation&#039;&#039;&#039;, because of the connection with the [[realizability]] theory of [[Stephen Kleene]].&lt;br /&gt;
&lt;br /&gt;
== The interpretation ==&lt;br /&gt;
&lt;br /&gt;
The interpretation states exactly what is intended to be a proof of a given [[Formula (mathematical logic)|formula]]. This is specified by [[induction on the structure]] of that formula:&lt;br /&gt;
&lt;br /&gt;
*A proof of &amp;lt;math&amp;gt;P \wedge Q&amp;lt;/math&amp;gt; is a pair &amp;lt;&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;&amp;gt; where &#039;&#039;a&#039;&#039; is a proof of &#039;&#039;P&#039;&#039; and &#039;&#039;b&#039;&#039; is a proof of &#039;&#039;Q&#039;&#039;.&lt;br /&gt;
*A proof of &amp;lt;math&amp;gt;P \vee Q&amp;lt;/math&amp;gt; is a pair &amp;lt;&#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;&amp;gt; where &#039;&#039;a&#039;&#039; is 0 and &#039;&#039;b&#039;&#039; is a proof of &#039;&#039;P&#039;&#039;, or &#039;&#039;a&#039;&#039; is 1 and &#039;&#039;b&#039;&#039; is a proof of &#039;&#039;Q&#039;&#039;.&lt;br /&gt;
*A proof of &amp;lt;math&amp;gt;P \to Q&amp;lt;/math&amp;gt; is a function &#039;&#039;f&#039;&#039; which converts a proof of &#039;&#039;P&#039;&#039; into a proof of &#039;&#039;Q&#039;&#039;.&lt;br /&gt;
*A proof of &amp;lt;math&amp;gt;\exists x \in S : \phi(x)&amp;lt;/math&amp;gt; is a pair &amp;lt;&#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;&amp;gt; where &#039;&#039;a&#039;&#039; is an element of &#039;&#039;S&#039;&#039;, and &#039;&#039;b&#039;&#039; is a proof of &#039;&#039;φ(a)&#039;&#039;.&lt;br /&gt;
*A proof of &amp;lt;math&amp;gt;\forall x \in S : \phi(x)&amp;lt;/math&amp;gt; is a function &#039;&#039;f&#039;&#039; which converts an element &#039;&#039;a&#039;&#039; of &#039;&#039;S&#039;&#039; into a proof of &#039;&#039;φ(a)&#039;&#039;.&lt;br /&gt;
*The formula &amp;lt;math&amp;gt;\neg P&amp;lt;/math&amp;gt; is defined as &amp;lt;math&amp;gt;P \to \bot&amp;lt;/math&amp;gt;, so a proof of it is a function &#039;&#039;f&#039;&#039; which converts a proof of &#039;&#039;P&#039;&#039; into a proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt;.&lt;br /&gt;
*There is no proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt; (the absurdity).&lt;br /&gt;
&lt;br /&gt;
The interpretation of a primitive proposition is supposed to be known from context. In the context of arithmetic, a proof of the formula &#039;&#039;s&#039;&#039;=&#039;&#039;t&#039;&#039; is a computation reducing the two terms to the same numeral.&lt;br /&gt;
&lt;br /&gt;
Kolmogorov followed the same lines but phrased his interpretation in terms of problems and solutions. To assert a formula is to claim to know a solution to the problem represented by that formula. For instance &amp;lt;math&amp;gt;P \to Q&amp;lt;/math&amp;gt; is the problem of reducing &#039;&#039;Q&#039;&#039; to &#039;&#039;P&#039;&#039;; to solve it requires a method to solve problem &#039;&#039;Q&#039;&#039; given a solution to problem&amp;amp;nbsp;&#039;&#039;P&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
The identity function is a proof of the formula &amp;lt;math&amp;gt;P \to P&amp;lt;/math&amp;gt;, no matter what P is.&lt;br /&gt;
&lt;br /&gt;
The [[law of non-contradiction]] &amp;lt;math&amp;gt;\neg (P \wedge \neg P)&amp;lt;/math&amp;gt; expands to &amp;lt;math&amp;gt;(P \wedge (P \to \bot)) \to \bot&amp;lt;/math&amp;gt;:&lt;br /&gt;
* A proof of &amp;lt;math&amp;gt;(P \wedge (P \to \bot)) \to \bot&amp;lt;/math&amp;gt; is a function &#039;&#039;f&#039;&#039; which converts a proof of &amp;lt;math&amp;gt;(P \wedge (P \to \bot))&amp;lt;/math&amp;gt; into a proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt;.&lt;br /&gt;
* A proof of &amp;lt;math&amp;gt;(P \wedge (P \to \bot))&amp;lt;/math&amp;gt; is a pair of proofs &amp;lt;&#039;&#039;a&#039;&#039;,&#039;&#039;b&#039;&#039;&amp;gt;, where &#039;&#039;a&#039;&#039; is a proof of &#039;&#039;P&#039;&#039;, and &#039;&#039;b&#039;&#039; is a proof of &amp;lt;math&amp;gt;P \to \bot&amp;lt;/math&amp;gt;.&lt;br /&gt;
* A proof of &amp;lt;math&amp;gt;P \to \bot&amp;lt;/math&amp;gt; is a function which converts a proof of &#039;&#039;P&#039;&#039; into a proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt;.&lt;br /&gt;
Putting it all together, a proof of &amp;lt;math&amp;gt;(P \wedge (P \to \bot)) \to \bot&amp;lt;/math&amp;gt; is a function &#039;&#039;f&#039;&#039; which converts a pair &amp;lt;&#039;&#039;a&#039;&#039;,&#039;&#039;b&#039;&#039;&amp;gt; – where &#039;&#039;a&#039;&#039; is a proof of &#039;&#039;P&#039;&#039;, and &#039;&#039;b&#039;&#039; is a function which converts a proof of &#039;&#039;P&#039;&#039; into a proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt; – into a proof of &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt;.&lt;br /&gt;
The function &amp;lt;math&amp;gt;f(\langle a, b \rangle) = b(a)&amp;lt;/math&amp;gt; fits the bill, proving the law of non-contradiction, no matter what P is.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the [[law of excluded middle]] &amp;lt;math&amp;gt;P \vee (\neg P)&amp;lt;/math&amp;gt; expands to &amp;lt;math&amp;gt;P \vee (P \to \bot)&amp;lt;/math&amp;gt;, and in general has no proof.  According to the interpretation, a proof of &amp;lt;math&amp;gt;P \vee (\neg P)&amp;lt;/math&amp;gt; is a pair &amp;lt;&#039;&#039;a&#039;&#039;,&amp;amp;nbsp;&#039;&#039;b&#039;&#039;&amp;gt; where &#039;&#039;a&#039;&#039; is 0 and &#039;&#039;b&#039;&#039; is a proof of &#039;&#039;P&#039;&#039;, or &#039;&#039;a&#039;&#039; is 1 and &#039;&#039;b&#039;&#039; is a proof of &amp;lt;math&amp;gt;P \to \bot&amp;lt;/math&amp;gt;. Thus if neither &#039;&#039;P&#039;&#039; nor &amp;lt;math&amp;gt;P \to \bot&amp;lt;/math&amp;gt; is provable then neither is &amp;lt;math&amp;gt;P \vee (\neg P)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What is absurdity? ==&lt;br /&gt;
&lt;br /&gt;
It is not in general possible for a [[logical system]] to have a formal negation operator such that there is a proof of &#039;&#039;&amp;quot;not&amp;quot; P&#039;&#039; exactly when there isn&#039;t a proof of &#039;&#039;P&#039;&#039; ; see [[Gödel&#039;s incompleteness theorems]]. The BHK interpretation instead takes &#039;&#039;&amp;quot;not&amp;quot; P&#039;&#039; to mean that &#039;&#039;P&#039;&#039; leads to absurdity, designated &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt;, so that a proof of &#039;&#039;&amp;amp;not;P&#039;&#039; is a function converting a proof of &#039;&#039;P&#039;&#039; into a proof of absurdity.&lt;br /&gt;
&lt;br /&gt;
A standard example of absurdity is found in dealing with arithmetic. Assume that 0&amp;amp;nbsp;=&amp;amp;nbsp;1, and proceed by [[mathematical induction]]: 0&amp;amp;nbsp;=&amp;amp;nbsp;0 by the axiom of equality. Now (induction hypothesis), if 0 were equal to a certain natural number &#039;&#039;n&#039;&#039;, then 1 would be equal to &#039;&#039;n&#039;&#039;+1, ([[Peano arithmetic|Peano axiom]]: &#039;&#039;&#039;S&#039;&#039;&#039;&#039;&#039;m&#039;&#039;&amp;amp;nbsp;=&amp;amp;nbsp;&#039;&#039;&#039;S&#039;&#039;&#039;&#039;&#039;n&#039;&#039; if and only if &#039;&#039;m&#039;&#039; = &#039;&#039;n&#039;&#039;), but since 0=1, therefore 0 would also be equal to &#039;&#039;n&#039;&#039;&amp;amp;nbsp;+&amp;amp;nbsp;1. By induction, 0 is equal to all numbers, and therefore any two natural numbers become equal.&lt;br /&gt;
&lt;br /&gt;
Therefore, there is a way to go from a proof of 0=1 to a proof of any basic arithmetic equality, and thus to a proof of any complex arithmetic proposition. Furthermore, to get this result it was not necessary to invoke the Peano axiom which states that 0 is &amp;quot;not&amp;quot; the successor of any natural number. This makes 0=1 suitable as &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt; in Heyting arithmetic (and the Peano axiom is rewritten 0&amp;amp;nbsp;=&amp;amp;nbsp;&#039;&#039;&#039;S&#039;&#039;&#039;&#039;&#039;n&#039;&#039; &amp;amp;rarr; 0&amp;amp;nbsp;=&amp;amp;nbsp;&#039;&#039;&#039;S&#039;&#039;&#039;0). This use of 0&amp;amp;nbsp;=&amp;amp;nbsp;1 validates the [[principle of explosion]].&lt;br /&gt;
&lt;br /&gt;
== What is a function? ==&lt;br /&gt;
&lt;br /&gt;
The BHK interpretation will depend on the view taken about what constitutes a &#039;&#039;function&#039;&#039; which converts one proof to another, or which converts an element of a domain to a proof. Different versions of [[constructivism (mathematics)|constructivism]] will diverge on this point.&lt;br /&gt;
&lt;br /&gt;
Kleene&#039;s realizability theory identifies the functions with the [[computable function]]s. It deals with [[Heyting arithmetic]], where the domain of quantification is the natural numbers and the primitive propositions are of the form x=y. A proof of x=y is simply the trivial algorithm if x evaluates to the same number that y does (which is always decidable for natural numbers), otherwise there is no proof. These are then built up by induction into more complex algorithms.&lt;br /&gt;
&lt;br /&gt;
If one takes [[lambda calculus]] as defining the notion of a function, then the BHK interpretation describes the [[Curry&amp;amp;ndash;Howard correspondence|correspondence]] between natural deduction and functions.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*{{cite paper |authorlink=A. S. Troelstra |last=Troelstra |first=A. |title=History of Constructivism in the Twentieth Century |year=1991 |url=http://staff.science.uva.nl/~anne/hhhist.pdf |doi= }}&lt;br /&gt;
*{{cite paper |last=Troelstra |first=A. |title=Constructivism and Proof Theory |year=2003 |url=http://staff.science.uva.nl/~anne/eolss.pdf |doi= }}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Brouwer-Heyting-Kolmogorov interpretation}}&lt;br /&gt;
[[Category:Dependently typed programming]]&lt;br /&gt;
[[Category:Functional programming]]&lt;br /&gt;
[[Category:Constructivism (mathematics)]]&lt;/div&gt;</summary>
		<author><name>24.6.47.6</name></author>
	</entry>
</feed>