How can I know if a Theorem is provable inside a logic system? (Pure Positive Implicational Propositional Logic) Im using the pure implicational logic with  detachment, substituition and the following two axioms:

*

*$(A) \Rightarrow [(B) \Rightarrow (A)]$

*$\{(A) \Rightarrow [(B) \Rightarrow (C)]\} \Rightarrow \{[(A) \Rightarrow (B)] \Rightarrow [(A) \Rightarrow (C)]\}$
Im going through the book Logic, Mathematics, and Computer Science from Yves Nievergelt.
After presenting a collection of proofs in and about pure implicational logic, the author give a list of formulae to the reader show if it is a Theorem in pure implicational logic, but he states that some formulae with implications cant be proved inside this system.
An example is the Peirce Law $\{[(P)\Rightarrow(Q)]\Rightarrow (P)\} \Rightarrow (P)$, I tried very hard to derive this from the Axioms and using all the presented theorems, later I just did a search and the book itself says its not possible inside the implicational calculus.
Then I got stucked in the next formulae which is $[(P) \Rightarrow (R)] \Rightarrow [\{[(P) \Rightarrow(Q)] \Rightarrow (R)\} \Rightarrow (R)]$, I have no idea how can I deduce if its provable with the given axioms or no, then its becoming very frustrating, as Im just in the first collection of exercises it is somekind boring to skip.
I want to know if there is a way to determine if a given well-formed formula is unprovable inside the implicational logic, and as a newcomer to logics I wonder if its a common pratice in other books to give hidden unprovable formulae as exercises.
The author commented a preliminary version of Deduction Theorem, but even with this some formulae still unprovable for example the Peirce Law again. What I have been doing is to derive the proved Theorems in the book(the most basic ones) for myself, then I try to apply substituitions in a way that similar sub-formulas to one im trying to prove appears, so I can try to reduce to the goal.
All tips on learning logic are welcome.
 A: Remember that in the end, formal logic is just that: a formal, i.e. purely syntactical system of symbols, where rules like the ones you state merely say: "If you have a statement that looks that [this string of symbols], then you write down [this other string of symbols]"
The point is: the system itself has no understanding what the symbols are supposed to mean ... and in fact we could interpret the symbols completely differently from what they were intended to capture.
Indeed, suppose that the expressions in out system are not assigned one of two truth-values, but instead one of three values: $1$, $2$, or $3$.  Like truth-functional logic, however, we will assume that the value of larger expressions is a function of the values of smaller expressions when combined using the $\to$ operator, and it all works in accordance to the table below (which is not no longer a truth-table ... but, for lack of a better word, a "$1,2,3$-table" ... anyway, it just specific how $\to$ works as a function):
\begin{array}{cc|c}
P&Q&P \to Q\\
\hline
1&1&1\\
1&2&2\\
1&3&3\\
2&1&1\\
2&2&1\\
2&3&3\\
3&1&1\\
3&2&1\\
3&3&1\\
\end{array}
Now:  For yourself, please work out the "$1,2,3$-tables" of $A \to (B \to A)$ and $(A \to (B \to C)) \to ((A \to B) \to (A \to C))$  (yes, for that second one you'll get $27$ rows!)
You should find that in all rows, both statements evaluate to $1$, without exception.  We could therefore call them "$1$-tautologies"
Next, consider your only rule of inference, Modus Ponens. Observe from the table above that when $P$ is $1$, and $P \to Q$ is $1$, then the value of $Q$ has to be $1$ as well. This means that if you apply Modus Ponens to two $1$-tautologies, the result will be a $1$-tautology as well.
OK, but now finally observe that when $P$ has the value of $2$, and $Q$ the value of $3$, then $((P \to Q) \to P) \to P$ evaluates to $((2 \to 3) \to 2) \to 2 = (3 \to 2) \to 2 = 1 \to 2 = 2$
So, $((P \to Q) \to P) \to P$ is not a $1$-tautology!
What this all means is that in your system of logic, when what you are doing is interpreted from this persepctive, you can only write down $1$-tautologies using your axioms, and infer further $1$-tautologies from that, but you'll never be able to to derive $((P \to Q) \to P) \to P$, since that is not a $1$-tautology. So that's why it is not provable.
Now, how did I come up with this non-standard interpretation?  Well, I just use a little computer program that systematically searches for these.  You can try and find them by hand, of course, and sometimes you'll be able to find them, but there are also times where the only way to demonstrate that some specific sentence is not provable from a set of axioms and inference rules, is to use interpretations where the expressions can take on one of four possible values, or even more.
Now, what I actually don't know is if there is a decision procedure for such provability. That is, while my computer program is able to find these 'counter-models' for certain specific cases, I know for a fact that my program will sometimes stop without giving any answer. So: is there an algorithm that will always be able to tell whether some sentence is provable from some finite set of axioms and finite inference rules or not?  I expect there is not, for you can presumably reduce that to the Halting Problem... but I am not sure.
