Jekyll2018-07-11T07:54:27+00:00http://park-sewon.github.io/Sewon’s BlogHello world! Do you know Jo Hyun-woo?Proof as Object 02018-07-11T06:10:00+00:002018-07-11T06:10:00+00:00http://park-sewon.github.io/type/theory/2018/07/11/proof-1<p>Studying something related to Logic, I got wondered what a proof is.
Learning Set Theory as the only foundation of Mathematics in high school or in college,
I think it is a little natural to get confused.
in Set theory, mathematical objects and logic are separated;
we first define mathematical objects using some set of axioms then
define a deductive system on top of them.</p>
<p>However, it seems unnatural to have the two separate layers;
we can find ourselves often deal a proof of a certain lemma
as some kind of object.
Especially when we design an algorithm out of a proof,
we certainly do deal the proof as an object that yields a function.</p>
<p>Program extraction is another field of study that requires much attention.
However, in some sense, we all do program extraction; I think many of us
have an experience of writing a program out of a mathematical proof.
Let us consider a statement <script type="math/tex">L</script> and two proofs <script type="math/tex">a, b</script> of <script type="math/tex">L</script>.
The point is, seeing <script type="math/tex">a</script> and <script type="math/tex">b</script> as objects, whether we can say the proofs are different. Suppose a program designed from <script type="math/tex">a</script> takes <script type="math/tex">n^3</script> and a program designed from <script type="math/tex">b</script> takes <script type="math/tex">exp(n)</script> (whatever the <script type="math/tex">n</script> is). Then, why can’t we say the two proofs are different? If a proof is not an object, how can we say that two proofs are different?</p>
<p>Type theory can be thought as an alternative foundation of mathematics that merges the separation: objects and proofs. Although there are different aspects of seeing Type Theory; e.g., a foundation of constructive mathematics.
I think the aspect of ‘proof as object’ is the most ‘touching’ one.</p>
<p>There are many things to talk about in Type Theory.
However, to be focused on the spirit of ‘proof as object’, let us see a
simple example.
Suppose we have two objects <script type="math/tex">a</script> and <script type="math/tex">b</script>.
We want to argue whether the two objects are the same.
In Set Theory, <script type="math/tex">a</script> and <script type="math/tex">b</script> are some objects that may live in some set <script type="math/tex">S</script>.
The proof of the statement <script type="math/tex">a = b</script> will be constructed following some rules in a deductive system which live outside of the object construction.</p>
<p>In Type Theory, given two elements <script type="math/tex">a, b : T</script> (it says <script type="math/tex">a</script> and <script type="math/tex">b</script> of type <script type="math/tex">T</script>), the statement
<script type="math/tex">a = b</script> is also a type.
We call it an equality (or identity) type of <script type="math/tex">T</script> and <script type="math/tex">a, b</script>.
A proof of <script type="math/tex">a = b</script> is an element of the equality type. Hence,
the proof <script type="math/tex">p : a = b</script>
itself is a mathematical object just like <script type="math/tex">a</script> and <script type="math/tex">b</script> are.
Hence, the statement reads, ‘given two elements <script type="math/tex">a, b</script> of type <script type="math/tex">T</script>, can you find an element of type <script type="math/tex">a = b</script>?’</p>
<p>Seeing a proof <script type="math/tex">p : a = b</script> as an object, we can imagine the following:
given <script type="math/tex">p, q : a = b</script>, arguing <script type="math/tex">p = q</script> is again a type. Yes, we can have <script type="math/tex">r, s : p = q</script> and again argue whether <script type="math/tex">r = s</script> and so on…
This observation leads the attention to Homotopy Type Theory, which is not the topic here; however, is surely interesting.</p>
<p>The equality type is a fundamental type former in Type Theory; given a type and two elements of it, it returns a type. Similarly, there are other type formers which enable us to have counterparts of product, co-product, existential and universal quantifiers. Maybe introducing <script type="math/tex">\Sigma</script> and <script type="math/tex">\Pi</script> dependent types in Martin-Löf dependent type theory would be an interesting topic for the next posting?</p>Studying something related to Logic, I got wondered what a proof is. Learning Set Theory as the only foundation of Mathematics in high school or in college, I think it is a little natural to get confused. in Set theory, mathematical objects and logic are separated; we first define mathematical objects using some set of axioms then define a deductive system on top of them.Welcome to my blog2018-05-30T08:10:00+00:002018-05-30T08:10:00+00:00http://park-sewon.github.io/random/things/2018/05/30/welcome-to-my-blog<p>Dear visitors,
I am very pleased to meet you.
Though I have no idea what to post here,
I hope to have productive and fun conversation in this blog with you!</p>Dear visitors, I am very pleased to meet you. Though I have no idea what to post here, I hope to have productive and fun conversation in this blog with you!