*Scroll down for video lectures*

## 1. What is a Mathematical Proof?

Mathematical proof is a method of discourse which allows a human being to:

- discover new mathematical knowledge,
- analyze existing mathematical knowledge,
- verify truthfulness of a piece of mathematical knowledge.

Mathematical knowledge is knowledge of abstract principles about our universe. As such, it requires use of symbols to represent entities
that are inherently abstract. For example, the symbol

*2*may represent*2 apples*or*2 pears*. The number*2*is an abstract entity, since it is not confined to any of these concrete representations.Mathematics functions at different levels of
abstraction too. For instance, we may write a symbol, such as

*n*, to represent any number. In one case we could have*n = 2*, and in another case we could have*n = 3*. This is a second layer of abstraction compared to the layer of each specific number, such as number*2*. Symbols representing abstract entities form basic ingredients of mathematical proof. The most complex parts of mathematical proofs deal with manipulations of these symbols, which sometimes may take an extremely long time. To optimize a proof, it is important to understand its most fundamental components. The aim of these lectures is to provide an exposition of these fundamental components.

*Activity.**Get Python IDE, if you do not already have one: there are many available, Spyder is recommended (very easy to install). Then, get the file sofia.py, which can be obtained from https://github.com/ZurabJanelidze/sofia. Save sofia.py to the runtime directory of your Python IDE. To test that you have done it correctly,*

*create a separate file named something.py, copy-paste the following code in that file, and run the file with your Python IDE:*

import sofia

sofia.help()