∀ {α : Type u_1} [inst : Std.PRange.UpwardEnumerable α] [inst_1 : LE α] [inst_2 : DecidableLE α]
  [Std.PRange.LawfulUpwardEnumerable α] [Std.PRange.LawfulUpwardEnumerableLE α] (it : Std.IterM Id α) (n : ℕ),
  Std.IterM.IsPlausibleNthOutputStep n it
    (match it.internalState.next.bind (Std.PRange.succMany? n) with
    | none => Std.IterStep.done
    | some next =>
      if next ≤ it.internalState.upperBound then
        Std.IterStep.yield
          { internalState := { next := Std.PRange.succ? next, upperBound := it.internalState.upperBound } } next
      else Std.IterStep.done)