
theorem Th24:
  for x,y being FinSequence, n being Nat holds
  (n-BitMajorityOutput(x,y))`1 = <*> &
  (n-BitMajorityOutput(x,y))`2 = (0-tuples_on BOOLEAN)-->FALSE &
  proj1 (n-BitMajorityOutput(x,y))`2 = 0-tuples_on BOOLEAN or
  card (n-BitMajorityOutput(x,y))`1 = 3 & (n-BitMajorityOutput(x,y))`2 = or3 &
  proj1 (n-BitMajorityOutput(x,y))`2 = 3-tuples_on BOOLEAN
proof
  let x,y be FinSequence;
  defpred P[Nat] means ($1-BitMajorityOutput(x,y))`1 = <*> &
  ($1-BitMajorityOutput(x,y))`2 = (0-tuples_on BOOLEAN)-->FALSE &
  proj1 ($1-BitMajorityOutput(x,y))`2 = 0-tuples_on BOOLEAN or
  card ($1-BitMajorityOutput(x,y))`1 = 3 &
  ($1-BitMajorityOutput(x,y))`2 = or3 &
  proj1 ($1-BitMajorityOutput(x,y))`2 = 3-tuples_on BOOLEAN;
A1: dom ((0-tuples_on BOOLEAN)-->FALSE) = 0-tuples_on BOOLEAN by FUNCOP_1:13;
  0-BitMajorityOutput(x,y) = [<*>, (0-tuples_on BOOLEAN)-->FALSE] by Th7;
  then
A2: P[ 0 ] by A1;
A3: now
    let n be Nat;
    assume P[n];
    set c = n-BitMajorityOutput(x, y);
A4: (n+1)-BitMajorityOutput(x, y) =
    MajorityOutput(x .(n+1), y.(n+1), c) by Th12
      .= [<*[<*x .(n+1),y.(n+1)*>, '&'], [<*y.(n+1),c*>, '&'],
    [<*c,x .(n+1)*>, '&']*>, or3];
A5: dom or3 = 3-tuples_on BOOLEAN by FUNCT_2:def 1;
    thus P[n+1] by A4,A5,FINSEQ_1:45;
  end;
  thus for n being Nat holds P[n] from NAT_1:sch 2(A2,A3);
end;
