Let me comment on Kevin Buzzard's intervention (blog: xenaproject.wordpress.com 
<http://xenaproject.wordpress.com/>, website: wwwf.imperial.ac.uk/~buzzard 
<http://wwwf.imperial.ac.uk/~buzzard>)
        Where is the fashionable mathematics?
        Posted on February 9, 2020
        
https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/
 
<https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/>
placed into the Metamath list by vvs <vvs...@gmail.com> at
        
https://groups.google.com/d/msgid/metamath/6478d27f-2d3b-4296-9f95-9236562bd7e8%40googlegroups.com
 
<https://groups.google.com/d/msgid/metamath/6478d27f-2d3b-4296-9f95-9236562bd...@googlegroups.com>

Notes on Lean are placed in section A.2.,
notes on HOL and Isabelle/HOL in section B.

For Coq, see Kevin Buzzard's comment at 
https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/
 
<https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/>,
Freek Wiedijk's criticism quoted at 
https://owlofminerva.net/files/fom_2018.pdf#page=10 
<https://owlofminerva.net/files/fom_2018.pdf#page=10>,
and my comment on the Curry-Howard isomorphism at the end of section A further 
below.



A. General debate

Quote:

> Am 10.02.2020 um 13:52 schrieb vvs <vvs...@gmail.com>:
> 
> He is trying to deliver this message to all, so I think people here might be 
> interested too:
> 
> Each formal proof verification system (Lean, Coq, Isabelle/HOL, UniMath, all 
> of the others) has its own community, and it is surely in the interests of 
> their members to see their communities grow. These systems are all claiming 
> to do mathematics, as well as other things too (program verification, 
> research into higher topos theory and higher type theory etc). But two things 
> have become clear to me over the last two years or so:
> There is a large community of mathematicians out there who simply cannot join 
> these communities because the learning curve is too high and much of the 
> documentation is written for computer scientists.
> Even if a mathematician battles their way into one of these communities, 
> there is a risk that they will not find the kind of mathematics which they 
> are being taught, or teaching, in their own department, and there is a very 
> big risk that they will not find much fashionable mathematics.
> My explicit question to all the people in these formal proof verification 
> communities is: what are you doing about this?
> 
> 
> 
> Full post is here: 
> https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/
> 


The historical approach of formalizing all (or all important) mathematical 
knowledge is the QED Project: mizar.org/qed <http://mizar.org/qed>


My proposal for a solution consists of two steps:


1. Creating a formal language according to Andrews' notion of expressiveness, 
i.e., using the simplest, weakest means in order to express all of mathematics 
in a natural way.
This would result in a Hilbert-style system with lambda notation (and use of 
the description operator) such as Andrews' logic Q0:
        "Q0 requires only two basic types [...] and only two basic constants 
[...], thus reducing the language of formal logic and mathematics to a minimal 
set of basic notions."
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2015-July/msg00147.html 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2015-July/msg00147.html>
        
https://plato.stanford.edu/archives/sum2018/entries/type-theory-church/#ForBasEqu
 
<https://plato.stanford.edu/archives/sum2018/entries/type-theory-church/#ForBasEqu>

        • Peter B. Andrews on expressiveness as the main criterion for the 
design of Q0: “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.” [Andrews, 2002, pp. 205 f.]
        https://owlofminerva.net/files/fom_2018.pdf#page=5 
<https://owlofminerva.net/files/fom_2018.pdf#page=5>

"A bottom-up representation (which is better suited for foundational research) 
is clearly a Hilbert-style system: It has the elegance of having only a few 
rules of inference (in Q0 even only a single rule of inference - Andy Pitts: 
"From a logical point of view, it would be better to have a simpler 
substitution primitive, such as 'Rule R' of Andrews' logic Q0, and then to 
derive more complex rules from it." [Gordon and Melham, 1993, p. 213]). 
Metatheorems are not expressible within the formalism; the metatheorems are 
literally "meta" ("above" - i.e., outside of - the logic). In software 
implementations of Q0 or descendants (Prooftoys by Cris Perdue or my R0 
implementation), the metalogical turnstile (⊢) symbol is replaced by the 
logical implication, which shows the tendency to eliminate metalogical elements 
from the formal language."
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-May/msg00013.html 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-May/msg00013.html>

Adding dependent types (or at least type abstraction) results in R0, in which 
abstract algebra (here: group theory) can be expressed very naturally:
        
https://owlofminerva.net/kubota/software-implementation-of-the-mathematical-logic-r0-available-for-download/#type_abstraction
 
<https://owlofminerva.net/kubota/software-implementation-of-the-mathematical-logic-r0-available-for-download/#type_abstraction>
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-September/msg00045.html
 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-September/msg00045.html>

(Note that Metamath isn't really Hilbert-style, in my opinion, since it can 
express metatheorems. It seems to start directly at a higher level, like all 
logical frameworks.
A true Hilbert-style system consists only of the (mathematical) object 
language. So I disagree with Mario Carneiro at this point:
https://groups.google.com/d/msg/metamath/DRMh8ZPA6Mo/10_2n9pfDgAJ 
<https://groups.google.com/d/msg/metamath/DRMh8ZPA6Mo/10_2n9pfDgAJ> )


2. Implementing a natural deduction variant of the formal language created in 
step one (i.e., making metamathematical theorems symbolically expressible as 
required for automation):
        https://sourceforge.net/p/hol/mailman/message/36654754/ 
<https://sourceforge.net/p/hol/mailman/message/36654754/>

Maybe one should go to the other extreme in this step and establish/use a 
logical framework (e.g., Twelf, Isabelle):

"A top-down representation (which is better suited for applied mathematics: 
interactive/automated theorem proving) is either a natural deduction system 
(like HOL) or a logical framework (like Isabelle): It has a proliferation of 
rules of inference (e.g., eight rules for HOL [cf. Gordon and Melham, 1993, pp. 
212 f.]). Metalogical properties (metatheorems) are expressible to a certain 
extent, e.g., using the turnstile (⊢) symbol (the conditionals / the parts 
before the turnstile may differ in the hypothesis and the conclusion), or the 
meta-implication (⇒) in Isabelle's metalogic M (not to be confused with the 
implication (⊃) of the object-logic), see
        http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-130.pdf 
