Definition optSwap (A : Set)(opt : option (A * A)) :=
  match opt with
    | None => None
    | Some (a1, a2) =>
      Some (a2, a1)
  end.

Lemma listReplace_twice_nil : forall (A : Set)(n : nat) (a1 a2 def : A), listReplace (listReplace nil n a1 def) n a2 def = listReplace nil n a2 def.