
theorem
  for X be set for x,y,z be Subset of X for q be FinSequence of BOOLEAN
  holds (q.1 = TRUE implies MergeSequence(<*x,y,z*>,q).1 = x) & (q.1 = FALSE
implies MergeSequence(<*x,y,z*>,q).1 = X\x) & (q.2 = TRUE implies MergeSequence
(<*x,y,z*>,q).2 = y) & (q.2 = FALSE implies MergeSequence(<*x,y,z*>,q).2 = X\y)
& (q.3 = TRUE implies MergeSequence(<*x,y,z*>,q).3 = z) & (q.3 = FALSE implies
  MergeSequence(<*x,y,z*>,q).3 = X\z)
proof
  let X be set;
  let x,y,z be Subset of X;
  let q be FinSequence of BOOLEAN;
  thus q.1 = TRUE implies MergeSequence(<*x,y,z*>,q).1 = x
  proof
    assume q.1 = TRUE;
    hence MergeSequence(<*x,y,z*>,q).1 = <*x,y,z*>.1 by Th2
      .= x;
  end;
  3 in Seg 3 by FINSEQ_1:1;
  then
A1: 3 in dom <*x,y,z*> by FINSEQ_1:89;
  1 in Seg 3 by FINSEQ_1:1;
  then
A2: 1 in dom <*x,y,z*> by FINSEQ_1:89;
  thus q.1 = FALSE implies MergeSequence(<*x,y,z*>,q).1 = X\x
  proof
    assume q.1 = FALSE;
    hence MergeSequence(<*x,y,z*>,q).1 = X\<*x,y,z*>.1 by A2,Th3
      .= X\x;
  end;
  thus q.2 = TRUE implies MergeSequence(<*x,y,z*>,q).2 = y
  proof
    assume q.2 = TRUE;
    hence MergeSequence(<*x,y,z*>,q).2 = <*x,y,z*>.2 by Th2
      .= y;
  end;
  2 in Seg 3 by FINSEQ_1:1;
  then
A3: 2 in dom <*x,y,z*> by FINSEQ_1:89;
  thus q.2 = FALSE implies MergeSequence(<*x,y,z*>,q).2 = X\y
  proof
    assume q.2 = FALSE;
    hence MergeSequence(<*x,y,z*>,q).2 = X\<*x,y,z*>.2 by A3,Th3
      .= X\y;
  end;
  thus q.3 = TRUE implies MergeSequence(<*x,y,z*>,q).3 = z
  proof
    assume q.3 = TRUE;
    hence MergeSequence(<*x,y,z*>,q).3 = <*x,y,z*>.3 by Th2
      .= z;
  end;
  assume q.3 = FALSE;
  hence MergeSequence(<*x,y,z*>,q).3 = X\<*x,y,z*>.3 by A1,Th3
    .= X\z;
end;