<http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-130.pdf>, p. 4
Unfortunately, the gain of expressiveness in terms of metalogical properties by 
making metatheorems symbolically representable is obtained at the price of 
philosophical rigor and elegance in expressing the underlying object logic 
(object language)."
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-May/msg00013.html 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-May/msg00013.html>

According to the concept of expressiveness, unnecessary types or constants 
should be avoided.

The list type as implemented in Lean
        
https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#types-as-objects
 
<https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#types-as-objects>
is unnecessary, as the definition of ordered pairs [Andrews 2002 (ISBN 
1-4020-0763-9), p. 208] can be used to establish vectors, which may serve as 
lists:
        • Ordered Pairs With One Type Variable
        https://www.owlofminerva.net/files/formulae.pdf#page=376 
<https://www.owlofminerva.net/files/formulae.pdf#page=376>
        • Vectors (Dependent Type Theory)
        https://www.owlofminerva.net/files/formulae.pdf#page=388 
<https://www.owlofminerva.net/files/formulae.pdf#page=388>
See also: https://sourceforge.net/p/hol/mailman/message/35648326/ 
<https://sourceforge.net/p/hol/mailman/message/35648326/>

The Pi type, or dependent function type, as implemented in Lean
        
https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#dependent-types
 
<https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#dependent-types>
is unnecessary, as it simply can be expressed with type abstraction. The 
following statement is incorrect:
        "It is clear that cons α should have type α → list α → list α. But what 
type should cons have? A first guess might be Type → α → list α → list α, but, 
on reflection, this does not make sense: the α in this expression does not 
refer to anything, whereas it should refer to the argument of type Type. In 
other words, assuming α : Type is the first argument to the function, the type 
of the next two elements are α and list α. These types vary depending on the 
first argument, α."
        
https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#dependent-types
 
<https://leanprover.github.io/theorem_proving_in_lean/dependent_type_theory.html#dependent-types>
 (emphasis as in the original)
It is overlooked that exactly this dependency ("does not refer to anything") 
can be expressed within the formal language by type abstraction (as suggested 
by Mike Gordon and as implemented in R0), which overcomes the strict separation 
of the term level from the type level:
        "In order to express this properly, type abstraction is required, which 
abstracts
from the concrete type ("their concrete presentations"). It creates a link 
between
the type and the term level, e.g.
        [\t.\*:ttt . a * id = a ]
or
        [\t.\x_{ttt} . a x id = a ]
for some identity element id.
Note that the variable t appears both at the term and at the type (subscript) 
level.

Standard HOL doesn't provide this feature, which was already suggested by
HOL founder Mike Gordon (he called it "'second order' λ-terms" [Gordon, 2001, 
p. 22]).
[...]
Group theory is best suited to demonstrate this, and I also chose group theory:
        
http://owlofminerva.net/kubota/software-implementation-of-the-mathematical-logic-r0-available-for-download/#type_abstraction
 
<http://owlofminerva.net/kubota/software-implementation-of-the-mathematical-logic-r0-available-for-download/#type_abstraction>
See the definitions "Grp" and "GrpIdy" there."
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-September/msg00045.html
 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2018-September/msg00045.html>

A natural approach should avoid using the Curry-Howard isomorphism.
"All constructive foundations, including Coq, use the encoding of proofs based 
on 
the Curry-Howard isomorphism. But the concept of expressiveness yields the 
_natural_ expression of mathematics, hence the desire is not an _encoded_, but 
an _unencoded_ (direct) form of expression."
        https://sourceforge.net/p/hol/mailman/message/35648326/ 
<https://sourceforge.net/p/hol/mailman/message/35648326/>



B. Kevin Buzzard on Isabelle/HOL

"Where is the fashionable mathematics?
Posted on February 9, 2020

[...]

