unfold equiv_h in |- *.
intros.
apply equiv_irr_irr_impl_equal; try apply irreducible_is_irreducible.
unfold equiv_h in |- *.
elim H; intros.
split; apply le_h_irr_le_h; trivial.
Qed.

(** I(union I(h) g) = I(union h g) *)
Theorem update_irr :
forall g h : hedge,
equal (irreducible (union (irreducible h) g)) (irreducible (union h g)).