theory_solver' ks atoms 
  = do hatoms    <- mapM hashConsAtom atoms
       let km     = M.fromList $ zip (hid <$> hatoms) ks
       res       <- crunch
       core      <- resultHAtoms res
       return     $ [km ! hid a | a <- core]
theory_solver' ks atoms 
  = do hatoms    <- mapM hashConsAtom atoms
       let km     = M.fromList $ zip (hid <$> hatoms) ks
       res       <- crunch
       core      <- resultHAtoms res
       return     $ [km ! hid a | a <- core]
theory_solver' ks atoms 
  = do hatoms    <- mapM hashConsAtom atoms
       let km     = M.fromList $ zip (hid <$> hatoms) ks
       res       <- crunch
       core      <- resultHAtoms res
       return     $ [km ! hid a | a <- core]