In differential calculus, the domain-straightening theorem states that, given a vector field 
  
    
      
        X
      
    
    
   on a manifold, there exist local coordinates 
  
    
      
        
          y
          
            1
          
        
        ,
        …
        ,
        
          y
          
            n
          
        
      
    
    
   such that 
  
    
      
        X
        =
        ∂
        
          /
        
        ∂
        
          y
          
            1
          
        
      
    
    
   in a neighborhood of a point where 
  
    
      
        X
      
    
    
   is nonzero. The theorem is also known as straightening out of a vector field.
The Frobenius theorem in differential geometry can be considered as a higher-dimensional generalization of this theorem.
It is clear that we only have to find such coordinates at 0 in 
  
    
      
        
          
            R
          
          
            n
          
        
      
    
    
  . First we write 
  
    
      
        X
        =
        
          ∑
          
            j
          
        
        
          f
          
            j
          
        
        (
        x
        )
        
          
            ∂
            
              ∂
              
                x
                
                  j
                
              
            
          
        
      
    
    
   where 
  
    
      
        x
      
    
    
   is some coordinate system at 
  
    
      
        0
      
    
    
  . Let 
  
    
      
        f
        =
        (
        
          f
          
            1
          
        
        ,
        …
        ,
        
          f
          
            n
          
        
        )
      
    
    
  . By linear change of coordinates, we can assume 
  
    
      
        f
        (
        0
        )
        =
        (
        1
        ,
        0
        ,
        …
        ,
        0
        )
        .
      
    
    
   Let 
  
    
      
        Φ
        (
        t
        ,
        p
        )
      
    
    
   be the solution of the initial value problem 
  
    
      
        
          
            
              x
              ˙
            
          
        
        =
        f
        (
        x
        )
        ,
        x
        (
        0
        )
        =
        p
      
    
    
   and let
  
    
      
        ψ
        (
        
          x
          
            1
          
        
        ,
        …
        ,
        
          x
          
            n
          
        
        )
        =
        Φ
        (
        
          x
          
            1
          
        
        ,
        (
        0
        ,
        
          x
          
            2
          
        
        ,
        …
        ,
        
          x
          
            n
          
        
        )
        )
        .
      
    
    
  
  
    
      
        Φ
      
    
    
   (and thus 
  
    
      
        ψ
      
    
    
  ) is smooth by smooth dependence on initial conditions in ordinary differential equations. It follows that
  
    
      
        
          
            ∂
            
              ∂
              
                x
                
                  1
                
              
            
          
        
        ψ
        (
        x
        )
        =
        f
        (
        ψ
        (
        x
        )
        )
      
    
    
  ,
and, since 
  
    
      
        ψ
        (
        0
        ,
        
          x
          
            2
          
        
        ,
        …
        ,
        
          x
          
            n
          
        
        )
        =
        Φ
        (
        0
        ,
        (
        0
        ,
        
          x
          
            2
          
        
        ,
        …
        ,
        
          x
          
            n
          
        
        )
        )
        =
        (
        0
        ,
        
          x
          
            2
          
        
        ,
        …
        ,
        
          x
          
            n
          
        
        )
      
    
    
  , the differential 
  
    
      
        d
        ψ
      
    
    
   is the identity at 
  
    
      
        0
      
    
    
  . Thus, 
  
    
      
        y
        =
        
          ψ
          
            −
            1
          
        
        (
        x
        )
      
    
    
   is a coordinate system at 
  
    
      
        0
      
    
    
  . Finally, since 
  
    
      
        x
        =
        ψ
        (
        y
        )
      
    
    
  , we have: 
  
    
      
        
          
            
              ∂
              
                x
                
                  j
                
              
            
            
              ∂
              
                y
                
                  1
                
              
            
          
        
        =
        
          f
          
            j
          
        
        (
        ψ
        (
        y
        )
        )
        =
        
          f
          
            j
          
        
        (
        x
        )
      
    
    
   and so 
  
    
      
        
          
            ∂
            
              ∂
              
                y
                
                  1
                
              
            
          
        
        =
        X
      
    
    
   as required.