theorem znegid (a: nat): $ a +Z -uZ a = 0 $;
    
      
        | Step | Hyp | Ref | Expression | 
        
          | 1 | 
           | 
          eqtr3 | 
          zfst a -ZN zsnd a +Z -uZ a = a +Z -uZ a -> zfst a -ZN zsnd a +Z -uZ a = 0 -> a +Z -uZ a = 0  | 
        
        
          | 2 | 
           | 
          zaddeq1 | 
          zfst a -ZN zsnd a = a -> zfst a -ZN zsnd a +Z -uZ a = a +Z -uZ a  | 
        
        
          | 3 | 
           | 
          zfstsnd | 
          zfst a -ZN zsnd a = a  | 
        
        
          | 4 | 
          2, 3 | 
          ax_mp | 
          zfst a -ZN zsnd a +Z -uZ a = a +Z -uZ a  | 
        
        
          | 5 | 
          1, 4 | 
          ax_mp | 
          zfst a -ZN zsnd a +Z -uZ a = 0 -> a +Z -uZ a = 0  | 
        
        
          | 6 | 
           | 
          eqtr | 
          zfst a -ZN zsnd a +Z -uZ a = zfst a + zsnd a -ZN (zsnd a + zfst a) -> zfst a + zsnd a -ZN (zsnd a + zfst a) = 0 -> zfst a -ZN zsnd a +Z -uZ a = 0  | 
        
        
          | 7 | 
           | 
          zaddzn | 
          zfst a -ZN zsnd a +Z (zsnd a -ZN zfst a) = zfst a + zsnd a -ZN (zsnd a + zfst a)  | 
        
        
          | 8 | 
          7 | 
          conv zneg | 
          zfst a -ZN zsnd a +Z -uZ a = zfst a + zsnd a -ZN (zsnd a + zfst a)  | 
        
        
          | 9 | 
          6, 8 | 
          ax_mp | 
          zfst a + zsnd a -ZN (zsnd a + zfst a) = 0 -> zfst a -ZN zsnd a +Z -uZ a = 0  | 
        
        
          | 10 | 
           | 
          eqtr | 
          zfst a + zsnd a -ZN (zsnd a + zfst a) = zsnd a + zfst a -ZN (zsnd a + zfst a) ->
  zsnd a + zfst a -ZN (zsnd a + zfst a) = 0 ->
  zfst a + zsnd a -ZN (zsnd a + zfst a) = 0  | 
        
        
          | 11 | 
           | 
          znsubeq1 | 
          zfst a + zsnd a = zsnd a + zfst a -> zfst a + zsnd a -ZN (zsnd a + zfst a) = zsnd a + zfst a -ZN (zsnd a + zfst a)  | 
        
        
          | 12 | 
           | 
          addcom | 
          zfst a + zsnd a = zsnd a + zfst a  | 
        
        
          | 13 | 
          11, 12 | 
          ax_mp | 
          zfst a + zsnd a -ZN (zsnd a + zfst a) = zsnd a + zfst a -ZN (zsnd a + zfst a)  | 
        
        
          | 14 | 
          10, 13 | 
          ax_mp | 
          zsnd a + zfst a -ZN (zsnd a + zfst a) = 0 -> zfst a + zsnd a -ZN (zsnd a + zfst a) = 0  | 
        
        
          | 15 | 
           | 
          znsubid | 
          zsnd a + zfst a -ZN (zsnd a + zfst a) = 0  | 
        
        
          | 16 | 
          14, 15 | 
          ax_mp | 
          zfst a + zsnd a -ZN (zsnd a + zfst a) = 0  | 
        
        
          | 17 | 
          9, 16 | 
          ax_mp | 
          zfst a -ZN zsnd a +Z -uZ a = 0  | 
        
        
          | 18 | 
          5, 17 | 
          ax_mp | 
          a +Z -uZ a = 0  | 
        
      
    
    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
     (peano1,
      peano2,
      peano5,
      addeq,
      muleq,
      add0,
      addS,
      mul0,
      mulS)