∀ {α : Type u_1} {β : Type u_2} (motive : Option (α × Stream'.WSeq α) → Option (β × Stream'.WSeq β) → Sort u_3) (a : α)
  (s : Stream'.WSeq α) (b : β) (t : Stream'.WSeq β) (h_1 : Unit → motive none none)
  (h_2 : (a : α) → (s : Stream'.WSeq α) → (b : β) → (t : Stream'.WSeq β) → motive (some (a, s)) (some (b, t)))
  (h_3 : (x : Option (α × Stream'.WSeq α)) → (x_1 : Option (β × Stream'.WSeq β)) → motive x x_1),
  (match some (a, s), some (b, t) with
    | none, none => h_1 ()
    | some (a, s), some (b, t) => h_2 a s b t
    | x, x_1 => h_3 x x_1) =
    h_2 a s b t