
ALT 1.2. Formal vs. informal mathematics In a formal language like OCaml or Java, the forms of judgement concern the description of various entities by means of code. The same holds for dependently typed systems like Agda, Lean, and Rocq. It is important to distinguish the code from the thing that it describes; to put it crudely, code is text whereas a function is a process that exists in the intellect of a human being. Everyday mathematicians describe and communicate about mathematical objects not usually in terms of code in a formal language, but rather using an everyday language (like English or French or Chinese). Unlike with code, this kind of informal communication is not automatically precise or unambiguous; instead, mathematicians use empathy (their awareness of a conversation partner’s point of view or shared frame of reference) to tailor their description of ideas that so that they may successfully denote a definite entity in the shared intellectual context of the conversation.

ALT The same ideas of mathematical judgement that we encountered above in the formal context also apply in the world of informal mathematics. In the formal setting, it is usually a computer who evaluates a claim like “fun x -> x * x describes an element of int -> int” by first checking that int -> int describes a definite type and then checking that fun x -> x * x describes an element of that type. In an informal mathematical interaction, code is replaced by speech or conventional written mathematical notations, and it is the human participants who are carrying out the denoted processes collectively—only proceeding forward after everyone has been convinced that they have described by means of these assertions a definite and agreed-upon entity.
















