propositions and inference proofs append(proof_atreturn proofs the following provides simple unit test that is hard wired for triv_kblogicexplain py -(continued from logicproblem import triv_kb def test() prove_atom(triv_kb,'i_am'assert "triv_kb proving i_am gave "+str( prove_atom(triv_kb,'i_smell'assert =="fail""triv_kb proving i_smell gave "+str( print("passed unit tests"if __name__ ="__main__"test(try from logicproblem import electelect_bug elect max_display_level= give detailed trace prove_atom(elect'live_w 'prove_atom(elect'lit_l 'the interact(kbprovides an interactive interface to explore proofs for knowledge base kb the user can ask to prove atoms and can ask how an atom was proved to ask howthere must be current atom for which there is proof this starts as the atom asked when the user asks "how nthe current atom becomes the -th element of the body of the clause used to prove the (previouscurrent atom the command "upmakes the current atom the atom in the head of the rule containing the (previouscurrent atom thus "how nmoves down the proof tree and "upmoves up the proof treeallowing the user to explore the full proof logicexplain py -(continued helptext """commands areask atom ask is there is proof for atom (atom should not be in quoteshow show the clause that was used to prove atom how show the clause used to prove the nth element of the body up go back up proof tree to explore other parts of the proof tree kb print the knowledge base quit quit this interaction (and go back to pythonhelp print this text "" def interact(kb)going true ups [stack for going up proof="failthere is no proof to start while goinginp input("logicexplain"inps inp split("version june