How to prove a greedy algorithm that uses the longest increasing subsequence?
The most intuitive way to prove such an issue, where you're ordering elements by rank in a list, is to use an exchange argument. In short, it comes down to proving that whenever an inversion exists in the list, your algorithm inverts them so that they become ordered correctly. By proving this to be the case for every value/index pair it follows naturally that the list ends up completely ordered.

Many universities have publicly available courses on the matter. For example the TU Delft has an excellent Open CourseWare page on algorithmics that includes the subject, to be found at: 

https://ocw.tudelft.nl/course-lectures/3-greedy-algorithms/