let n be Nat; for x, y being nonpair-yielding FinSeqLen of n
for s being State of (n -BitGFA1Circ (x,y)) holds Following (s,(1 + (2 * n))) is stable
let f, g be nonpair-yielding FinSeqLen of n; for s being State of (n -BitGFA1Circ (f,g)) holds Following (s,(1 + (2 * n))) is stable
deffunc H1( set , Nat) -> ManySortedSign = BitGFA1Str ((f . ($2 + 1)),(g . ($2 + 1)),$1);
deffunc H2( set , Nat) -> MSAlgebra over BitGFA1Str ((f . ($2 + 1)),(g . ($2 + 1)),$1) = BitGFA1Circ ((f . ($2 + 1)),(g . ($2 + 1)),$1);
deffunc H3( set , Nat) -> Element of InnerVertices (GFA1CarryStr ((f . ($2 + 1)),(g . ($2 + 1)),$1)) = GFA1CarryOutput ((f . ($2 + 1)),(g . ($2 + 1)),$1);
set S0 = 1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE));
set A0 = 1GateCircuit (<*>,((0 -tuples_on BOOLEAN) --> TRUE));
set h0 = [<*>,((0 -tuples_on BOOLEAN) --> TRUE)];
set N = (1,2) followed_by (In (n,NAT));
A1:
((1,2) followed_by (In (n,NAT))) . 0 = 1
by FUNCT_7:122;
A2:
((1,2) followed_by (In (n,NAT))) . 1 = 2
by FUNCT_7:123;
A3:
((1,2) followed_by (In (n,NAT))) . 2 = n
by FUNCT_7:124;
deffunc H4( Nat) -> Element of NAT = ((1,2) followed_by (In (n,NAT))) . $1;
A4:
for x being set
for n being Nat holds H2(x,n) is strict gate`2=den Boolean Circuit of H1(x,n)
;
deffunc H5( Nat) -> Element of InnerVertices ($1 -BitGFA1Str (f,g)) = $1 -BitGFA1CarryOutput (f,g);
consider h being ManySortedSet of NAT such that
A6:
for n being Element of NAT holds h . n = H5(n)
from PBOOLE:sch 5();
A7:
for n being Nat
for x being set
for A being non-empty Circuit of H1(x,n) st x = h . n & A = H2(x,n) holds
for s being State of A holds Following (s,H4(1)) is stable
proof
set f1 =
and2c ;
set f0 =
xor2c ;
let n be
Nat;
for x being set
for A being non-empty Circuit of H1(x,n) st x = h . n & A = H2(x,n) holds
for s being State of A holds Following (s,H4(1)) is stable let x be
set ;
for A being non-empty Circuit of H1(x,n) st x = h . n & A = H2(x,n) holds
for s being State of A holds Following (s,H4(1)) is stable let A be
non-empty Circuit of
H1(
x,
n);
( x = h . n & A = H2(x,n) implies for s being State of A holds Following (s,H4(1)) is stable )
assume A8:
x = h . n
;
( not A = H2(x,n) or for s being State of A holds Following (s,H4(1)) is stable )
n in NAT
by ORDINAL1:def 12;
then A9:
x = H5(
n)
by A6, A8;
then A10:
x <> [<*(f . (n + 1)),(g . (n + 1))*>,and2c]
by Lm4;
x <> [<*(f . (n + 1)),(g . (n + 1))*>,xor2c]
by A9, Lm4;
hence
( not
A = H2(
x,
n) or for
s being
State of
A holds
Following (
s,
H4(1)) is
stable )
by A2, A10, GFACIRC1:72;
verum
end;
set Sn = n -BitGFA1Str (f,g);
set An = n -BitGFA1Circ (f,g);
set o0 = 0 -BitGFA1CarryOutput (f,g);
consider f1, g1, h1 being ManySortedSet of NAT such that
A11:
n -BitGFA1Str (f,g) = f1 . n
and
A12:
n -BitGFA1Circ (f,g) = g1 . n
and
A13:
f1 . 0 = 1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE))
and
A14:
g1 . 0 = 1GateCircuit (<*>,((0 -tuples_on BOOLEAN) --> TRUE))
and
A15:
h1 . 0 = [<*>,((0 -tuples_on BOOLEAN) --> TRUE)]
and
A16:
for n being Nat
for S being non empty ManySortedSign
for A being non-empty MSAlgebra over S
for z being set st S = f1 . n & A = g1 . n & z = h1 . n holds
( f1 . (n + 1) = S +* H1(z,n) & g1 . (n + 1) = A +* H2(z,n) & h1 . (n + 1) = H3(z,n) )
by Def6;
then A18:
h1 = h
by PBOOLE:3;
A19:
ex u, v being ManySortedSet of NAT st
( n -BitGFA1Str (f,g) = u . H4(2) & n -BitGFA1Circ (f,g) = v . H4(2) & u . 0 = 1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & v . 0 = 1GateCircuit (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & h . 0 = 0 -BitGFA1CarryOutput (f,g) & ( for n being Nat
for S being non empty ManySortedSign
for A1 being non-empty MSAlgebra over S
for x being set
for A2 being non-empty MSAlgebra over H1(x,n) st S = u . n & A1 = v . n & x = h . n & A2 = H2(x,n) holds
( u . (n + 1) = S +* H1(x,n) & v . (n + 1) = A1 +* A2 & h . (n + 1) = H3(x,n) ) ) )
proof
take
f1
;
ex v being ManySortedSet of NAT st
( n -BitGFA1Str (f,g) = f1 . H4(2) & n -BitGFA1Circ (f,g) = v . H4(2) & f1 . 0 = 1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & v . 0 = 1GateCircuit (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & h . 0 = 0 -BitGFA1CarryOutput (f,g) & ( for n being Nat
for S being non empty ManySortedSign
for A1 being non-empty MSAlgebra over S
for x being set
for A2 being non-empty MSAlgebra over H1(x,n) st S = f1 . n & A1 = v . n & x = h . n & A2 = H2(x,n) holds
( f1 . (n + 1) = S +* H1(x,n) & v . (n + 1) = A1 +* A2 & h . (n + 1) = H3(x,n) ) ) )
take
g1
;
( n -BitGFA1Str (f,g) = f1 . H4(2) & n -BitGFA1Circ (f,g) = g1 . H4(2) & f1 . 0 = 1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & g1 . 0 = 1GateCircuit (<*>,((0 -tuples_on BOOLEAN) --> TRUE)) & h . 0 = 0 -BitGFA1CarryOutput (f,g) & ( for n being Nat
for S being non empty ManySortedSign
for A1 being non-empty MSAlgebra over S
for x being set
for A2 being non-empty MSAlgebra over H1(x,n) st S = f1 . n & A1 = g1 . n & x = h . n & A2 = H2(x,n) holds
( f1 . (n + 1) = S +* H1(x,n) & g1 . (n + 1) = A1 +* A2 & h . (n + 1) = H3(x,n) ) ) )
thus
(
n -BitGFA1Str (
f,
g)
= f1 . H4(2) &
n -BitGFA1Circ (
f,
g)
= g1 . H4(2) &
f1 . 0 = 1GateCircStr (
<*>,
((0 -tuples_on BOOLEAN) --> TRUE)) &
g1 . 0 = 1GateCircuit (
<*>,
((0 -tuples_on BOOLEAN) --> TRUE)) &
h . 0 = 0 -BitGFA1CarryOutput (
f,
g) & ( for
n being
Nat for
S being non
empty ManySortedSign for
A1 being
non-empty MSAlgebra over
S for
x being
set for
A2 being
non-empty MSAlgebra over
H1(
x,
n) st
S = f1 . n &
A1 = g1 . n &
x = h . n &
A2 = H2(
x,
n) holds
(
f1 . (n + 1) = S +* H1(
x,
n) &
g1 . (n + 1) = A1 +* A2 &
h . (n + 1) = H3(
x,
n) ) ) )
by A3, A6, A11, A12, A13, A14, A16, A18;
verum
end;
A20:
( InnerVertices (1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE))) is Relation & InputVertices (1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE))) is without_pairs )
by FACIRC_1:38, FACIRC_1:39;
A21:
0 -BitGFA1CarryOutput (f,g) = [<*>,((0 -tuples_on BOOLEAN) --> TRUE)]
by Th16;
InnerVertices (1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE))) = {[<*>,((0 -tuples_on BOOLEAN) --> TRUE)]}
by CIRCCOMB:42;
then A22:
( h . 0 = 0 -BitGFA1CarryOutput (f,g) & 0 -BitGFA1CarryOutput (f,g) in InnerVertices (1GateCircStr (<*>,((0 -tuples_on BOOLEAN) --> TRUE))) )
by A6, A21, TARSKI:def 1;
A23:
for n being Nat
for x being set holds InnerVertices H1(x,n) is Relation
by GFACIRC1:64;
A24:
for n being Nat
for x being set st x = h . n holds
(InputVertices H1(x,n)) \ {x} is without_pairs
proof
set f1 =
and2c ;
set f0 =
xor2c ;
let n be
Nat;
for x being set st x = h . n holds
(InputVertices H1(x,n)) \ {x} is without_pairs let x be
set ;
( x = h . n implies (InputVertices H1(x,n)) \ {x} is without_pairs )
assume A25:
x = h . n
;
(InputVertices H1(x,n)) \ {x} is without_pairs
n in NAT
by ORDINAL1:def 12;
then A26:
x = H5(
n)
by A6, A25;
then A27:
x <> [<*(f . (n + 1)),(g . (n + 1))*>,and2c]
by Lm4;
x <> [<*(f . (n + 1)),(g . (n + 1))*>,xor2c]
by A26, Lm4;
then A28:
InputVertices H1(
x,
n)
= {(f . (n + 1)),(g . (n + 1)),x}
by A27, GFACIRC1:65;
let a be
pair object ;
FACIRC_1:def 2 not a in (InputVertices H1(x,n)) \ {x}
assume A29:
a in (InputVertices H1(x,n)) \ {x}
;
contradiction
then A30:
a in {(f . (n + 1)),(g . (n + 1)),x}
by A28, XBOOLE_0:def 5;
A31:
not
a in {x}
by A29, XBOOLE_0:def 5;
(
a = f . (n + 1) or
a = g . (n + 1) or
a = x )
by A30, ENUMSET1:def 1;
hence
contradiction
by A31, TARSKI:def 1;
verum
end;
A32:
for n being Nat
for x being set st x = h . n holds
( h . (n + 1) = H3(x,n) & x in InputVertices H1(x,n) & H3(x,n) in InnerVertices H1(x,n) )
proof
set f1 =
and2c ;
set f2 =
and2a ;
set f3 =
and2 ;
set f0 =
xor2c ;
let n be
Nat;
for x being set st x = h . n holds
( h . (n + 1) = H3(x,n) & x in InputVertices H1(x,n) & H3(x,n) in InnerVertices H1(x,n) )let x be
set ;
( x = h . n implies ( h . (n + 1) = H3(x,n) & x in InputVertices H1(x,n) & H3(x,n) in InnerVertices H1(x,n) ) )
assume A33:
x = h . n
;
( h . (n + 1) = H3(x,n) & x in InputVertices H1(x,n) & H3(x,n) in InnerVertices H1(x,n) )
n in NAT
by ORDINAL1:def 12;
then A34:
x = H5(
n)
by A6, A33;
h . (n + 1) = H5(
n + 1)
by A6;
hence
h . (n + 1) = H3(
x,
n)
by A34, Th21;
( x in InputVertices H1(x,n) & H3(x,n) in InnerVertices H1(x,n) )
A35:
x <> [<*(f . (n + 1)),(g . (n + 1))*>,and2c]
by A34, Lm4;
x <> [<*(f . (n + 1)),(g . (n + 1))*>,xor2c]
by A34, Lm4;
then
InputVertices H1(
x,
n)
= {(f . (n + 1)),(g . (n + 1)),x}
by A35, GFACIRC1:65;
hence
x in InputVertices H1(
x,
n)
by ENUMSET1:def 1;
H3(x,n) in InnerVertices H1(x,n)
A36:
InnerVertices H1(
x,
n)
= (({[<*(f . (n + 1)),(g . (n + 1))*>,xor2c]} \/ {(GFA1AdderOutput ((f . (n + 1)),(g . (n + 1)),x))}) \/ {[<*(f . (n + 1)),(g . (n + 1))*>,and2c],[<*(g . (n + 1)),x*>,and2a],[<*x,(f . (n + 1))*>,and2]}) \/ {(GFA1CarryOutput ((f . (n + 1)),(g . (n + 1)),x))}
by GFACIRC1:63;
H3(
x,
n)
in {H3(x,n)}
by TARSKI:def 1;
hence
H3(
x,
n)
in InnerVertices H1(
x,
n)
by A36, XBOOLE_0:def 3;
verum
end;
for s being State of (n -BitGFA1Circ (f,g)) holds Following (s,(H4( 0 ) + (H4(2) * H4(1)))) is stable
from CIRCCMB2:sch 22(A4, A5, A7, A19, A20, A22, A23, A24, A32);
hence
for s being State of (n -BitGFA1Circ (f,g)) holds Following (s,(1 + (2 * n))) is stable
by A1, A2, A3; verum