Section Cardinality.
Variable X : eqType.
Implicit Types A B : list X.
Fixpoint card A : nat :=
match A with
| nil => 0
| x::A => if decision (x el A) then card A else 1 + card A
end.

Lemma card_lt A B x :
A <<= B -> x el B -> ~ x el A -> card A < card B.