reserve x,y,z for set;
reserve f,f1,f2,f3 for FinSequence,
  p,p1,p2,p3 for set,
  i,k for Nat;
reserve D for non empty set,
  p,p1,p2,p3 for Element of D,
  f,f1,f2 for FinSequence of D;
reserve D for non empty set;
reserve p, q for FinSequence,
  X, Y, x, y for set,
  D for non empty set,
  i, j, k, l, m, n, r for Nat;
reserve a, a1, a2 for TwoValued Alternating FinSequence;

theorem
  a1<>a2 & len a1 = len a2 & rng a1 = rng a2 implies
  for a st len a=len a1 & rng a=rng a1 holds a=a1 or a=a2
proof
  assume that
A1: a1 <> a2 and
A2: len a1 = len a2 and
A3: rng a1 = rng a2;
  let a;
  assume that
A4: len a = len a1 and
A5: rng a = rng a1;
  assume
A6: a <> a1;
  now
    let i be Nat;
    assume that
A7: 1<=i and
A8: i<=len a;
    consider X, Y being object such that
    X <> Y and
A9: rng a = { X, Y } by Th19;
A10: i in dom a by A7,A8,FINSEQ_3:25;
    then a.i in rng a by FUNCT_1:def 3;
    then
A11: a.i=X or a.i=Y by A9,TARSKI:def 2;
A12: dom a=Seg len a by FINSEQ_1:def 3;
    dom a1=Seg len a1 by FINSEQ_1:def 3;
    then a1.i in rng a1 by A4,A10,A12,FUNCT_1:def 3;
    then
A13: a1.i=X or a1.i=Y by A5,A9,TARSKI:def 2;
    dom a2=Seg len a2 by FINSEQ_1:def 3;
    then a2.i in rng a2 by A2,A4,A10,A12,FUNCT_1:def 3;
    then a2.i=X or a2.i=Y by A3,A5,A9,TARSKI:def 2;
    hence a.i = a2.i by A1,A2,A3,A4,A5,A6,A7,A8,A11,A13,Th21;
  end;
  hence thesis by A2,A4;
end;
