I found a surprising behaviour (for me) when using Isar. I try to use assume and sometimes Isar complains it cannot resolve pending goals, for example my most typical example is having a an assumption and not being able to assume it:
lemma
assumes "A"
shows "A"
proof -
assume "A"
from this show "A" by (simp)
qed
though the following does work:
lemma
shows "A⟹A"
proof -
assume "A"
from this show "A" by simp
qed
which is not terribly surprising.
But the next one is surprising to me that it works given that my first example failed:
lemma
assumes "A"
shows "A"
proof -
have "A" by (simp add: assms)
from this show "A" by (simp)
qed
why is the first one different from the second one?
Error msg:
Failed to refine any pending goal
Local statement fails to refine any pending goal
Failed attempt to solve goal by exported rule:
(A) ⟹ A