Instance log_base_params : BaseParams := @log_base_params orig_base_params.Instance log_multi_params : DiskOpMultiParams log_base_params := log_multi_params snapshot_interval.Instance log_failure_params : DiskOpFailureParams log_multi_params := log_failure_params snapshot_interval.Definition disk_correct dsk h st  :=
    exists s (entries : list entry) (snap : data),
      dsk Count = Some (serialize (length entries)) /\
      dsk Log = Some s /\
      IOStreamWriter.unwrap s = IOStreamWriter.unwrap (list_serialize_rec entry _ entries) /\
      dsk Snapshot = Some (serialize snap) /\
      log_num_entries st = length entries /\
      (apply_log h snap entries = log_data st).

Lemma log_input_handlers_spec : forall h m st ops out st' l dsk dsk', disk_correct dsk h st -> log_input_handlers snapshot_interval h m st = (ops, out, st', l) -> apply_ops dsk ops = dsk' -> disk_correct dsk' h st'.