code: def get_predictions_under_minimal_repair(instance, repair_options, optimum):
      '''
      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()
      repops  = repair_options.to_file()
      prg     = [ inst, repops, prediction_core_prg, repair_cardinality_prg ]
      options = '--project --enum-mode cautious --opt-mode=optN --opt-bound='+str(optimum)
      solver  = GringoClasp(clasp_options=options)
      models  = solver.run(prg, collapseTerms=True, collapseAtoms=False)
      os.unlink(inst)
      os.unlink(repops)
      return whatsnew(instance,models[0]f get_predictions_under_minimal_repair(instance, repair_options, optimum):
      '''
      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()
      repops  = repair_options.to_file()
      prg     = [ inst, repops, prediction_core_prg, repair_cardinality_prg ]
      options = '--project --enum-mode cautious --opt-mode=optN --opt-bound='+str(optimum)
      solver  = GringoClasp(clasp_options=options)
      models  = solver.run(prg, collapseTerms=True, collapseAtoms=False)
      os.unlink(inst)
      os.unlink(repops)
      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