theorem shrshr (a b c: nat): $ shr (shr a b) c = shr a (b + c) $;
    
      
        | Step | Hyp | Ref | Expression | 
|---|
        
          | 1 |  | eqtr4 | shr (shr a b) c = a // (2 ^ b * 2 ^ c) -> shr a (b + c) = a // (2 ^ b * 2 ^ c) -> shr (shr a b) c = shr a (b + c) | 
        
          | 2 |  | divdiv | a // 2 ^ b // 2 ^ c = a // (2 ^ b * 2 ^ c) | 
        
          | 3 | 2 | conv shr | shr (shr a b) c = a // (2 ^ b * 2 ^ c) | 
        
          | 4 | 1, 3 | ax_mp | shr a (b + c) = a // (2 ^ b * 2 ^ c) -> shr (shr a b) c = shr a (b + c) | 
        
          | 5 |  | diveq2 | 2 ^ (b + c) = 2 ^ b * 2 ^ c -> a // 2 ^ (b + c) = a // (2 ^ b * 2 ^ c) | 
        
          | 6 | 5 | conv shr | 2 ^ (b + c) = 2 ^ b * 2 ^ c -> shr a (b + c) = a // (2 ^ b * 2 ^ c) | 
        
          | 7 |  | powadd | 2 ^ (b + c) = 2 ^ b * 2 ^ c | 
        
          | 8 | 6, 7 | ax_mp | shr a (b + c) = a // (2 ^ b * 2 ^ c) | 
        
          | 9 | 4, 8 | ax_mp | shr (shr a b) c = shr a (b + c) | 
      
    
    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)