
theorem Th2:
  for X be set for p be FinSequence of bool X for q be FinSequence
  of BOOLEAN for i be Nat st q.i = TRUE holds MergeSequence(p,q).i = p.i
proof
  let X be set;
  let p be FinSequence of bool X;
  let q be FinSequence of BOOLEAN;
  let i be Nat;
  assume
A1: q.i = TRUE;
  now
    per cases;
    suppose
      i in dom p;
      hence MergeSequence(p,q).i = IFEQ(q.i,TRUE,p.i,X\p.i) by Def1
        .= p.i by A1,FUNCOP_1:def 8;
    end;
    suppose
A2:   not i in dom p;
      dom p = Seg len p by FINSEQ_1:def 3
        .= Seg len MergeSequence(p,q) by Def1
        .= dom MergeSequence(p,q) by FINSEQ_1:def 3;
      hence MergeSequence(p,q).i = {} by A2,FUNCT_1:def 2
        .= p.i by A2,FUNCT_1:def 2;
    end;
  end;
  hence thesis;
end;
