reserve x,y,c for set;

theorem
  for s being State of BorrowICirc(x,y,c), a,b being Element of BOOLEAN
  st a = s.x & b = s.c holds (Following s).[<*x,c*>, and2a] = 'not' a '&' b
proof
  set xc = <*x,c*>;
  set S3 = 1GateCircStr(xc, and2a), A3 = 1GateCircuit(x,c, and2a);
  set S = BorrowIStr(x,y,c), A = BorrowICirc(x,y,c);
  set v3 = [xc, and2a];
  let s be State of A;
  let a,b be Element of BOOLEAN such that
A1: a = s.x & b = s.c;
  reconsider xx = x, cc = c as Vertex of S3 by FACIRC_1:43;
  reconsider s3 = s|the carrier of S3 as State of A3 by FACIRC_1:26;
  reconsider v3 as Element of InnerVertices S3 by FACIRC_1:47;
  reconsider v = v3 as Element of InnerVertices S by FACIRC_1:21;
A2: dom s3 = the carrier of S3 by CIRCUIT1:3;
  reconsider xx, cc as Vertex of S by FACIRC_1:20;
  thus (Following s).[xc, and2a] = (Following s3).v by CIRCCOMB:64
    .= and2a.<*s3.xx,s3.cc*> by FACIRC_1:50
    .= and2a.<*s.xx,s3.cc*> by A2,FUNCT_1:47
    .= and2a.<*s.xx,s.cc*> by A2,FUNCT_1:47
    .= 'not' a '&' b by A1,TWOSCOMP:def 2;
end;
