
theorem Th18: :: SDR --> Hall
  for F being finite set, A being FinSequence of bool F holds
  (ex X being set st X is_a_system_of_different_representatives_of A)
  implies A is Hall
proof
  let F be finite set, A be FinSequence of bool F;
  given X being set such that
A1: X is_a_system_of_different_representatives_of A;
  consider f being FinSequence of F such that
  f = X and
A2: dom A = dom f and
A3: for i being Element of NAT st i in dom f holds f.i in A.i and
A4: f is one-to-one by A1;
  for J being finite set st J c= dom A holds card J <= card (union (A, J))
  proof
    let J be finite set;
    set X = J;
    set Y = union (A, J);
    set g = f | X;
    assume
A5: J c= dom A;
    then
A6: dom g = X by A2,RELAT_1:62;
A7: dom g c= dom f by RELAT_1:60;
A8: rng g c= Y
    proof
      let x be object;
      assume x in rng g;
      then consider a being object such that
A9:   a in dom g and
A10:  x = g.a by FUNCT_1:def 3;
      a in dom f by A7,A9;
      then reconsider a as Element of NAT;
      f.a in A.a by A2,A3,A5,A6,A9;
      then g.a in A.a by A9,FUNCT_1:47;
      hence thesis by A5,A6,A9,A10,Def1;
    end;
    g is one-to-one by A4,FUNCT_1:52;
    then Segm card X c= Segm card Y by A6,A8,CARD_1:10;
    hence thesis by NAT_1:39;
  end;
  hence thesis;
end;
