proposition: Lemma finite_incl : forall P:set, finite P -> forall Q:set, dec Q -> incl Q P -> finite Q.
proof: Proof. intros P FP; elim FP; intros; auto. apply fin_eq_empty. unfold empty,equiv in *|-*; intuition. case (e x); auto. case (X0 x); intros. apply fin_eq_add with (x:=x) (Q:=(rem x Q0)); auto. apply X. unfold dec,rem. intro y; case (decA x y); intro. case (X0 y); subst; intuition. case (X0 y); intuition. case (incl_rem_add_iff x Q0 Q); intuition. apply H1; apply incl_trans with P0; auto. apply equiv_sym; auto. apply X; auto. red; intros. case (e x0); intuition. case H1; intuition; subst; auto. case n0; auto. Qed.
imports: Coq(Arith) Coq(Lt)