Isabelle/HOL users

Isabelle/HOL: Manuel Eberl is tirelessly generating 20th century analysis and 
analytic number theory. This is a highly respectable thing to do — he is 
planting the seeds. He is doing the basics. He cannot do it alone! Furthermore, 
HOL has no dependent types. Does this mean that there are entire areas of 
mathematics which are off limits to his system? I conjecture yes. Prove me 
wrong. Can you define the Picard group of a scheme in Isabelle/HOL? I am not 
sure that it is even possible to write this code in Isabelle/HOL in such a way 
that it will run in finite time, because you have to take a tensor product of 
sheaves of modules to define the multiplication, and a sheaf is a dependent 
type, and your clever HOL workarounds will not let you use typeclasses to 
define module structures on the modules which are values of the sheaves. So how 
will you do the tensor product? I don’t know. Does anyone know? Is this 
actually an interesting open research problem? Picard groups of schemes are 
used all over the place in the proof of Fermat’s Last Theorem. They are basic 
objects for a “proper mathematician”. What can Isabelle/HOL actually do before 
it breaks? Nobody knows. But what frustrates me is that nobody in the 
Isabelle/HOL community seems to care. Larry Paulson says that it’s easy to 
understand: different kinds of maths work best in different systems, and so you 
might want to choose the system depending on the maths you want to do. But do 
you people want to attract “working mathematicians”? Then where are the 
schemes? Can your system even do schemes? I don’t know. Does anyone know? If it 
cannot then this would be very valuable to know because it will help 
mathematician early adopters to make an informed decision about which system to 
use."
        
https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/
 
<https://xenaproject.wordpress.com/2020/02/09/where-is-the-fashionable-mathematics/>

There is no question that Isabelle's theoretical foundation
        https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-130.pdf 
<https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-130.pdf>
is a scientific achievement and that Isabelle itself is an impressive piece of 
software.

But it is also clear that HOL's type system (and therefore Isabelle/HOL's type 
system) is poor.

Freek Wiedijk on the (current) HOL family: “There is one important reason why 
the HOLs are not yet attractive enough to be taken to be the QED system:
• The HOL type system is too poor. As we already argued in the previous 
section, it is too weak to properly do abstract algebra.
But it is worse than that. In the HOL type system there are no dependent types, 
nor is there any form of subtyping. (Mizar and Coq both have dependent types 
and some form of subtyping. In Mizar the subtyping is built into the type 
system. In Coq a similar effect is accomplished through the use of automatic 
coercions.)
For formal mathematics it is essential to both have dependent types and some 
form of subtyping.” [Wiedijk, 2007, p. 130, emphasis as in the original]
        https://owlofminerva.net/files/fom_2018.pdf#page=10 
<https://owlofminerva.net/files/fom_2018.pdf#page=10>


Not even group theory (abstract algebra) can be expressed adequately – without 
circumlocations or workarounds –, since type abstraction is still missing, 
which HOL founder Mike Gordon suggested nearly 20 years ago for HOL:

14. Mike Gordon on explicit type variable quantification in HOL: “In future 
versions of HOL it is expected that there will be explicit type variable 
quantification [Melham, 1993b], i.e., terms of the form ∀α.t (where α is a type 
variable). The right hand side of definitions will be required to be closed 
with respect to both term and type variables. Melham has shown that this will 
make defining mechanisms much cleaner and also permit an elegant treatment of 
type specifications.” [Gordon, 2000, p. 175, fn. 7]
        https://www.owlofminerva.net/files/fom.pdf#page=6 
<https://www.owlofminerva.net/files/fom.pdf#page=6>

17. Mike Gordon suggesting type abstraction for HOL: “The syntax and semantics 
of type variables are currently being studied by several logicians. A closely 
related area is the theory of ‘second order’ λ-terms like λα. λx:α. x, perhaps 
such terms should be included in the HOL logic.” [Gordon, 2001, p. 22]
        https://www.owlofminerva.net/files/fom.pdf#page=7 
<https://www.owlofminerva.net/files/fom.pdf#page=7>


No visible attempts are made to implement type abstraction, neither in the 
current HOL4 nor in the Isabelle/HOL community, although this is the natural 
next step.

Andrei Popescu and Ondřej Kunčar have some philosophical intuition concerning 
(negative) self-reference.
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2016-August/msg00074.html 
<https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2016-August/msg00074.html>


But I am not aware of any current attempts to overcome the obvious 
restrictions, which is not satisfying for a logician/mathematician.

Following Andrews' concept of expressiveness, i.e., naturally expressing all of 
formal logic and mathematics with a small set of symbols and rules (which 
includes what Kevin Buzzard calls "proper mathematics" or "fashionable 
mathematics"), it shouldn't be too difficult to implement type abstraction (and 
maybe full dependent types) in HOL4 and Isabelle/HOL.

Why doesn't this happen?



Kind regards,

Ken Kubota

____________________________________________________


Ken Kubota
http://doi.org/10.4444/100 <http://doi.org/10.4444/100>


_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to