Proof using.
unfold update2.
intros.
break_if; intuition congruence.
Qed.

(* Specifications: *)
Lemma update2_diff2 :
forall (sigma : A -> A -> B) x y v x' y',
y <> y' ->
update2 A_eq_dec sigma x y v x' y' = sigma x' y'.
Lemma update2_diff_prod :
forall (sigma : A -> A -> B) x y v x' y',
(x, y) <> (x', y') ->
update2 A_eq_dec sigma x y v x' y' = sigma x' y'.
Lemma update2_nop :
forall (sigma : A -> A -> B) x y x' y',
update2 A_eq_dec sigma x y (sigma x y) x' y' = sigma x' y'.