
theorem Th13:
  for F being finite set, A being FinSequence of bool F,
      i being Element of NAT,
      x, J being set st not i in J holds
    union (A, J) = union (Cut(A, i, x), J)
proof
  let F be finite set, A be FinSequence of bool F, i be Element of NAT, x, J
  be set;
  assume
A1: not i in J;
  thus union (A, J) c= union (Cut(A, i, x), J)
  proof
    let z be object;
    assume z in union (A, J);
    then consider j being set such that
A2: j in J and
A3: j in dom A and
A4: z in A.j by Def1;
A5: j in dom (Cut(A,i,x)) by A3,Def2;
    per cases;
    suppose
      i = j;
      hence thesis by A1,A2;
    end;
    suppose
      i <> j;
      then (Cut(A,i,x)).j = A.j by A5,Def2;
      hence thesis by A2,A4,A5,Def1;
    end;
  end;
  let z be object;
  assume z in union (Cut(A, i, x), J);
  then consider j being set such that
A6: j in J and
A7: j in dom Cut(A, i, x) and
A8: z in (Cut(A, i, x)).j by Def1;
A9: j in dom A by A7,Def2;
  per cases;
  suppose
    i = j;
    hence thesis by A1,A6;
  end;
  suppose
    i <> j;
    then (Cut(A,i,x)).j = A.j by A7,Def2;
    hence thesis by A6,A8,A9,Def1;
  end;
end;
