"no innocent person had lied"
Ibn and Hasan made the claims.
If Ibn is culprit then he must be lying but then why Hasan is lying? Our assumption of Ibn as culprit is wrong.
Now assuming Abu as culprit, both Hasan and Ibn must be pointing towards same person because they are saying the truth but its not the case and our assumption of Abu being the culprit is also wrong.
Assuming Hassan as culprit he is lying and Iba is pointing towards Hasan as Iba is innocent.
Hasan stole the sword.