reserve x,y,z,c for object,
  f for Function of 2-tuples_on BOOLEAN, BOOLEAN;
reserve s for State of 2GatesCircuit(x,y,c,f);

theorem
  for s being State of MajorityICirc(x,y,c), a,b being Element of
  BOOLEAN st a = s.c & b = s.x holds (Following s).[<*c,x*>, '&'] = a '&' b
proof
  set cx = <*c,x*>;
  set S3 = 1GateCircStr(cx, '&'), A3 = 1GateCircuit(c,x, '&');
  reconsider cc = c, xx = x as Vertex of S3 by Th43;
  reconsider v3 = [cx, '&'] as Element of InnerVertices S3 by Th47;
  set S = MajorityIStr(x,y,c), A = MajorityICirc(x,y,c);
  let s be State of A;
  let a,b be Element of BOOLEAN such that
A1: a = s.c & b = s.x;
  reconsider cc, xx as Vertex of S by Th20;
  reconsider s3 = s|the carrier of S3 as State of A3 by Th26;
  reconsider v = v3 as Element of InnerVertices S by Th21;
A2: dom s3 = the carrier of S3 by CIRCUIT1:3;
  thus (Following s).[cx, '&'] = (Following s3).v by CIRCCOMB:64
    .= '&'.<*s3.cc,s3.xx*> by Th48
    .= '&'.<*s.cc,s3.xx*> by A2,FUNCT_1:47
    .= '&'.<*s.cc,s.xx*> by A2,FUNCT_1:47
    .= a '&' b by A1,Def5;
end;
