<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def verify_and_extract_time(self, log_file, division, result_name):
 """Verifies and result and returns timing. Uses submodule mlp_compliance (https://github.com/bitfort/mlp_compliance) Args: log_file: Absolute path to result file. division: open, closed result_name: name of the benchmark, ncf, ssd, etc Returns: Time for the result or `INFINITE_TIME` if not a success Raises: Exception: If expected compliance level is not hit or cannot figure out expected compliance level. """

    expected_level = constants.DIVISION_COMPLIANCE_CHECK_LEVEL.get(
        division, None)
    print(result_name)
    if expected_level is None:
      raise Exception('Unknown division: {}'.format(division))
    start_time, level, dt, _, success = self.get_compliance(log_file)
    print(float(start_time))
    if int(level) != expected_level:
      raise Exception('Error Level {} does not match needed level {}:{}'.format(
          level, expected_level, log_file))

    # Sets failure to converge to "infinite time" per the rules
    if success and dt:
      return dt, start_time
    else:
      print('Result was not a success set to INFINITE_TIME({})'.format(
          INFINITE_TIME))
      return INFINITE_TIME, start_time