
theorem Th61:
  for x,y,z being set st z <> [<*x,y*>, xor2c] for s being State
of GFA1AdderCirc(x,y,z) for a1,a2,a3 being Element of BOOLEAN st a1 = s.x & a2
  = s.y & a3 = s.z holds Following(s,2).GFA1AdderOutput(x,y,z) = a1 'xor' 'not'
  a2 'xor' 'not' a3 & Following(s,2).[<*x,y*>,xor2c] = a1 'xor' 'not' a2 &
  Following(s,2).x = a1 & Following(s,2).y = a2 & Following(s,2).z = a3
proof
  set f = xor2c;
  let x,y,z be set such that
A1: z <> [<*x,y*>,f];
  set xy = [<*x,y*>,f];
  set A = GFA1AdderCirc(x,y,z);
  let s be State of A;
  let a1,a2,a3 be Element of BOOLEAN such that
A2: a1 = s.x & a2 = s.y and
A3: a3 = s.z;
  thus (Following(s,2)).GFA1AdderOutput(x,y,z) = f.<* f.<*a1, a2*>, a3*> by A1
,A2,A3,FACIRC_1:62
    .= f.<*a1 'xor' 'not' a2, a3*> by Def4
    .= a1 'xor' 'not' a2 'xor' 'not' a3 by Def4;
  (Following(s,2)).xy = f.<*a1, a2*> by A1,A2,FACIRC_1:62;
  hence (Following(s,2)).xy = a1 'xor' 'not' a2 by Def4;
  thus thesis by A1,A2,A3,FACIRC_1:62;
end;
