Proving the optimality of an algorithm I proposed an algorithm and I want to prove its optimality. It is not a greedy algorithm. I have the whole searching space $\mathcal{S}$ and I only search inside a subset of this searching space $\mathcal{C} \subset \mathcal{S}$ and exclude the remaining search space. I know the logic behind excluding this should not violate the optimality of my algorithm. What kind of proof technique I should use to formally prove the optimality of my algorithm ? like contradiction or so on. Note : the optimal solution that can be produced by my algorithm is not unique.
It's rarely possible to prove that an algorithm is optimal. You would have to show that your algorithm takes n steps, and for some reason solving the problem in less than n steps is impossible. Even for someone who is 100 times more intelligent than you and me together. 

An example is finding the maximum of n random numbers, which can done in n steps, and n steps are required because if you read n-1 or fewer array elements, then you can't know whether the last one is greater than all other elements or not.