If you want to learn more about mathematical verifiers I recommend taking a 
look at the metamath book: <http://us.metamath.org/downloads/metamath.pdf>

The philosophy of Metamath is:

> Metamath “knows no math;” it just provides a framework in which to express 
> mathematics. Its language is very small. You can define two kinds of symbols, 
> constants and variables. The only thing Metamath knows how to do is to 
> substitute strings of symbols for the variables in an expression based on 
> instructions you provide it in a proof, subject to certain constraints you 
> specify for the variables.

Here is an example of a simple proof from the book:

Lets start with these axioms:
    
    
    (A1) (t = r → (t = s → r = s))
    (A2) (t + 0) = t
    
    
    Run

Now lets prove that:
    
    
    t = t
    
    
    Run

The proof steps are:
    
    
    1. (t + 0) = t (by axiom A2)
    2. (t + 0) = t (by axiom A2)
    3. ((t + 0) = t → ((t + 0) = t → t = t)) (by axiom A1)
    4. ((t + 0) = t → t = t) (by modus ponens applied to steps 2 and 3)
    5. t = t (by modus ponens applied to steps 1 and 4)
    
    
    Run

It's just moving symbols around with simple rules. It knows no math. Just 
basically a `.replace()` contorted and used in different ways.

See page 39 of the linked PDF for more info.

Reply via email to