code: def get_predictions_under_consistency(instance):
      '''
      Computes the set of signs on edges/vertices that can be cautiously
      derived from [instance], minus those that are a direct consequence
      of obs_[ev]label predicates
      '''
      inst   = instance.to_file()
      prg    = [ prediction_prg, inst, exclude_sol([]) ]
      solver = GringoClasp(clasp_options='--project --enum-mode cautious')
      models = solver.run(prg, collapseTerms=True, collapseAtoms=False)
      os.unlink(inst)
      os.unlink(prg[2])
      return whatsnew(instance,models[0]f get_predictions_under_consistency(instance):
      '''
      Computes the set of signs on edges/vertices that can be cautiously
      derived from [instance], minus those that are a direct consequence
      of obs_[ev]label predicates
      '''
      inst   = instance.to_file()
      prg    = [ prediction_prg, inst, exclude_sol([]) ]
      solver = GringoClasp(clasp_options='--project --enum-mode cautious')
      models = solver.run(prg, collapseTerms=True, collapseAtoms=False)
      os.unlink(inst)
      os.unlink(prg[2])
      return whatsnew(instance,models[0])
docs: Computes the set of signs on edges/vertices that can be cautiously
      derived from [instance], minus those that are a direct consequence
      of obs_[ev]label predicates