registration
let x1,
x2,
x3,
x4 be non
pair object ;
coherence
not {x1,x2,x3,x4} is with_pair
by ENUMSET1:def 2;
let x5 be non
pair object ;
coherence
not {x1,x2,x3,x4,x5} is with_pair
by ENUMSET1:def 3;
let x6 be non
pair object ;
coherence
not {x1,x2,x3,x4,x5,x6} is with_pair
by ENUMSET1:def 4;
let x7 be non
pair object ;
coherence
not {x1,x2,x3,x4,x5,x6,x7} is with_pair
by ENUMSET1:def 5;
end;
::
deftheorem defines
STC0IIStr WALLACE1:def 1 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IIStr (x1,x2,x3,x5,x6,x7) = (BitGFA0Str (x1,x2,x3)) +* (BitGFA0Str (x5,x6,x7));
definition
let x1,
x2,
x3,
x5,
x6,
x7 be
set ;
func STC0IICirc (
x1,
x2,
x3,
x5,
x6,
x7)
-> strict gate`2=den Boolean Circuit of
STC0IIStr (
x1,
x2,
x3,
x5,
x6,
x7)
equals
(BitGFA0Circ (x1,x2,x3)) +* (BitGFA0Circ (x5,x6,x7));
coherence
(BitGFA0Circ (x1,x2,x3)) +* (BitGFA0Circ (x5,x6,x7)) is strict gate`2=den Boolean Circuit of STC0IIStr (x1,x2,x3,x5,x6,x7)
;
end;
::
deftheorem defines
STC0IICirc WALLACE1:def 2 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IICirc (x1,x2,x3,x5,x6,x7) = (BitGFA0Circ (x1,x2,x3)) +* (BitGFA0Circ (x5,x6,x7));
theorem ThSTC0IIS1:
for
x1,
x2,
x3,
x5,
x6,
x7 being
set holds
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) = (({[<*x1,x2*>,xor2],(GFA0AdderOutput (x1,x2,x3))} \/ {[<*x1,x2*>,and2],[<*x2,x3*>,and2],[<*x3,x1*>,and2],(GFA0CarryOutput (x1,x2,x3))}) \/ {[<*x5,x6*>,xor2],(GFA0AdderOutput (x5,x6,x7))}) \/ {[<*x5,x6*>,and2],[<*x6,x7*>,and2],[<*x7,x5*>,and2],(GFA0CarryOutput (x5,x6,x7))}
theorem
for
x1,
x2,
x3,
x5,
x6,
x7 being
set holds
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) is
Relation ;
theorem ThSTC0IIS4:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) = {x1,x2,x3,x5,x6,x7}
theorem ThSTC0IIS5:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) is
without_pairs
theorem ThSTC0IIS6:
for
x1,
x2,
x3,
x5,
x6,
x7 being
set holds
(
x1 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x2 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x3 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x5 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x6 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x7 in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x1,x2*>,xor2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x1,x2*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x2,x3*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x3,x1*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x5,x6*>,xor2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x5,x6*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x6,x7*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x7,x5*>,and2] in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in the
carrier of
(STC0IIStr (x1,x2,x3,x5,x6,x7)) )
theorem ThSTC0IIS7:
for
x1,
x2,
x3,
x5,
x6,
x7 being
set holds
(
[<*x1,x2*>,xor2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x1,x2*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x2,x3*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x3,x1*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x5,x6*>,xor2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x5,x6*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x6,x7*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
[<*x7,x5*>,and2] in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) )
theorem ThSTC0IIS8:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set holds
(
x1 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x2 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x3 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x5 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x6 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) &
x7 in InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) )
definition
let x1,
x2,
x3,
x5,
x6,
x7 be
set ;
func STC0IICarryOutputC1 (
x1,
x2,
x3,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) equals
GFA0CarryOutput (
x1,
x2,
x3);
coherence
GFA0CarryOutput (x1,x2,x3) is Element of InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7))
by ThSTC0IIS7;
func STC0IIAdderOutputA1 (
x1,
x2,
x3,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) equals
GFA0AdderOutput (
x1,
x2,
x3);
coherence
GFA0AdderOutput (x1,x2,x3) is Element of InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7))
by ThSTC0IIS7;
func STC0IICarryOutputC2 (
x1,
x2,
x3,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) equals
GFA0CarryOutput (
x5,
x6,
x7);
coherence
GFA0CarryOutput (x5,x6,x7) is Element of InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7))
by ThSTC0IIS7;
func STC0IIAdderOutputA2 (
x1,
x2,
x3,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) equals
GFA0AdderOutput (
x5,
x6,
x7);
coherence
GFA0AdderOutput (x5,x6,x7) is Element of InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7))
by ThSTC0IIS7;
end;
::
deftheorem defines
STC0IICarryOutputC1 WALLACE1:def 3 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IICarryOutputC1 (x1,x2,x3,x5,x6,x7) = GFA0CarryOutput (x1,x2,x3);
::
deftheorem defines
STC0IIAdderOutputA1 WALLACE1:def 4 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IIAdderOutputA1 (x1,x2,x3,x5,x6,x7) = GFA0AdderOutput (x1,x2,x3);
::
deftheorem defines
STC0IICarryOutputC2 WALLACE1:def 5 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IICarryOutputC2 (x1,x2,x3,x5,x6,x7) = GFA0CarryOutput (x5,x6,x7);
::
deftheorem defines
STC0IIAdderOutputA2 WALLACE1:def 6 :
for x1, x2, x3, x5, x6, x7 being set holds STC0IIAdderOutputA2 (x1,x2,x3,x5,x6,x7) = GFA0AdderOutput (x5,x6,x7);
LmSTC0IIS09a:
for a, b, c being non pair set
for x, y, z being set holds InputVertices (BitGFA0Str (a,b,c)) misses InnerVertices (BitGFA0Str (x,y,z))
theorem ThSTC0IIS10:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0IICirc (x1,x2,x3,x5,x6,x7)) for
a1,
a2,
a3,
a5,
a6,
a7 being
Element of
BOOLEAN st
a1 = s . x1 &
a2 = s . x2 &
a3 = s . x3 &
a5 = s . x5 &
a6 = s . x6 &
a7 = s . x7 holds
(
(Following (s,2)) . (STC0IICarryOutputC1 (x1,x2,x3,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) &
(Following (s,2)) . (STC0IIAdderOutputA1 (x1,x2,x3,x5,x6,x7)) = (a1 'xor' a2) 'xor' a3 &
(Following (s,2)) . (STC0IICarryOutputC2 (x1,x2,x3,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5) &
(Following (s,2)) . (STC0IIAdderOutputA2 (x1,x2,x3,x5,x6,x7)) = (a5 'xor' a6) 'xor' a7 &
(Following (s,2)) . x1 = a1 &
(Following (s,2)) . x2 = a2 &
(Following (s,2)) . x3 = a3 &
(Following (s,2)) . x5 = a5 &
(Following (s,2)) . x6 = a6 &
(Following (s,2)) . x7 = a7 )
theorem ThSTC0IIS12:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0IICirc (x1,x2,x3,x5,x6,x7)) holds
Following (
s,2) is
stable
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0IStr (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> non
empty non
void strict unsplit gate`1=arity gate`2isBoolean ManySortedSign equals
(STC0IIStr (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Str ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4));
coherence
(STC0IIStr (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Str ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) is non empty non void strict unsplit gate`1=arity gate`2isBoolean ManySortedSign
;
end;
::
deftheorem defines
STC0IStr WALLACE1:def 7 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0IStr (x1,x2,x3,x4,x5,x6,x7) = (STC0IIStr (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Str ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4));
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0ICirc (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> strict gate`2=den Boolean Circuit of
STC0IStr (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
equals
(STC0IICirc (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Circ ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4));
coherence
(STC0IICirc (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Circ ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) is strict gate`2=den Boolean Circuit of STC0IStr (x1,x2,x3,x4,x5,x6,x7)
;
end;
::
deftheorem defines
STC0ICirc WALLACE1:def 8 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0ICirc (x1,x2,x3,x4,x5,x6,x7) = (STC0IICirc (x1,x2,x3,x5,x6,x7)) +* (BitGFA0Circ ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4));
theorem ThSTC0IS1:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) = (((({[<*x1,x2*>,xor2],(GFA0AdderOutput (x1,x2,x3))} \/ {[<*x1,x2*>,and2],[<*x2,x3*>,and2],[<*x3,x1*>,and2],(GFA0CarryOutput (x1,x2,x3))}) \/ {[<*x5,x6*>,xor2],(GFA0AdderOutput (x5,x6,x7))}) \/ {[<*x5,x6*>,and2],[<*x6,x7*>,and2],[<*x7,x5*>,and2],(GFA0CarryOutput (x5,x6,x7))}) \/ {[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2],(GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))}) \/ {[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2],[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2],[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2],(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))}
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) is
Relation ;
LmSTC0IS1:
for x, y, z, p being set holds GFA0AdderOutput (x,y,z) <> [p,and2]
LmSTC0IS2b:
for x1, x2, x3, x5, x6, x7 being non pair set
for a, b, c being set holds InputVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) misses InnerVertices (BitGFA0Str (a,b,c))
theorem ThSTC0IS3:
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set for
x4 being
set st
x4 <> [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] &
x4 <> [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] & not
x4 in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) holds
InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) = {x1,x2,x3,x4,x5,x6,x7}
theorem ThSTC0IS4:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) = {x1,x2,x3,x4,x5,x6,x7}
theorem ThSTC0IS5:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) is
without_pairs
theorem ThSTC0IS6:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
(
x1 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x2 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x3 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x4 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x5 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x6 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x7 in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,xor2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x2,x3*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x3,x1*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,xor2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x6,x7*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x7,x5*>,and2] in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in the
carrier of
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) )
LmSTC0IS7a:
for x, X1, X2, X3 being set holds
( x in (X1 \/ X2) \/ X3 iff ( x in X1 or x in X2 or x in X3 ) )
theorem ThSTC0IS7:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
(
[<*x1,x2*>,xor2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x2,x3*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x3,x1*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,xor2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x6,x7*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
[<*x7,x5*>,and2] in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) )
theorem
for
x1,
x2,
x3,
x5,
x6,
x7 being non
pair set for
x4 being
set st
x4 <> [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] &
x4 <> [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] & not
x4 in InnerVertices (STC0IIStr (x1,x2,x3,x5,x6,x7)) holds
(
x1 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x2 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x3 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x4 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x5 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x6 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x7 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) )
theorem ThSTC0IS9:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
(
x1 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x2 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x3 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x4 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x5 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x6 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) &
x7 in InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) )
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0ICarryOutputC1 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0CarryOutput (
x1,
x2,
x3);
coherence
GFA0CarryOutput (x1,x2,x3) is Element of InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0IS7;
func STC0ICarryOutputC2 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0CarryOutput (
x5,
x6,
x7);
coherence
GFA0CarryOutput (x5,x6,x7) is Element of InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0IS7;
func STC0ICarryOutputC3 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0CarryOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4);
coherence
GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4) is Element of InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0IS7;
func STC0IAdderOutputA3 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4);
coherence
GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4) is Element of InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0IS7;
end;
::
deftheorem defines
STC0ICarryOutputC1 WALLACE1:def 9 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7) = GFA0CarryOutput (x1,x2,x3);
::
deftheorem defines
STC0ICarryOutputC2 WALLACE1:def 10 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7) = GFA0CarryOutput (x5,x6,x7);
::
deftheorem defines
STC0ICarryOutputC3 WALLACE1:def 11 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7) = GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4);
::
deftheorem defines
STC0IAdderOutputA3 WALLACE1:def 12 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0IAdderOutputA3 (x1,x2,x3,x4,x5,x6,x7) = GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4);
LmSTC0IS15s2:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,2)) . (STC0IICarryOutputC1 (x1,x2,x3,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) & (Following (s,2)) . (STC0IICarryOutputC2 (x1,x2,x3,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5) & (Following (s,2)) . (STC0IIAdderOutputA1 (x1,x2,x3,x5,x6,x7)) = (a1 'xor' a2) 'xor' a3 & (Following (s,2)) . (STC0IIAdderOutputA2 (x1,x2,x3,x5,x6,x7)) = (a5 'xor' a6) 'xor' a7 & (Following (s,2)) . x1 = a1 & (Following (s,2)) . x2 = a2 & (Following (s,2)) . x3 = a3 & (Following (s,2)) . x4 = a4 & (Following (s,2)) . x5 = a5 & (Following (s,2)) . x6 = a6 & (Following (s,2)) . x7 = a7 )
LmSTC0IS15C1:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
(Following (s,2)) . (STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)
LmSTC0IS15C2:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
(Following (s,2)) . (STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5)
LmSTC0IS15C3s4:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a123, a567, a4 being Element of BOOLEAN st a123 = s . (GFA0AdderOutput (x1,x2,x3)) & a567 = s . (GFA0AdderOutput (x5,x6,x7)) & a4 = s . x4 holds
( (Following s) . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] = a123 '&' a567 & (Following s) . [<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] = a567 '&' a4 & (Following s) . [<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] = a4 '&' a123 )
LmSTC0IS15C3s6:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,3)) . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] = ((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7) & (Following (s,3)) . [<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] = ((a5 'xor' a6) 'xor' a7) '&' a4 & (Following (s,3)) . [<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] = a4 '&' ((a1 'xor' a2) 'xor' a3) & (Following (s,3)) . x1 = a1 & (Following (s,3)) . x2 = a2 & (Following (s,3)) . x3 = a3 & (Following (s,3)) . x4 = a4 & (Following (s,3)) . x5 = a5 & (Following (s,3)) . x6 = a6 & (Following (s,3)) . x7 = a7 )
LmSTC0IS15C3s8:
for x1, x2, x3, x5, x6, x7 being non pair set
for x4 being set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a123567, a567x4, ax4123 being Element of BOOLEAN st a123567 = s . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] & a567x4 = s . [<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] & ax4123 = s . [<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] holds
(Following s) . (GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) = (a123567 'or' a567x4) 'or' ax4123
LmSTC0IS15C3:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,4)) . (STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)) = ((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3)) & (Following (s,4)) . x1 = a1 & (Following (s,4)) . x2 = a2 & (Following (s,4)) . x3 = a3 & (Following (s,4)) . x4 = a4 & (Following (s,4)) . x5 = a5 & (Following (s,4)) . x6 = a6 & (Following (s,4)) . x7 = a7 )
LmSTC0IS15A3s4:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a123, a567 being Element of BOOLEAN st a123 = s . (GFA0AdderOutput (x1,x2,x3)) & a567 = s . (GFA0AdderOutput (x5,x6,x7)) holds
(Following s) . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] = a123 'xor' a567
LmSTC0IS15A3s6:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,3)) . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] = ((a1 'xor' a2) 'xor' a3) 'xor' ((a5 'xor' a6) 'xor' a7) & (Following (s,3)) . x1 = a1 & (Following (s,3)) . x2 = a2 & (Following (s,3)) . x3 = a3 & (Following (s,3)) . x4 = a4 & (Following (s,3)) . x5 = a5 & (Following (s,3)) . x6 = a6 & (Following (s,3)) . x7 = a7 )
LmSTC0IS15A3s8:
for x1, x2, x3, x5, x6, x7 being non pair set
for x4 being set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a123567, a4 being Element of BOOLEAN st a123567 = s . [<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] & a4 = s . x4 holds
(Following s) . (GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) = a123567 'xor' a4
LmSTC0IS15A3:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,4)) . (STC0IAdderOutputA3 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 'xor' a2) 'xor' a3) 'xor' a4) 'xor' a5) 'xor' a6) 'xor' a7 & (Following (s,4)) . x1 = a1 & (Following (s,4)) . x2 = a2 & (Following (s,4)) . x3 = a3 & (Following (s,4)) . x4 = a4 & (Following (s,4)) . x5 = a5 & (Following (s,4)) . x6 = a6 & (Following (s,4)) . x7 = a7 )
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0ICirc (x1,x2,x3,x4,x5,x6,x7)) for
a1,
a2,
a3,
a4,
a5,
a6,
a7 being
Element of
BOOLEAN st
a1 = s . x1 &
a2 = s . x2 &
a3 = s . x3 &
a4 = s . x4 &
a5 = s . x5 &
a6 = s . x6 &
a7 = s . x7 holds
(
(Following (s,2)) . (STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) &
(Following (s,2)) . (STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5) &
(Following (s,4)) . (STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)) = ((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3)) &
(Following (s,4)) . (STC0IAdderOutputA3 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 'xor' a2) 'xor' a3) 'xor' a4) 'xor' a5) 'xor' a6) 'xor' a7 &
(Following (s,4)) . x1 = a1 &
(Following (s,4)) . x2 = a2 &
(Following (s,4)) . x3 = a3 &
(Following (s,4)) . x4 = a4 &
(Following (s,4)) . x5 = a5 &
(Following (s,4)) . x6 = a6 &
(Following (s,4)) . x7 = a7 )
by LmSTC0IS15C1, LmSTC0IS15C2, LmSTC0IS15C3, LmSTC0IS15A3;
theorem ThSTC0IS18:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0ICirc (x1,x2,x3,x4,x5,x6,x7)) holds
Following (
s,4) is
stable
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0Str (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> non
empty non
void strict unsplit gate`1=arity gate`2isBoolean ManySortedSign equals
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Str ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))));
coherence
(STC0IStr (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Str ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)))) is non empty non void strict unsplit gate`1=arity gate`2isBoolean ManySortedSign
;
end;
::
deftheorem defines
STC0Str WALLACE1:def 13 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0Str (x1,x2,x3,x4,x5,x6,x7) = (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Str ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))));
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0Circ (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> strict gate`2=den Boolean Circuit of
STC0Str (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
equals
(STC0ICirc (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Circ ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))));
coherence
(STC0ICirc (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Circ ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)))) is strict gate`2=den Boolean Circuit of STC0Str (x1,x2,x3,x4,x5,x6,x7)
;
end;
::
deftheorem defines
STC0Circ WALLACE1:def 14 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0Circ (x1,x2,x3,x4,x5,x6,x7) = (STC0ICirc (x1,x2,x3,x4,x5,x6,x7)) +* (BitGFA0Circ ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))));
theorem ThSTC0S1a:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) = ((InnerVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7))) \/ {[<*(STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7))*>,xor2],(GFA0AdderOutput ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))))}) \/ {[<*(STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7))*>,and2],[<*(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))*>,and2],[<*(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7))*>,and2],(GFA0CarryOutput ((STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)),(STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7))))}
theorem ThSTC0S1:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) = (((((({[<*x1,x2*>,xor2],(GFA0AdderOutput (x1,x2,x3))} \/ {[<*x1,x2*>,and2],[<*x2,x3*>,and2],[<*x3,x1*>,and2],(GFA0CarryOutput (x1,x2,x3))}) \/ {[<*x5,x6*>,xor2],(GFA0AdderOutput (x5,x6,x7))}) \/ {[<*x5,x6*>,and2],[<*x6,x7*>,and2],[<*x7,x5*>,and2],(GFA0CarryOutput (x5,x6,x7))}) \/ {[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2],(GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))}) \/ {[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2],[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2],[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2],(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))}) \/ {[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2],(GFA0AdderOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))))}) \/ {[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2],[<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2],[<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2],(GFA0CarryOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))))}
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) is
Relation ;
LmSTC0S1:
for f1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN
for x, y, z, a, b being set holds GFA0CarryOutput (x,y,z) <> [<*a,b*>,f1]
LmSTC0S2b:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for C1, C2, C3 being set holds InputVertices (STC0IStr (x1,x2,x3,x4,x5,x6,x7)) misses InnerVertices (BitGFA0Str (C1,C2,C3))
theorem ThSTC0S4:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) = {x1,x2,x3,x4,x5,x6,x7}
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) is
without_pairs
theorem ThSTC0S6:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
(
x1 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x2 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x3 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x4 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x5 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x6 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x7 in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,xor2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x2,x3*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x3,x1*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,xor2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x6,x7*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x7,x5*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2] in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))
in the
carrier of
(STC0Str (x1,x2,x3,x4,x5,x6,x7)) )
LmSTC0S7a:
for x, X1, X2, X3, X4 being set holds
( x in ((X1 \/ X2) \/ X3) \/ X4 iff ( x in X1 or x in X2 or x in X3 or x in X4 ) )
theorem ThSTC0S7:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being
set holds
(
[<*x1,x2*>,xor2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x1,x2*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x2,x3*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x3,x1*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,xor2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x5,x6*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x6,x7*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x7,x5*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x1,
x2,
x3)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x1,
x2,
x3)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
x5,
x6,
x7)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
x5,
x6,
x7)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,xor2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7))*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0AdderOutput (x5,x6,x7)),x4*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*x4,(GFA0AdderOutput (x1,x2,x3))*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4)
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0AdderOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
[<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2] in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
GFA0CarryOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))
in InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) )
theorem ThSTC0S9:
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set holds
(
x1 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x2 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x3 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x4 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x5 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x6 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) &
x7 in InputVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) )
definition
let x1,
x2,
x3,
x4,
x5,
x6,
x7 be
set ;
func STC0OutputS0 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0AdderOutput (
(GFA0AdderOutput (x1,x2,x3)),
(GFA0AdderOutput (x5,x6,x7)),
x4);
coherence
GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4) is Element of InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0S7;
func STC0OutputS1 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0AdderOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)));
coherence
GFA0AdderOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))) is Element of InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0S7;
func STC0OutputS2 (
x1,
x2,
x3,
x4,
x5,
x6,
x7)
-> Element of
InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7)) equals
GFA0CarryOutput (
(GFA0CarryOutput (x1,x2,x3)),
(GFA0CarryOutput (x5,x6,x7)),
(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)));
coherence
GFA0CarryOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))) is Element of InnerVertices (STC0Str (x1,x2,x3,x4,x5,x6,x7))
by ThSTC0S7;
end;
::
deftheorem defines
STC0OutputS0 WALLACE1:def 15 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0OutputS0 (x1,x2,x3,x4,x5,x6,x7) = GFA0AdderOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4);
::
deftheorem defines
STC0OutputS1 WALLACE1:def 16 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0OutputS1 (x1,x2,x3,x4,x5,x6,x7) = GFA0AdderOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)));
::
deftheorem defines
STC0OutputS2 WALLACE1:def 17 :
for x1, x2, x3, x4, x5, x6, x7 being set holds STC0OutputS2 (x1,x2,x3,x4,x5,x6,x7) = GFA0CarryOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)));
LmSTC0S15s0:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0ICirc (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,4)) . (STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) & (Following (s,4)) . (STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5) )
LmSTC0S15s4a:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,4)) . (STC0ICarryOutputC1 (x1,x2,x3,x4,x5,x6,x7)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) & (Following (s,4)) . (STC0ICarryOutputC2 (x1,x2,x3,x4,x5,x6,x7)) = ((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5) & (Following (s,4)) . x1 = a1 & (Following (s,4)) . x2 = a2 & (Following (s,4)) . x3 = a3 & (Following (s,4)) . x4 = a4 & (Following (s,4)) . x5 = a5 & (Following (s,4)) . x6 = a6 & (Following (s,4)) . x7 = a7 )
LmSTC0S15s4b:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,4)) . (STC0ICarryOutputC3 (x1,x2,x3,x4,x5,x6,x7)) = ((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3)) & (Following (s,4)) . (STC0IAdderOutputA3 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 'xor' a2) 'xor' a3) 'xor' a4) 'xor' a5) 'xor' a6) 'xor' a7 & (Following (s,4)) . x1 = a1 & (Following (s,4)) . x2 = a2 & (Following (s,4)) . x3 = a3 & (Following (s,4)) . x4 = a4 & (Following (s,4)) . x5 = a5 & (Following (s,4)) . x6 = a6 & (Following (s,4)) . x7 = a7 )
LmSTC0S15S0:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
(Following (s,4)) . (STC0OutputS0 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 'xor' a2) 'xor' a3) 'xor' a4) 'xor' a5) 'xor' a6) 'xor' a7
LmSTC0S15S1s4:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for aC1, aC2 being Element of BOOLEAN st aC1 = s . (GFA0CarryOutput (x1,x2,x3)) & aC2 = s . (GFA0CarryOutput (x5,x6,x7)) holds
(Following s) . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2] = aC1 'xor' aC2
LmSTC0S15S1s6a:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
(Following (s,5)) . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2] = (((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) 'xor' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5))
LmSTC0S15S1s6b:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
(Following (s,5)) . (GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) = ((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))
LmSTC0S15S1s8:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for aC1C2x, aC3 being Element of BOOLEAN st aC1C2x = s . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,xor2] & aC3 = s . (GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) holds
(Following s) . (GFA0AdderOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))) = aC1C2x 'xor' aC3
LmSTC0S15S1:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,6)) . (STC0OutputS1 (x1,x2,x3,x4,x5,x6,x7)) = ((((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) 'xor' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5))) 'xor' (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) & (Following (s,6)) . x1 = a1 & (Following (s,6)) . x2 = a2 & (Following (s,6)) . x3 = a3 & (Following (s,6)) . x4 = a4 & (Following (s,6)) . x5 = a5 & (Following (s,6)) . x6 = a6 & (Following (s,6)) . x7 = a7 )
LmSTC0S15S2s4:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for aC1, aC2, aC3 being Element of BOOLEAN st aC1 = s . (GFA0CarryOutput (x1,x2,x3)) & aC2 = s . (GFA0CarryOutput (x5,x6,x7)) & aC3 = s . (GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)) holds
( (Following s) . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2] = aC1 '&' aC2 & (Following s) . [<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2] = aC2 '&' aC3 & (Following s) . [<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2] = aC3 '&' aC1 )
LmSTC0S15S2s6:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,5)) . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2] = (((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) '&' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5)) & (Following (s,5)) . [<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2] = (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5)) '&' (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) & (Following (s,5)) . [<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2] = (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) '&' (((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) )
LmSTC0S15S2s8:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for aC1C2a, aC2C3a, aC3C1a being Element of BOOLEAN st aC1C2a = s . [<*(GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7))*>,and2] & aC2C3a = s . [<*(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4))*>,and2] & aC3C1a = s . [<*(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)),(GFA0CarryOutput (x1,x2,x3))*>,and2] holds
(Following s) . (GFA0CarryOutput ((GFA0CarryOutput (x1,x2,x3)),(GFA0CarryOutput (x5,x6,x7)),(GFA0CarryOutput ((GFA0AdderOutput (x1,x2,x3)),(GFA0AdderOutput (x5,x6,x7)),x4)))) = (aC1C2a 'or' aC2C3a) 'or' aC3C1a
LmSTC0S15S2:
for x1, x2, x3, x4, x5, x6, x7 being non pair set
for s being State of (STC0Circ (x1,x2,x3,x4,x5,x6,x7))
for a1, a2, a3, a4, a5, a6, a7 being Element of BOOLEAN st a1 = s . x1 & a2 = s . x2 & a3 = s . x3 & a4 = s . x4 & a5 = s . x5 & a6 = s . x6 & a7 = s . x7 holds
( (Following (s,6)) . (STC0OutputS2 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) '&' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5))) 'or' ((((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5)) '&' (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))))) 'or' ((((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) '&' (((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1))) & (Following (s,6)) . x1 = a1 & (Following (s,6)) . x2 = a2 & (Following (s,6)) . x3 = a3 & (Following (s,6)) . x4 = a4 & (Following (s,6)) . x5 = a5 & (Following (s,6)) . x6 = a6 & (Following (s,6)) . x7 = a7 )
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0Circ (x1,x2,x3,x4,x5,x6,x7)) for
a1,
a2,
a3,
a4,
a5,
a6,
a7 being
Element of
BOOLEAN st
a1 = s . x1 &
a2 = s . x2 &
a3 = s . x3 &
a4 = s . x4 &
a5 = s . x5 &
a6 = s . x6 &
a7 = s . x7 holds
(
(Following (s,4)) . (STC0OutputS0 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 'xor' a2) 'xor' a3) 'xor' a4) 'xor' a5) 'xor' a6) 'xor' a7 &
(Following (s,6)) . (STC0OutputS1 (x1,x2,x3,x4,x5,x6,x7)) = ((((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) 'xor' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5))) 'xor' (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) &
(Following (s,6)) . (STC0OutputS2 (x1,x2,x3,x4,x5,x6,x7)) = (((((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1)) '&' (((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5))) 'or' ((((a5 '&' a6) 'or' (a6 '&' a7)) 'or' (a7 '&' a5)) '&' (((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))))) 'or' ((((((a1 'xor' a2) 'xor' a3) '&' ((a5 'xor' a6) 'xor' a7)) 'or' (((a5 'xor' a6) 'xor' a7) '&' a4)) 'or' (a4 '&' ((a1 'xor' a2) 'xor' a3))) '&' (((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1))) &
(Following (s,6)) . x1 = a1 &
(Following (s,6)) . x2 = a2 &
(Following (s,6)) . x3 = a3 &
(Following (s,6)) . x4 = a4 &
(Following (s,6)) . x5 = a5 &
(Following (s,6)) . x6 = a6 &
(Following (s,6)) . x7 = a7 )
by LmSTC0S15S0, LmSTC0S15S1, LmSTC0S15S2;
theorem
for
x1,
x2,
x3,
x4,
x5,
x6,
x7 being non
pair set for
s being
State of
(STC0Circ (x1,x2,x3,x4,x5,x6,x7)) holds
Following (
s,6) is
stable