theorem dropArray (A: set) (l m n: nat):
  $ l e. Array A (m + n) -> drop l m e. Array A n $;
    
      
        | Step | Hyp | Ref | Expression | 
        
          | 1 | 
           | 
          elArray | 
          drop l m e. Array A n <-> drop l m e. List A /\ len (drop l m) = n  | 
        
        
          | 2 | 
           | 
          appendT | 
          take l m ++ drop l m e. List A <-> take l m e. List A /\ drop l m e. List A  | 
        
        
          | 3 | 
           | 
          eleq1 | 
          take l m ++ drop l m = l -> (take l m ++ drop l m e. List A <-> l e. List A)  | 
        
        
          | 4 | 
           | 
          takedrop | 
          take l m ++ drop l m = l  | 
        
        
          | 5 | 
          3, 4 | 
          ax_mp | 
          take l m ++ drop l m e. List A <-> l e. List A  | 
        
        
          | 6 | 
           | 
          elArrayList | 
          l e. Array A (m + n) -> l e. List A  | 
        
        
          | 7 | 
          5, 6 | 
          sylibr | 
          l e. Array A (m + n) -> take l m ++ drop l m e. List A  | 
        
        
          | 8 | 
          2, 7 | 
          sylib | 
          l e. Array A (m + n) -> take l m e. List A /\ drop l m e. List A  | 
        
        
          | 9 | 
          8 | 
          anrd | 
          l e. Array A (m + n) -> drop l m e. List A  | 
        
        
          | 10 | 
           | 
          droplen | 
          len (drop l m) = len l - m  | 
        
        
          | 11 | 
           | 
          pncan2 | 
          m + n - m = n  | 
        
        
          | 12 | 
           | 
          elArraylen | 
          l e. Array A (m + n) -> len l = m + n  | 
        
        
          | 13 | 
          12 | 
          subeq1d | 
          l e. Array A (m + n) -> len l - m = m + n - m  | 
        
        
          | 14 | 
          11, 13 | 
          syl6eq | 
          l e. Array A (m + n) -> len l - m = n  | 
        
        
          | 15 | 
          10, 14 | 
          syl5eq | 
          l e. Array A (m + n) -> len (drop l m) = n  | 
        
        
          | 16 | 
          9, 15 | 
          iand | 
          l e. Array A (m + n) -> drop l m e. List A /\ len (drop l m) = n  | 
        
        
          | 17 | 
          1, 16 | 
          sylibr | 
          l e. Array A (m + n) -> drop l m e. Array A n  | 
        
      
    
    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)