{"id":176,"date":"2017-05-11T11:56:37","date_gmt":"2017-05-11T09:56:37","guid":{"rendered":"http:\/\/owlofminerva.net\/kubota\/?p=176"},"modified":"2018-09-05T14:45:30","modified_gmt":"2018-09-05T12:45:30","slug":"software-implementation-of-the-mathematical-logic-r0-available-for-download","status":"publish","type":"post","link":"https:\/\/owlofminerva.net\/kubota\/software-implementation-of-the-mathematical-logic-r0-available-for-download\/","title":{"rendered":"Software Implementation of the Mathematical Logic R0 Available for Download"},"content":{"rendered":"<p>Dear Members of the Research Community,<\/p>\n<p>I am pleased to announce that the software implementation of the mathematical logic R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, a further development of Peter B. Andrews&#8217; logic Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, is now available. The syntactic features provided by R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> are type variables (polymorphic type theory), the binding of type variables with the abstraction operator and single variable binder \u03bb (type abstraction), and (some of) the means necessary for dependent types (dependent type theory).<\/p>\n<p>The software implementation can be downloaded (license restrictions apply) at<br \/>\n<a href=\"http:\/\/doi.org\/10.4444\/100.10.3\">http:\/\/doi.org\/10.4444\/100.10.3<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The logic R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> does not only allow quantification over types with quantifiers, as specified in [Andrews, 1965] and [Melham, 1993b], but, moreover, the binding of type variables with lambda (type abstraction), as suggested by Mike Gordon for HOL:<\/p>\n<blockquote><p>&#8220;[&#8230;] &#8216;second order&#8217; \u03bb-terms like \u03bb\ud835\udefc. \u03bb<em>x:<\/em>\ud835\udefc. <em>x<\/em>, perhaps such terms should be included in the HOL logic.&#8221; [Gordon, 2001, p. 22]<\/p><\/blockquote>\n<h5 id=\"type_abstraction\">Type abstraction<\/h5>\n<p>The expressiveness of the formal language obtained with <em>type abstraction<\/em> allows for a natural formulation of group theory [cf. p. 12 of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>]. With the set (type) of Boolean values <em>o<\/em>, the exclusive disjunction <em>XOR<\/em>, and an appropriate definition of groups <em>Grp<\/em>, the fact that (<em>o<\/em>, <em>XOR<\/em>) is a group can be expressed in lambda notation with\u00a0[p. 420]<\/p>\n<blockquote><p><em>Grp<\/em> <em>o<\/em> <em>XOR<\/em><\/p><\/blockquote>\n<p>using the definition of groups <em>Grp<\/em>\u00a0and, for example, the definition of the property of groups of having an identity element <em>GrpIdy<\/em> (<em>a<\/em> \u2022 id =\u00a0id \u2022 <em>a<\/em> = <em>a<\/em>) [p. 362]:<\/p>\n<blockquote><p><em>Grp<\/em> := [\u03bbg.[\u03bbl<span style=\"font-size: 70%; vertical-align: sub;\">ggg<\/span>.(<em>GrpAsc<\/em> \u2227 (\u2203 e<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>.(<em>GrpIdy<\/em> \u2227 <em>GrpInv<\/em>)))]]<\/p>\n<p><em>GrpIdy<\/em> :=\u00a0\u2200 a<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>.( l<span style=\"font-size: 70%; vertical-align: sub;\">ggg<\/span>a<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>e<span style=\"font-size: 70%; vertical-align: sub;\">g\u00a0<\/span>= a<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>\u00a0\u2227 l<span style=\"font-size: 70%; vertical-align: sub;\">ggg<\/span>e<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>a<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>\u00a0= a<span style=\"font-size: 70%; vertical-align: sub;\">g<\/span>\u00a0)<\/p><\/blockquote>\n<p>This enhancement of the expressiveness of the formal language overcomes the<\/p>\n<blockquote><p>&#8220;limitation of the simple HOL type system [&#8230;] that there is no explicit quantifier over polymorphic type variables, which can make many standard results [&#8230;] awkward to express [&#8230;]. [&#8230;] For example, in one of the most impressive formalization efforts to date [Gonthier <em>et al.<\/em>, 2013] the entire group theory framework is developed in terms of subsets of a single universe group, apparently to avoid the complications from groups with general and possibly heterogeneous types.&#8221; [Harrison, Urban, and Wiedijk, 2014, pp. 170 f.]<\/p><\/blockquote>\n<p>While in both Andrews&#8217; Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> and Gordon&#8217;s HOL the universal quantifier is defined as<\/p>\n<blockquote><p>ALL\u00a0 :=\u00a0 [\\p. p = [\\x.T] ]<\/p><\/blockquote>\n<p>[Andrews, 2002, p. 212; Gordon and Melham, 1993], in R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, with type abstraction, the type is made explicit:<\/p>\n<blockquote><p>ALL\u00a0 :=\u00a0 [\\t. [\\p. p = [\\x.T] ] ]<\/p><\/blockquote>\n<p>with p of type (ot), or t -&gt; o [p. 359 of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>].<\/p>\n<p>Then, the set-theoretic proposition<\/p>\n<blockquote><p>ALL n : NAT . n+1 &gt; 0<\/p><\/blockquote>\n<p>in type theory can be expressed very naturally by<\/p>\n<blockquote><p>ALL NAT [\\n . n+1 &gt; 0]<\/p><\/blockquote>\n<p>Furthermore, the enhanced expressiveness provided by R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> avoids the circumlocutions connected with preliminary solutions like axiomatic type classes recently developed and discussed for Isabelle\/HOL. The expressiveness of type abstraction also replaces the notion of compound types, which in HOL are used for ordered pairs (the Cartesian product, cf. [Gordon and Melham, 1993]), that in R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> can be formalized without compound types [cf. pp. 378 f. of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>].<\/p>\n<p>&nbsp;<\/p>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> has an intuitive method of type introduction, which does not require the additional axioms of the HOL type introduction mechanism: &#8220;Whenever a theorem of the form <em>p<\/em><span style=\"font-size: 70%; vertical-align: sub;\"><em>o<\/em>\ud835\udefc<\/span><em>e<\/em><span style=\"font-size: 70%; vertical-align: sub;\">\ud835\udefc<\/span> is inferred [&#8230;] (which in set theory is expressed by <em>e<\/em> \u2208 <em>p<\/em>) [&#8230;] <em>p<\/em> is acknowledged as a type&#8221; [p. 11 of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>].<\/p>\n<p>&nbsp;<\/p>\n<p>Mike Gordon&#8217;s HOL developed at Cambridge University is, like Andrews&#8217; logic Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, based on the Simple Theory of Types (1940) developed by Alonzo Church, Andrews&#8217; Ph.D. advisor at Princeton University. Among the HOL group, there has always been the awareness that besides automation, there is the philosophical (logical) desire to reduce the means of the logic to a few principles. In the HOL handbook, Andrew M. Pitts wrote the legendary sentence:<\/p>\n<blockquote><p>&#8220;From a logical point of view, it would be better to have a simpler substitution primitive, such as &#8216;Rule R&#8217; of Andrews&#8217; logic Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, and then to derive more complex rules from it.&#8221; [Gordon and Melham, 1993, p. 213]<\/p><\/blockquote>\n<p>In the same spirit, Mike Gordon wrote on the genesis of HOL:<\/p>\n<blockquote><p>&#8220;[T]he terms [&#8230;] could be encoded [&#8230;] in such a way that the LSM expansion-law just becomes a derived rule [&#8230;]. This approach is both more elegant and rests on a firmer logical foundation, so I switched to it and HOL was born.&#8221; [Gordon, 2000, p. 173]<\/p><\/blockquote>\n<p>The general principle of reducing the logic (including the language) to a few principles is the main criterion for the design of Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> (having only a single primitive rule of inference, Rule R), which is summarized by Peter B. Andrews as follows:<\/p>\n<blockquote><p>&#8220;Therefore we shall turn our attention to finding a formulation of type theory which is as expressive as possible, allowing mathematical ideas to be expressed precisely with a minimum of circumlocutions, and which is as simple and economical as is possible without sacrificing expressiveness. The reader will observe that the formal language we find arises very naturally from a few fundamental design decisions.&#8221; [Andrews, 2002, pp. 205 f.]<\/p><\/blockquote>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> &#8220;follows Andrews&#8217; concept of expressiveness (I also use the term reducibility), which aims at the ideal and natural language of formal logic and mathematics.&#8221; [p. 11 of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>] Therefore R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> is, unlike most other implementations, a Hilbert-style system, opting for expressiveness instead of automation.<\/p>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> implements the philosophical program of Russell&#8217;s and Whitehead&#8217;s <em>Principia Mathematica<\/em>, logicism, i.e., the reduction of mathematics to formal logic, and even more, generalizes this idea by reducing formal logic itself to a few principles.<\/p>\n<p>&nbsp;<\/p>\n<p>Like John Harrison&#8217;s HOL Light, R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> has an extremely small logical kernel. Being a Hilbert-style system, it has the smallest number of rules of inference among the programs implementing a fixed logic (not regarding logical frameworks with another kind of expressiveness). R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> resembles Norman Megill&#8217;s Metamath, which<\/p>\n<blockquote><p>&#8220;attempts to use the minimum possible framework needed to express mathematics and its proofs.&#8221; [<a href=\"http:\/\/us.metamath.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/us.metamath.org\/<\/a>]<\/p><\/blockquote>\n<p>With a size of less than 100 KB, it is the smallest proof checker or interactive theorem prover, including the current versions of John Harrison&#8217;s HOL Light, Mark Adams&#8217; HOL Zero, Norman Megill&#8217;s Metamath, and Freek Wiedijk&#8217;s reimplementation of Automath.<\/p>\n<p>Like Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> uses the description operator, avoiding the problems of the epsilon operator for HOL already discussed by Mike Gordon himself:<\/p>\n<blockquote><p>&#8220;It must be admitted that the \u03b5-operator looks rather suspicious.&#8221; [Gordon, 2001, p. 24]<\/p>\n<p>&#8220;The inclusion of \u03b5-terms into HOL &#8216;builds in&#8217; the Axiom of Choice [&#8230;].&#8221; [Gordon, 2001, p. 24]<\/p><\/blockquote>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> and PVS are the only implementations based on classical type theory with some form of dependent types. Also, R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> and PVS are the only implementations based on classical type theory with mathematical entities that may have different types (or which have at least some form of subtyping).<\/p>\n<p>Unlike in Coq, in R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, no use is made of the Curry-Howard isomorphism, favoring a direct (unencoded, and hence, natural) expression rather than the encoding of proofs. For the same reason, it is an object (fixed) logic and not a logical framework (such as Larry Paulson&#8217;s Isabelle and Norman Megill&#8217;s Metamath). Like in Cris Perdue&#8217;s Prooftoys [<a href=\"http:\/\/prooftoys.org\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/prooftoys.org<\/a>, <a href=\"http:\/\/mathtoys.org\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/mathtoys.org<\/a>] &#8211; a natural deduction variant of Andrews&#8217; Q<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> &#8211; in R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span>, the turnstile symbol is replaced by the logical implication [p. 12 of <a href=\"http:\/\/doi.org\/10.4444\/100.10.2\">http:\/\/doi.org\/10.4444\/100.10.2<\/a>].<\/p>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> is, together with HOL Zero [Adams, 2016, p. 34], the only proof checker or interactive theorem prover which has the property of Pollack-consistency, namely<\/p>\n<blockquote><p>&#8220;being able to correctly parse formulas that it printed itself&#8221; [Wiedijk, 2012, p. 85].<\/p><\/blockquote>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> is the only proof checker or interactive theorem prover which can correctly parse whole proofs (and not only formulas) that it printed itself. Finally, R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> has the property of<\/p>\n<blockquote><p>&#8220;<em>faithfulness<\/em>, where internal representation and concrete syntax correctly correspond. A printer that printed <strong>false<\/strong> as <strong>true<\/strong> and <strong>true<\/strong> as <strong>false<\/strong> might be Pollack-consistent but would not be faithful.&#8221; [Adams, 2016, p. 21]<\/p><\/blockquote>\n<p>R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> is, like Automath, a mere proof checker (practically without any automation at all).<\/p>\n<p>&nbsp;<\/p>\n<p>A full treatment of R<span style=\"font-size: 70%; vertical-align: sub;\">0<\/span> shall be announced at<br \/>\n<a href=\"http:\/\/doi.org\/10.4444\/100.10.1\">http:\/\/doi.org\/10.4444\/100.10.1<\/a><\/p>\n<p>For references, please see: <a href=\"http:\/\/doi.org\/10.4444\/100.111\">http:\/\/doi.org\/10.4444\/100.111<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Kind regards,<\/p>\n<p>Ken Kubota<\/p>\n<p>____________________<\/p>\n<p>Ken Kubota<br \/>\n<a href=\"http:\/\/doi.org\/10.4444\/100\">http:\/\/doi.org\/10.4444\/100<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dear Members of the Research Community, I am pleased to announce that the software implementation of the mathematical logic R0, a further development of Peter B. Andrews&#8217; logic Q0, is now available. The syntactic features provided by R0 are type variables (polymorphic type theory), the binding of type variables with the abstraction operator and single [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-176","post","type-post","status-publish","format-standard","hentry","category-news","post-preview"],"_links":{"self":[{"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/posts\/176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/comments?post=176"}],"version-history":[{"count":33,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/posts\/176\/revisions"}],"predecessor-version":[{"id":442,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/posts\/176\/revisions\/442"}],"wp:attachment":[{"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/media?parent=176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/categories?post=176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owlofminerva.net\/kubota\/wp-json\/wp\/v2\/tags?post=176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}