proposition: Theorem remove_neutral_equal: forall (t t' : bin) (l : list A), bin_A l (remove_neutral t) = bin_A l (remove_neutral t') -> bin_A l t = bin_A l t'.
proof: Proof. unfold remove_neutral; intros t t' l. repeat rewrite remove_neutral2_valid_A. repeat rewrite remove_neutral1_valid_A. trivial. Qed.
imports: ZArith List Arith Zwf Relations Inverse_Image Transitive_Closure Zdiv