theorem preqadd (a b: nat): $ a, b = (a + b, 0) + b $;
    
      
        | Step | Hyp | Ref | Expression | 
|---|
        
          | 1 |  | eqcom | (a + b, 0) + b = a, b -> a, b = (a + b, 0) + b | 
        
          | 2 |  | addeq1 | a + b, 0 = (a + b) * suc (a + b) // 2 -> (a + b, 0) + b = (a + b) * suc (a + b) // 2 + b | 
        
          | 3 | 2 | conv pr | a + b, 0 = (a + b) * suc (a + b) // 2 -> (a + b, 0) + b = a, b | 
        
          | 4 |  | eqtr | a + b, 0 = (a + b + 0) * suc (a + b + 0) // 2 -> (a + b + 0) * suc (a + b + 0) // 2 = (a + b) * suc (a + b) // 2 -> a + b, 0 = (a + b) * suc (a + b) // 2 | 
        
          | 5 |  | add0 | (a + b + 0) * suc (a + b + 0) // 2 + 0 = (a + b + 0) * suc (a + b + 0) // 2 | 
        
          | 6 | 5 | conv pr | a + b, 0 = (a + b + 0) * suc (a + b + 0) // 2 | 
        
          | 7 | 4, 6 | ax_mp | (a + b + 0) * suc (a + b + 0) // 2 = (a + b) * suc (a + b) // 2 -> a + b, 0 = (a + b) * suc (a + b) // 2 | 
        
          | 8 |  | diveq1 | (a + b + 0) * suc (a + b + 0) = (a + b) * suc (a + b) -> (a + b + 0) * suc (a + b + 0) // 2 = (a + b) * suc (a + b) // 2 | 
        
          | 9 |  | muleq | a + b + 0 = a + b -> suc (a + b + 0) = suc (a + b) -> (a + b + 0) * suc (a + b + 0) = (a + b) * suc (a + b) | 
        
          | 10 |  | add0 | a + b + 0 = a + b | 
        
          | 11 | 9, 10 | ax_mp | suc (a + b + 0) = suc (a + b) -> (a + b + 0) * suc (a + b + 0) = (a + b) * suc (a + b) | 
        
          | 12 |  | suceq | a + b + 0 = a + b -> suc (a + b + 0) = suc (a + b) | 
        
          | 13 | 12, 10 | ax_mp | suc (a + b + 0) = suc (a + b) | 
        
          | 14 | 11, 13 | ax_mp | (a + b + 0) * suc (a + b + 0) = (a + b) * suc (a + b) | 
        
          | 15 | 8, 14 | ax_mp | (a + b + 0) * suc (a + b + 0) // 2 = (a + b) * suc (a + b) // 2 | 
        
          | 16 | 7, 15 | ax_mp | a + b, 0 = (a + b) * suc (a + b) // 2 | 
        
          | 17 | 3, 16 | ax_mp | (a + b, 0) + b = a, b | 
        
          | 18 | 1, 17 | ax_mp | a, b = (a + b, 0) + b | 
      
    
    Axiom use
    axs_prop_calc
     (ax_1,
      ax_2,
      ax_3,
      ax_mp,
      itru),
    
axs_pred_calc
     (ax_gen,
      ax_4,
      ax_5,
      ax_6,
      ax_7,
      ax_10,
      ax_11,
      ax_12),
    
axs_set
     (elab,
      ax_8),
    
axs_the
     (theid,
      the0),
    
axs_peano
     (peano2,
      addeq,
      muleq,
      add0)