:: CIRCCMB3 semantic presentation begin theorem Th1: :: CIRCCMB3:1 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A for x being set st x in InputVertices S holds for n being Element of NAT holds (Following (s,n)) . x = s . x proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A for x being set st x in InputVertices S holds for n being Element of NAT holds (Following (s,n)) . x = s . x let A be non-empty Circuit of S; ::_thesis: for s being State of A for x being set st x in InputVertices S holds for n being Element of NAT holds (Following (s,n)) . x = s . x let s be State of A; ::_thesis: for x being set st x in InputVertices S holds for n being Element of NAT holds (Following (s,n)) . x = s . x let x be set ; ::_thesis: ( x in InputVertices S implies for n being Element of NAT holds (Following (s,n)) . x = s . x ) assume A1: x in InputVertices S ; ::_thesis: for n being Element of NAT holds (Following (s,n)) . x = s . x defpred S1[ Element of NAT ] means (Following (s,\$1)) . x = s . x; A2: now__::_thesis:_for_n_being_Element_of_NAT_st_S1[n]_holds_ S1[n_+_1] let n be Element of NAT ; ::_thesis: ( S1[n] implies S1[n + 1] ) assume A3: S1[n] ; ::_thesis: S1[n + 1] (Following (s,(n + 1))) . x = (Following (Following (s,n))) . x by FACIRC_1:12 .= s . x by A1, A3, CIRCUIT2:def_5 ; hence S1[n + 1] ; ::_thesis: verum end; A4: S1[ 0 ] by FACIRC_1:11; thus for n being Element of NAT holds S1[n] from NAT_1:sch_1(A4, A2); ::_thesis: verum end; definition let S be non empty non void Circuit-like ManySortedSign ; let A be non-empty Circuit of S; let s be State of A; attrs is stabilizing means :Def1: :: CIRCCMB3:def 1 ex n being Element of NAT st Following (s,n) is stable ; end; :: deftheorem Def1 defines stabilizing CIRCCMB3:def_1_:_ for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A holds ( s is stabilizing iff ex n being Element of NAT st Following (s,n) is stable ); definition let S be non empty non void Circuit-like ManySortedSign ; let A be non-empty Circuit of S; attrA is stabilizing means :Def2: :: CIRCCMB3:def 2 for s being State of A holds s is stabilizing ; attrA is with_stabilization-limit means :: CIRCCMB3:def 3 ex n being Element of NAT st for s being State of A holds Following (s,n) is stable ; end; :: deftheorem Def2 defines stabilizing CIRCCMB3:def_2_:_ for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S holds ( A is stabilizing iff for s being State of A holds s is stabilizing ); :: deftheorem defines with_stabilization-limit CIRCCMB3:def_3_:_ for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S holds ( A is with_stabilization-limit iff ex n being Element of NAT st for s being State of A holds Following (s,n) is stable ); registration let S be non empty non void Circuit-like ManySortedSign ; cluster non-empty finite-yielding with_stabilization-limit -> non-empty stabilizing for MSAlgebra over S; coherence for b1 being non-empty Circuit of S st b1 is with_stabilization-limit holds b1 is stabilizing proof let A be non-empty Circuit of S; ::_thesis: ( A is with_stabilization-limit implies A is stabilizing ) given n being Element of NAT such that A1: for s being State of A holds Following (s,n) is stable ; :: according to CIRCCMB3:def_3 ::_thesis: A is stabilizing let s be State of A; :: according to CIRCCMB3:def_2 ::_thesis: s is stabilizing take n ; :: according to CIRCCMB3:def_1 ::_thesis: Following (s,n) is stable thus Following (s,n) is stable by A1; ::_thesis: verum end; end; definition let S be non empty non void Circuit-like ManySortedSign ; let A be non-empty Circuit of S; let s be State of A; assume B1: s is stabilizing ; func Result s -> State of A means :Def4: :: CIRCCMB3:def 4 ( it is stable & ex n being Element of NAT st it = Following (s,n) ); existence ex b1 being State of A st ( b1 is stable & ex n being Element of NAT st b1 = Following (s,n) ) proof consider n being Element of NAT such that A1: Following (s,n) is stable by B1, Def1; take Following (s,n) ; ::_thesis: ( Following (s,n) is stable & ex n being Element of NAT st Following (s,n) = Following (s,n) ) thus ( Following (s,n) is stable & ex n being Element of NAT st Following (s,n) = Following (s,n) ) by A1; ::_thesis: verum end; uniqueness for b1, b2 being State of A st b1 is stable & ex n being Element of NAT st b1 = Following (s,n) & b2 is stable & ex n being Element of NAT st b2 = Following (s,n) holds b1 = b2 proof let s1, s2 be State of A; ::_thesis: ( s1 is stable & ex n being Element of NAT st s1 = Following (s,n) & s2 is stable & ex n being Element of NAT st s2 = Following (s,n) implies s1 = s2 ) assume that A2: s1 is stable and A3: ex n being Element of NAT st s1 = Following (s,n) and A4: s2 is stable and A5: ex n being Element of NAT st s2 = Following (s,n) ; ::_thesis: s1 = s2 consider n1 being Element of NAT such that A6: s1 = Following (s,n1) by A3; consider n2 being Element of NAT such that A7: s2 = Following (s,n2) by A5; percases ( n1 <= n2 or n2 <= n1 ) ; suppose n1 <= n2 ; ::_thesis: s1 = s2 hence s1 = s2 by A2, A6, A7, CIRCCMB2:4; ::_thesis: verum end; suppose n2 <= n1 ; ::_thesis: s1 = s2 hence s1 = s2 by A4, A6, A7, CIRCCMB2:4; ::_thesis: verum end; end; end; end; :: deftheorem Def4 defines Result CIRCCMB3:def_4_:_ for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A st s is stabilizing holds for b4 being State of A holds ( b4 = Result s iff ( b4 is stable & ex n being Element of NAT st b4 = Following (s,n) ) ); definition let S be non empty non void Circuit-like ManySortedSign ; let A be non-empty Circuit of S; let s be State of A; assume A1: s is stabilizing ; func stabilization-time s -> Element of NAT means :Def5: :: CIRCCMB3:def 5 ( Following (s,it) is stable & ( for n being Element of NAT st n < it holds not Following (s,n) is stable ) ); existence ex b1 being Element of NAT st ( Following (s,b1) is stable & ( for n being Element of NAT st n < b1 holds not Following (s,n) is stable ) ) proof defpred S1[ Nat] means Following (s,\$1) is stable ; ex k being Element of NAT st S1[k] by A1, Def1; then A1: ex k being Nat st S1[k] ; consider m being Nat such that A2: ( S1[m] & ( for n being Nat st S1[n] holds m <= n ) ) from NAT_1:sch_5(A1); reconsider m = m as Element of NAT by ORDINAL1:def_12; take m ; ::_thesis: ( Following (s,m) is stable & ( for n being Element of NAT st n < m holds not Following (s,n) is stable ) ) thus ( Following (s,m) is stable & ( for n being Element of NAT st n < m holds not Following (s,n) is stable ) ) by A2; ::_thesis: verum end; uniqueness for b1, b2 being Element of NAT st Following (s,b1) is stable & ( for n being Element of NAT st n < b1 holds not Following (s,n) is stable ) & Following (s,b2) is stable & ( for n being Element of NAT st n < b2 holds not Following (s,n) is stable ) holds b1 = b2 proof let n1, n2 be Element of NAT ; ::_thesis: ( Following (s,n1) is stable & ( for n being Element of NAT st n < n1 holds not Following (s,n) is stable ) & Following (s,n2) is stable & ( for n being Element of NAT st n < n2 holds not Following (s,n) is stable ) implies n1 = n2 ) assume that A3: Following (s,n1) is stable and A4: ( ( for n being Element of NAT st n < n1 holds not Following (s,n) is stable ) & Following (s,n2) is stable ) and A5: for n being Element of NAT st n < n2 holds not Following (s,n) is stable ; ::_thesis: n1 = n2 assume A6: n1 <> n2 ; ::_thesis: contradiction percases ( n1 < n2 or n2 < n1 ) by A6, XXREAL_0:1; suppose n1 < n2 ; ::_thesis: contradiction hence contradiction by A3, A5; ::_thesis: verum end; suppose n2 < n1 ; ::_thesis: contradiction hence contradiction by A4; ::_thesis: verum end; end; end; end; :: deftheorem Def5 defines stabilization-time CIRCCMB3:def_5_:_ for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A st s is stabilizing holds for b4 being Element of NAT holds ( b4 = stabilization-time s iff ( Following (s,b4) is stable & ( for n being Element of NAT st n < b4 holds not Following (s,n) is stable ) ) ); theorem Th2: :: CIRCCMB3:2 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A st s is stabilizing holds Result s = Following (s,(stabilization-time s)) proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A st s is stabilizing holds Result s = Following (s,(stabilization-time s)) let A be non-empty Circuit of S; ::_thesis: for s being State of A st s is stabilizing holds Result s = Following (s,(stabilization-time s)) let s be State of A; ::_thesis: ( s is stabilizing implies Result s = Following (s,(stabilization-time s)) ) assume A1: s is stabilizing ; ::_thesis: Result s = Following (s,(stabilization-time s)) Following (s,(stabilization-time s)) is stable by A1, Def5; hence Result s = Following (s,(stabilization-time s)) by A1, Def4; ::_thesis: verum end; theorem :: CIRCCMB3:3 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A for n being Element of NAT st Following (s,n) is stable holds stabilization-time s <= n proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A for n being Element of NAT st Following (s,n) is stable holds stabilization-time s <= n let A be non-empty Circuit of S; ::_thesis: for s being State of A for n being Element of NAT st Following (s,n) is stable holds stabilization-time s <= n let s be State of A; ::_thesis: for n being Element of NAT st Following (s,n) is stable holds stabilization-time s <= n let n be Element of NAT ; ::_thesis: ( Following (s,n) is stable implies stabilization-time s <= n ) assume A1: Following (s,n) is stable ; ::_thesis: stabilization-time s <= n then s is stabilizing by Def1; hence stabilization-time s <= n by A1, Def5; ::_thesis: verum end; theorem Th4: :: CIRCCMB3:4 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A for n being Element of NAT st Following (s,n) is stable holds Result s = Following (s,n) proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A for n being Element of NAT st Following (s,n) is stable holds Result s = Following (s,n) let A be non-empty Circuit of S; ::_thesis: for s being State of A for n being Element of NAT st Following (s,n) is stable holds Result s = Following (s,n) let s be State of A; ::_thesis: for n being Element of NAT st Following (s,n) is stable holds Result s = Following (s,n) let n be Element of NAT ; ::_thesis: ( Following (s,n) is stable implies Result s = Following (s,n) ) assume A1: Following (s,n) is stable ; ::_thesis: Result s = Following (s,n) then s is stabilizing by Def1; hence Result s = Following (s,n) by A1, Def4; ::_thesis: verum end; theorem Th5: :: CIRCCMB3:5 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A for n being Element of NAT st s is stabilizing & n >= stabilization-time s holds Result s = Following (s,n) proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A for n being Element of NAT st s is stabilizing & n >= stabilization-time s holds Result s = Following (s,n) let A be non-empty Circuit of S; ::_thesis: for s being State of A for n being Element of NAT st s is stabilizing & n >= stabilization-time s holds Result s = Following (s,n) let s be State of A; ::_thesis: for n being Element of NAT st s is stabilizing & n >= stabilization-time s holds Result s = Following (s,n) let n be Element of NAT ; ::_thesis: ( s is stabilizing & n >= stabilization-time s implies Result s = Following (s,n) ) assume that A1: s is stabilizing and A2: n >= stabilization-time s ; ::_thesis: Result s = Following (s,n) Result s is stable by A1, Def4; then Following (s,(stabilization-time s)) is stable by A1, Th2; then Following (s,n) is stable by A2, CIRCCMB2:4; hence Result s = Following (s,n) by Th4; ::_thesis: verum end; theorem :: CIRCCMB3:6 for S being non empty non void Circuit-like ManySortedSign for A being non-empty Circuit of S for s being State of A st s is stabilizing holds for x being set st x in InputVertices S holds (Result s) . x = s . x proof let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: for A being non-empty Circuit of S for s being State of A st s is stabilizing holds for x being set st x in InputVertices S holds (Result s) . x = s . x let A be non-empty Circuit of S; ::_thesis: for s being State of A st s is stabilizing holds for x being set st x in InputVertices S holds (Result s) . x = s . x let s be State of A; ::_thesis: ( s is stabilizing implies for x being set st x in InputVertices S holds (Result s) . x = s . x ) assume s is stabilizing ; ::_thesis: for x being set st x in InputVertices S holds (Result s) . x = s . x then Result s = Following (s,(stabilization-time s)) by Th2; hence for x being set st x in InputVertices S holds (Result s) . x = s . x by Th1; ::_thesis: verum end; theorem Th7: :: CIRCCMB3:7 for S1, S2 being non empty non void Circuit-like ManySortedSign st InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 holds for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing proof let S1, S2 be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 implies for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing ) assume A1: ( InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 ) ; ::_thesis: for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( S = S1 +* S2 implies for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing ) assume A2: S = S1 +* S2 ; ::_thesis: for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let A1 be non-empty Circuit of S1; ::_thesis: for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let A2 be non-empty Circuit of S2; ::_thesis: ( A1 tolerates A2 implies for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing ) assume A3: A1 tolerates A2 ; ::_thesis: for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let A be non-empty Circuit of S; ::_thesis: ( A = A1 +* A2 implies for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing ) assume A4: A = A1 +* A2 ; ::_thesis: for s being State of A for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let s be State of A; ::_thesis: for s1 being State of A1 for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let s1 be State of A1; ::_thesis: for s2 being State of A2 st s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing holds s is stabilizing let s2 be State of A2; ::_thesis: ( s1 = s | the carrier of S1 & s2 = s | the carrier of S2 & s1 is stabilizing & s2 is stabilizing implies s is stabilizing ) assume that A5: ( s1 = s | the carrier of S1 & s2 = s | the carrier of S2 ) and A6: s1 is stabilizing and A7: s2 is stabilizing ; ::_thesis: s is stabilizing consider n1 being Element of NAT such that A8: Following (s1,n1) is stable by A6, Def1; consider n2 being Element of NAT such that A9: Following (s2,n2) is stable by A7, Def1; Following (s,(max (n1,n2))) is stable by A1, A2, A3, A4, A5, A8, A9, CIRCCMB2:22; hence s is stabilizing by Def1; ::_thesis: verum end; theorem :: CIRCCMB3:8 for S1, S2 being non empty non void Circuit-like ManySortedSign st InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 holds for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) proof let S1, S2 be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 implies for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume A1: ( InputVertices S1 misses InnerVertices S2 & InputVertices S2 misses InnerVertices S1 ) ; ::_thesis: for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( S = S1 +* S2 implies for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume A2: S = S1 +* S2 ; ::_thesis: for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let A1 be non-empty Circuit of S1; ::_thesis: for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let A2 be non-empty Circuit of S2; ::_thesis: ( A1 tolerates A2 implies for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume A3: A1 tolerates A2 ; ::_thesis: for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let A be non-empty Circuit of S; ::_thesis: ( A = A1 +* A2 implies for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume A4: A = A1 +* A2 ; ::_thesis: for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let s be State of A; ::_thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) let s1 be State of A1; ::_thesis: ( s1 = s | the carrier of S1 & s1 is stabilizing implies for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume that A5: s1 = s | the carrier of S1 and A6: s1 is stabilizing ; ::_thesis: for s2 being State of A2 st s2 = s | the carrier of S2 & s2 is stabilizing holds stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) set st1 = stabilization-time s1; let s2 be State of A2; ::_thesis: ( s2 = s | the carrier of S2 & s2 is stabilizing implies stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) ) assume that A7: s2 = s | the carrier of S2 and A8: s2 is stabilizing ; ::_thesis: stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) set st2 = stabilization-time s2; A9: Following (s1,(stabilization-time s1)) is stable by A6, Def5; A10: now__::_thesis:_for_n_being_Element_of_NAT_st_n_<_max_((stabilization-time_s1),(stabilization-time_s2))_holds_ not_Following_(s,n)_is_stable let n be Element of NAT ; ::_thesis: ( n < max ((stabilization-time s1),(stabilization-time s2)) implies not Following (s,b1) is stable ) assume A11: n < max ((stabilization-time s1),(stabilization-time s2)) ; ::_thesis: not Following (s,b1) is stable percases ( stabilization-time s1 <= stabilization-time s2 or stabilization-time s2 <= stabilization-time s1 ) ; suppose stabilization-time s1 <= stabilization-time s2 ; ::_thesis: not Following (s,b1) is stable then n < stabilization-time s2 by A11, XXREAL_0:def_10; then not Following (s2,n) is stable by A8, Def5; hence not Following (s,n) is stable by A1, A2, A3, A4, A5, A7, CIRCCMB2:23; ::_thesis: verum end; suppose stabilization-time s2 <= stabilization-time s1 ; ::_thesis: not Following (s,b1) is stable then n < stabilization-time s1 by A11, XXREAL_0:def_10; then not Following (s1,n) is stable by A6, Def5; hence not Following (s,n) is stable by A1, A2, A3, A4, A5, A7, CIRCCMB2:23; ::_thesis: verum end; end; end; Following (s2,(stabilization-time s2)) is stable by A8, Def5; then A12: Following (s,(max ((stabilization-time s1),(stabilization-time s2)))) is stable by A1, A2, A3, A4, A5, A7, A9, CIRCCMB2:22; s is stabilizing by A1, A2, A3, A4, A5, A6, A7, A8, Th7; hence stabilization-time s = max ((stabilization-time s1),(stabilization-time s2)) by A12, A10, Def5; ::_thesis: verum end; theorem Th9: :: CIRCCMB3:9 for S1, S2 being non empty non void Circuit-like ManySortedSign st InputVertices S1 misses InnerVertices S2 holds for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing proof let S1, S2 be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( InputVertices S1 misses InnerVertices S2 implies for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing ) assume A1: InputVertices S1 misses InnerVertices S2 ; ::_thesis: for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( S = S1 +* S2 implies for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing ) assume A2: S = S1 +* S2 ; ::_thesis: for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let A1 be non-empty Circuit of S1; ::_thesis: for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let A2 be non-empty Circuit of S2; ::_thesis: ( A1 tolerates A2 implies for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing ) assume A3: A1 tolerates A2 ; ::_thesis: for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let A be non-empty Circuit of S; ::_thesis: ( A = A1 +* A2 implies for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing ) assume A4: A = A1 +* A2 ; ::_thesis: for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let s be State of A; ::_thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing let s1 be State of A1; ::_thesis: ( s1 = s | the carrier of S1 & s1 is stabilizing implies for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing ) assume that A5: s1 = s | the carrier of S1 and A6: s1 is stabilizing ; ::_thesis: for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds s is stabilizing set n1 = stabilization-time s1; A7: Following (s1,(stabilization-time s1)) is stable by A6, Def5; let s2 be State of A2; ::_thesis: ( s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing implies s is stabilizing ) assume that A8: s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 and A9: s2 is stabilizing ; ::_thesis: s is stabilizing set n2 = stabilization-time s2; Following (s2,(stabilization-time s2)) is stable by A9, Def5; then Following (s,((stabilization-time s1) + (stabilization-time s2))) is stable by A1, A2, A3, A4, A5, A7, A8, CIRCCMB2:19; hence s is stabilizing by Def1; ::_thesis: verum end; theorem Th10: :: CIRCCMB3:10 for S1, S2 being non empty non void Circuit-like ManySortedSign st InputVertices S1 misses InnerVertices S2 holds for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) proof let S1, S2 be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( InputVertices S1 misses InnerVertices S2 implies for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume A1: InputVertices S1 misses InnerVertices S2 ; ::_thesis: for S being non empty non void Circuit-like ManySortedSign st S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let S be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( S = S1 +* S2 implies for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume A2: S = S1 +* S2 ; ::_thesis: for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let A1 be non-empty Circuit of S1; ::_thesis: for A2 being non-empty Circuit of S2 st A1 tolerates A2 holds for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let A2 be non-empty Circuit of S2; ::_thesis: ( A1 tolerates A2 implies for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume A3: A1 tolerates A2 ; ::_thesis: for A being non-empty Circuit of S st A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let A be non-empty Circuit of S; ::_thesis: ( A = A1 +* A2 implies for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume A4: A = A1 +* A2 ; ::_thesis: for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let s be State of A; ::_thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) let s1 be State of A1; ::_thesis: ( s1 = s | the carrier of S1 & s1 is stabilizing implies for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume that A5: s1 = s | the carrier of S1 and A6: s1 is stabilizing ; ::_thesis: for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds stabilization-time s = (stabilization-time s1) + (stabilization-time s2) set st1 = stabilization-time s1; let s2 be State of A2; ::_thesis: ( s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing implies stabilization-time s = (stabilization-time s1) + (stabilization-time s2) ) assume that A7: s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 and A8: s2 is stabilizing ; ::_thesis: stabilization-time s = (stabilization-time s1) + (stabilization-time s2) set st2 = stabilization-time s2; A9: Following (s1,(stabilization-time s1)) is stable by A6, Def5; A10: now__::_thesis:_for_n_being_Element_of_NAT_st_n_<_(stabilization-time_s1)_+_(stabilization-time_s2)_holds_ not_Following_(s,n)_is_stable let n be Element of NAT ; ::_thesis: ( n < (stabilization-time s1) + (stabilization-time s2) implies not Following (s,b1) is stable ) assume A11: n < (stabilization-time s1) + (stabilization-time s2) ; ::_thesis: not Following (s,b1) is stable percases ( stabilization-time s1 <= n or n < stabilization-time s1 ) ; suppose stabilization-time s1 <= n ; ::_thesis: not Following (s,b1) is stable then consider m being Nat such that A12: n = (stabilization-time s1) + m by NAT_1:10; reconsider m = m as Element of NAT by ORDINAL1:def_12; m < stabilization-time s2 by A11, A12, XREAL_1:6; then A13: not Following (s2,m) is stable by A8, Def5; Following (s1,(stabilization-time s1)) = (Following (s,(stabilization-time s1))) | the carrier of S1 by A1, A2, A3, A4, A5, CIRCCMB2:13; then Following (s2,m) = (Following ((Following (s,(stabilization-time s1))),m)) | the carrier of S2 by A1, A2, A3, A4, A7, A9, CIRCCMB2:18 .= (Following (s,n)) | the carrier of S2 by A12, FACIRC_1:13 ; hence not Following (s,n) is stable by A2, A3, A4, A13, CIRCCMB2:17; ::_thesis: verum end; suppose n < stabilization-time s1 ; ::_thesis: not Following (s,b1) is stable then A14: not Following (s1,n) is stable by A6, Def5; (Following (s,n)) | the carrier of S1 = Following (s1,n) by A1, A2, A3, A4, A5, CIRCCMB2:13; hence not Following (s,n) is stable by A2, A3, A4, A14, CIRCCMB2:17; ::_thesis: verum end; end; end; Following (s2,(stabilization-time s2)) is stable by A8, Def5; then A15: Following (s,((stabilization-time s1) + (stabilization-time s2))) is stable by A1, A2, A3, A4, A5, A7, A9, CIRCCMB2:19; s is stabilizing by A1, A2, A3, A4, A5, A6, A7, A8, Th9; hence stabilization-time s = (stabilization-time s1) + (stabilization-time s2) by A15, A10, Def5; ::_thesis: verum end; theorem :: CIRCCMB3:11 for S1, S2, S being non empty non void Circuit-like ManySortedSign st InputVertices S1 misses InnerVertices S2 & S = S1 +* S2 holds for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 proof let S1, S2, S be non empty non void Circuit-like ManySortedSign ; ::_thesis: ( InputVertices S1 misses InnerVertices S2 & S = S1 +* S2 implies for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 ) assume A1: ( InputVertices S1 misses InnerVertices S2 & S = S1 +* S2 ) ; ::_thesis: for A1 being non-empty Circuit of S1 for A2 being non-empty Circuit of S2 for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let A1 be non-empty Circuit of S1; ::_thesis: for A2 being non-empty Circuit of S2 for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let A2 be non-empty Circuit of S2; ::_thesis: for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let A be non-empty Circuit of S; ::_thesis: ( A1 tolerates A2 & A = A1 +* A2 implies for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 ) assume A2: ( A1 tolerates A2 & A = A1 +* A2 ) ; ::_thesis: for s being State of A for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let s be State of A; ::_thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stabilizing holds for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let s1 be State of A1; ::_thesis: ( s1 = s | the carrier of S1 & s1 is stabilizing implies for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 ) assume that A3: s1 = s | the carrier of S1 and A4: s1 is stabilizing ; ::_thesis: for s2 being State of A2 st s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing holds (Result s) | the carrier of S1 = Result s1 let s2 be State of A2; ::_thesis: ( s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing implies (Result s) | the carrier of S1 = Result s1 ) assume A5: ( s2 = (Following (s,(stabilization-time s1))) | the carrier of S2 & s2 is stabilizing ) ; ::_thesis: (Result s) | the carrier of S1 = Result s1 A6: stabilization-time s = (stabilization-time s1) + (stabilization-time s2) by A1, A2, A3, A4, A5, Th10; thus (Result s) | the carrier of S1 = (Following (s,(stabilization-time s))) | the carrier of S1 by A1, A2, A3, A4, A5, Th2, Th9 .= Following (s1,(stabilization-time s)) by A1, A2, A3, CIRCCMB2:13 .= Result s1 by A4, A6, Th5, NAT_1:11 ; ::_thesis: verum end; begin theorem Th12: :: CIRCCMB3:12 for x being set for X being non empty finite set for n being Element of NAT for p being FinSeqLen of n for g being Function of (n -tuples_on X),X for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X proof let x be set ; ::_thesis: for X being non empty finite set for n being Element of NAT for p being FinSeqLen of n for g being Function of (n -tuples_on X),X for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X let X be non empty finite set ; ::_thesis: for n being Element of NAT for p being FinSeqLen of n for g being Function of (n -tuples_on X),X for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X let n be Element of NAT ; ::_thesis: for p being FinSeqLen of n for g being Function of (n -tuples_on X),X for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X let p be FinSeqLen of n; ::_thesis: for g being Function of (n -tuples_on X),X for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X let g be Function of (n -tuples_on X),X; ::_thesis: for s being State of (1GateCircuit (p,g)) holds s * p is Element of n -tuples_on X let s be State of (1GateCircuit (p,g)); ::_thesis: s * p is Element of n -tuples_on X set S = 1GateCircStr (p,g); set A = 1GateCircuit (p,g); A1: rng (s * p) c= X proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in rng (s * p) or o in X ) A2: rng s c= X proof reconsider tc = the carrier of (1GateCircStr (p,g)) as non empty set ; let z be set ; :: according to TARSKI:def_3 ::_thesis: ( not z in rng s or z in X ) reconsider tS = the Sorts of (1GateCircuit (p,g)) as V8() ManySortedSet of tc ; assume z in rng s ; ::_thesis: z in X then consider a being set such that A3: a in dom s and A4: z = s . a by FUNCT_1:def_3; reconsider a = a as Vertex of (1GateCircStr (p,g)) by A3, CIRCUIT1:3; dom s = dom tS by CARD_3:9; then s . a in the Sorts of (1GateCircuit (p,g)) . a by A3, CARD_3:9; hence z in X by A4, CIRCCOMB:54; ::_thesis: verum end; assume o in rng (s * p) ; ::_thesis: o in X then o in rng s by FUNCT_1:14; hence o in X by A2; ::_thesis: verum end; A5: rng p c= dom s proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in rng p or o in dom s ) assume o in rng p ; ::_thesis: o in dom s then o in (rng p) \/ {[p,g]} by XBOOLE_0:def_3; then o in the carrier of (1GateCircStr (p,g)) by CIRCCOMB:def_6; hence o in dom s by CIRCUIT1:3; ::_thesis: verum end; then s * p is FinSequence by FINSEQ_1:16; then reconsider sx = s * p as FinSequence of X by A1, FINSEQ_1:def_4; len sx = len p by A5, FINSEQ_2:29 .= n by CARD_1:def_7 ; hence s * p is Element of n -tuples_on X by FINSEQ_2:92; ::_thesis: verum end; theorem Th13: :: CIRCCMB3:13 for x1, x2, x3, x4 being set holds rng <*x1,x2,x3,x4*> = {x1,x2,x3,x4} proof let x1, x2, x3, x4 be set ; ::_thesis: rng <*x1,x2,x3,x4*> = {x1,x2,x3,x4} for y being set holds ( y in {x1,x2,x3,x4} iff ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) ) proof let y be set ; ::_thesis: ( y in {x1,x2,x3,x4} iff ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) ) thus ( y in {x1,x2,x3,x4} implies ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) ) ::_thesis: ( ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) implies y in {x1,x2,x3,x4} ) proof A1: dom <*x1,x2,x3,x4*> = {1,2,3,4} by FINSEQ_1:89, FINSEQ_3:2; assume A2: y in {x1,x2,x3,x4} ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) percases ( y = x1 or y = x2 or y = x3 or y = x4 ) by A2, ENUMSET1:def_2; supposeA3: y = x1 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) take 1 ; ::_thesis: ( 1 in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . 1 ) thus 1 in dom <*x1,x2,x3,x4*> by A1, ENUMSET1:def_2; ::_thesis: y = <*x1,x2,x3,x4*> . 1 thus y = <*x1,x2,x3,x4*> . 1 by A3, FINSEQ_4:76; ::_thesis: verum end; supposeA4: y = x2 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) take 2 ; ::_thesis: ( 2 in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . 2 ) thus 2 in dom <*x1,x2,x3,x4*> by A1, ENUMSET1:def_2; ::_thesis: y = <*x1,x2,x3,x4*> . 2 thus y = <*x1,x2,x3,x4*> . 2 by A4, FINSEQ_4:76; ::_thesis: verum end; supposeA5: y = x3 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) take 3 ; ::_thesis: ( 3 in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . 3 ) thus 3 in dom <*x1,x2,x3,x4*> by A1, ENUMSET1:def_2; ::_thesis: y = <*x1,x2,x3,x4*> . 3 thus y = <*x1,x2,x3,x4*> . 3 by A5, FINSEQ_4:76; ::_thesis: verum end; supposeA6: y = x4 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . x ) take 4 ; ::_thesis: ( 4 in dom <*x1,x2,x3,x4*> & y = <*x1,x2,x3,x4*> . 4 ) thus 4 in dom <*x1,x2,x3,x4*> by A1, ENUMSET1:def_2; ::_thesis: y = <*x1,x2,x3,x4*> . 4 thus y = <*x1,x2,x3,x4*> . 4 by A6, FINSEQ_4:76; ::_thesis: verum end; end; end; given x being set such that A7: x in dom <*x1,x2,x3,x4*> and A8: y = <*x1,x2,x3,x4*> . x ; ::_thesis: y in {x1,x2,x3,x4} x in Seg 4 by A7, FINSEQ_1:89; then ( x = 1 or x = 2 or x = 3 or x = 4 ) by ENUMSET1:def_2, FINSEQ_3:2; then ( <*x1,x2,x3,x4*> . x = x1 or <*x1,x2,x3,x4*> . x = x2 or <*x1,x2,x3,x4*> . x = x3 or <*x1,x2,x3,x4*> . x = x4 ) by FINSEQ_4:76; hence y in {x1,x2,x3,x4} by A8, ENUMSET1:def_2; ::_thesis: verum end; hence rng <*x1,x2,x3,x4*> = {x1,x2,x3,x4} by FUNCT_1:def_3; ::_thesis: verum end; theorem Th14: :: CIRCCMB3:14 for x1, x2, x3, x4, x5 being set holds rng <*x1,x2,x3,x4,x5*> = {x1,x2,x3,x4,x5} proof let x1, x2, x3, x4, x5 be set ; ::_thesis: rng <*x1,x2,x3,x4,x5*> = {x1,x2,x3,x4,x5} for y being set holds ( y in {x1,x2,x3,x4,x5} iff ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) ) proof let y be set ; ::_thesis: ( y in {x1,x2,x3,x4,x5} iff ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) ) thus ( y in {x1,x2,x3,x4,x5} implies ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) ) ::_thesis: ( ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) implies y in {x1,x2,x3,x4,x5} ) proof A1: dom <*x1,x2,x3,x4,x5*> = {1,2,3,4,5} by FINSEQ_1:89, FINSEQ_3:3; assume A2: y in {x1,x2,x3,x4,x5} ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) percases ( y = x1 or y = x2 or y = x3 or y = x4 or y = x5 ) by A2, ENUMSET1:def_3; supposeA3: y = x1 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) take 1 ; ::_thesis: ( 1 in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . 1 ) thus 1 in dom <*x1,x2,x3,x4,x5*> by A1, ENUMSET1:def_3; ::_thesis: y = <*x1,x2,x3,x4,x5*> . 1 thus y = <*x1,x2,x3,x4,x5*> . 1 by A3, FINSEQ_4:78; ::_thesis: verum end; supposeA4: y = x2 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) take 2 ; ::_thesis: ( 2 in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . 2 ) thus 2 in dom <*x1,x2,x3,x4,x5*> by A1, ENUMSET1:def_3; ::_thesis: y = <*x1,x2,x3,x4,x5*> . 2 thus y = <*x1,x2,x3,x4,x5*> . 2 by A4, FINSEQ_4:78; ::_thesis: verum end; supposeA5: y = x3 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) take 3 ; ::_thesis: ( 3 in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . 3 ) thus 3 in dom <*x1,x2,x3,x4,x5*> by A1, ENUMSET1:def_3; ::_thesis: y = <*x1,x2,x3,x4,x5*> . 3 thus y = <*x1,x2,x3,x4,x5*> . 3 by A5, FINSEQ_4:78; ::_thesis: verum end; supposeA6: y = x4 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) take 4 ; ::_thesis: ( 4 in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . 4 ) thus 4 in dom <*x1,x2,x3,x4,x5*> by A1, ENUMSET1:def_3; ::_thesis: y = <*x1,x2,x3,x4,x5*> . 4 thus y = <*x1,x2,x3,x4,x5*> . 4 by A6, FINSEQ_4:78; ::_thesis: verum end; supposeA7: y = x5 ; ::_thesis: ex x being set st ( x in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . x ) take 5 ; ::_thesis: ( 5 in dom <*x1,x2,x3,x4,x5*> & y = <*x1,x2,x3,x4,x5*> . 5 ) thus 5 in dom <*x1,x2,x3,x4,x5*> by A1, ENUMSET1:def_3; ::_thesis: y = <*x1,x2,x3,x4,x5*> . 5 thus y = <*x1,x2,x3,x4,x5*> . 5 by A7, FINSEQ_4:78; ::_thesis: verum end; end; end; given x being set such that A8: x in dom <*x1,x2,x3,x4,x5*> and A9: y = <*x1,x2,x3,x4,x5*> . x ; ::_thesis: y in {x1,x2,x3,x4,x5} x in Seg 5 by A8, FINSEQ_1:89; then ( x = 1 or x = 2 or x = 3 or x = 4 or x = 5 ) by ENUMSET1:def_3, FINSEQ_3:3; then ( <*x1,x2,x3,x4,x5*> . x = x1 or <*x1,x2,x3,x4,x5*> . x = x2 or <*x1,x2,x3,x4,x5*> . x = x3 or <*x1,x2,x3,x4,x5*> . x = x4 or <*x1,x2,x3,x4,x5*> . x = x5 ) by FINSEQ_4:78; hence y in {x1,x2,x3,x4,x5} by A9, ENUMSET1:def_3; ::_thesis: verum end; hence rng <*x1,x2,x3,x4,x5*> = {x1,x2,x3,x4,x5} by FUNCT_1:def_3; ::_thesis: verum end; definition let S be ManySortedSign ; attrS is one-gate means :Def6: :: CIRCCMB3:def 6 ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st S = 1GateCircStr (p,f); end; :: deftheorem Def6 defines one-gate CIRCCMB3:def_6_:_ for S being ManySortedSign holds ( S is one-gate iff ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st S = 1GateCircStr (p,f) ); definition let S be non empty ManySortedSign ; let A be MSAlgebra over S; attrA is one-gate means :Def7: :: CIRCCMB3:def 7 ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st ( S = 1GateCircStr (p,f) & A = 1GateCircuit (p,f) ); end; :: deftheorem Def7 defines one-gate CIRCCMB3:def_7_:_ for S being non empty ManySortedSign for A being MSAlgebra over S holds ( A is one-gate iff ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st ( S = 1GateCircStr (p,f) & A = 1GateCircuit (p,f) ) ); registration let p be FinSequence; let x be set ; cluster 1GateCircStr (p,x) -> finite ; coherence 1GateCircStr (p,x) is finite proof the carrier of (1GateCircStr (p,x)) = (rng p) \/ {[p,x]} by CIRCCOMB:def_6; hence 1GateCircStr (p,x) is finite ; ::_thesis: verum end; end; registration cluster one-gate -> non empty finite non void strict unsplit gate`1=arity for ManySortedSign ; coherence for b1 being ManySortedSign st b1 is one-gate holds ( b1 is strict & not b1 is void & not b1 is empty & b1 is unsplit & b1 is gate`1=arity & b1 is finite ) proof let S be ManySortedSign ; ::_thesis: ( S is one-gate implies ( S is strict & not S is void & not S is empty & S is unsplit & S is gate`1=arity & S is finite ) ) assume S is one-gate ; ::_thesis: ( S is strict & not S is void & not S is empty & S is unsplit & S is gate`1=arity & S is finite ) then ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st S = 1GateCircStr (p,f) by Def6; hence ( S is strict & not S is void & not S is empty & S is unsplit & S is gate`1=arity & S is finite ) ; ::_thesis: verum end; end; registration cluster non empty one-gate -> non empty gate`2=den for ManySortedSign ; coherence for b1 being non empty ManySortedSign st b1 is one-gate holds b1 is gate`2=den proof let S be non empty ManySortedSign ; ::_thesis: ( S is one-gate implies S is gate`2=den ) assume S is one-gate ; ::_thesis: S is gate`2=den then ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st S = 1GateCircStr (p,f) by Def6; hence S is gate`2=den ; ::_thesis: verum end; end; registration let X be non empty finite set ; let n be Element of NAT ; let p be FinSeqLen of n; let f be Function of (n -tuples_on X),X; cluster 1GateCircStr (p,f) -> one-gate ; coherence 1GateCircStr (p,f) is one-gate by Def6; end; registration cluster one-gate for ManySortedSign ; existence ex b1 being ManySortedSign st b1 is one-gate proof set X = the non empty finite set ; set n = the Element of NAT ; set p = the FinSeqLen of the Element of NAT ; set f = the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ; take 1GateCircStr ( the FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) ; ::_thesis: 1GateCircStr ( the FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) is one-gate thus 1GateCircStr ( the FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) is one-gate ; ::_thesis: verum end; end; registration let S be one-gate ManySortedSign ; cluster finite-yielding one-gate -> strict non-empty for MSAlgebra over S; coherence for b1 being Circuit of S st b1 is one-gate holds ( b1 is strict & b1 is non-empty ) proof let A be Circuit of S; ::_thesis: ( A is one-gate implies ( A is strict & A is non-empty ) ) assume A is one-gate ; ::_thesis: ( A is strict & A is non-empty ) then ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st ( S = 1GateCircStr (p,f) & A = 1GateCircuit (p,f) ) by Def7; hence ( A is strict & A is non-empty ) ; ::_thesis: verum end; end; registration let X be non empty finite set ; let n be Element of NAT ; let p be FinSeqLen of n; let f be Function of (n -tuples_on X),X; cluster 1GateCircuit (p,f) -> one-gate ; coherence 1GateCircuit (p,f) is one-gate by Def7; end; registration let S be one-gate ManySortedSign ; cluster non-empty finite-yielding one-gate for MSAlgebra over S; existence ex b1 being Circuit of S st ( b1 is one-gate & b1 is non-empty ) proof consider X being non empty finite set , n being Element of NAT , p being FinSeqLen of n, f being Function of (n -tuples_on X),X such that A1: S = 1GateCircStr (p,f) by Def6; reconsider A = 1GateCircuit (p,f) as finite-yielding MSAlgebra over S by A1; take A ; ::_thesis: ( A is one-gate & A is non-empty ) thus ( A is one-gate & A is non-empty ) by A1; ::_thesis: verum end; end; definition let S be one-gate ManySortedSign ; func Output S -> Vertex of S equals :: CIRCCMB3:def 8 union the carrier' of S; coherence union the carrier' of S is Vertex of S proof consider X being non empty finite set , n being Element of NAT , p being FinSeqLen of n, f being Function of (n -tuples_on X),X such that A1: S = 1GateCircStr (p,f) by Def6; [p,f] in {[p,f]} by TARSKI:def_1; then A2: [p,f] in (rng p) \/ {[p,f]} by XBOOLE_0:def_3; the carrier' of S = {[p,f]} by A1, CIRCCOMB:def_6; then union the carrier' of S = [p,f] by ZFMISC_1:25; hence union the carrier' of S is Vertex of S by A1, A2, CIRCCOMB:def_6; ::_thesis: verum end; end; :: deftheorem defines Output CIRCCMB3:def_8_:_ for S being one-gate ManySortedSign holds Output S = union the carrier' of S; registration let S be one-gate ManySortedSign ; cluster Output S -> pair ; coherence Output S is pair proof consider X being non empty finite set , n being Element of NAT , p being FinSeqLen of n, f being Function of (n -tuples_on X),X such that A1: S = 1GateCircStr (p,f) by Def6; the carrier' of S = {[p,f]} by A1, CIRCCOMB:def_6; hence Output S is pair by ZFMISC_1:25; ::_thesis: verum end; end; theorem Th15: :: CIRCCMB3:15 for S being one-gate ManySortedSign for p being FinSequence for x being set st S = 1GateCircStr (p,x) holds Output S = [p,x] proof let S be one-gate ManySortedSign ; ::_thesis: for p being FinSequence for x being set st S = 1GateCircStr (p,x) holds Output S = [p,x] let p be FinSequence; ::_thesis: for x being set st S = 1GateCircStr (p,x) holds Output S = [p,x] let x be set ; ::_thesis: ( S = 1GateCircStr (p,x) implies Output S = [p,x] ) assume S = 1GateCircStr (p,x) ; ::_thesis: Output S = [p,x] hence Output S = union {[p,x]} by CIRCCOMB:def_6 .= [p,x] by ZFMISC_1:25 ; ::_thesis: verum end; theorem Th16: :: CIRCCMB3:16 for S being one-gate ManySortedSign holds InnerVertices S = {(Output S)} proof let S be one-gate ManySortedSign ; ::_thesis: InnerVertices S = {(Output S)} consider X being non empty finite set , n being Element of NAT , p being FinSeqLen of n, f being Function of (n -tuples_on X),X such that A1: S = 1GateCircStr (p,f) by Def6; Output S = [p,f] by A1, Th15; hence InnerVertices S = {(Output S)} by A1, CIRCCOMB:42; ::_thesis: verum end; theorem :: CIRCCMB3:17 for S being one-gate ManySortedSign for A being one-gate Circuit of S for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) proof let S be one-gate ManySortedSign ; ::_thesis: for A being one-gate Circuit of S for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) let A be one-gate Circuit of S; ::_thesis: for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) let n be Element of NAT ; ::_thesis: for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) let X be non empty finite set ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n st A = 1GateCircuit (p,f) holds S = 1GateCircStr (p,f) let p be FinSeqLen of n; ::_thesis: ( A = 1GateCircuit (p,f) implies S = 1GateCircStr (p,f) ) assume A1: A = 1GateCircuit (p,f) ; ::_thesis: S = 1GateCircStr (p,f) consider X1 being non empty finite set , n1 being Element of NAT , p1 being FinSeqLen of n1, f1 being Function of (n1 -tuples_on X1),X1 such that A2: S = 1GateCircStr (p1,f1) and A3: A = 1GateCircuit (p1,f1) by Def7; {[p,f]} = the carrier' of (1GateCircStr (p,f)) by CIRCCOMB:def_6 .= dom the Charact of (1GateCircuit (p1,f1)) by A1, A3, PARTFUN1:def_2 .= the carrier' of (1GateCircStr (p1,f1)) by PARTFUN1:def_2 .= {[p1,f1]} by CIRCCOMB:def_6 ; then A4: [p,f] = [p1,f1] by ZFMISC_1:3; then p = p1 by XTUPLE_0:1; hence S = 1GateCircStr (p,f) by A2, A4, XTUPLE_0:1; ::_thesis: verum end; theorem :: CIRCCMB3:18 for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for s being State of (1GateCircuit (p,f)) holds (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) proof let n be Element of NAT ; ::_thesis: for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for s being State of (1GateCircuit (p,f)) holds (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) let X be non empty finite set ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for s being State of (1GateCircuit (p,f)) holds (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n for s being State of (1GateCircuit (p,f)) holds (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) let p be FinSeqLen of n; ::_thesis: for s being State of (1GateCircuit (p,f)) holds (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) let s be State of (1GateCircuit (p,f)); ::_thesis: (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) Output (1GateCircStr (p,f)) = [p,f] by Th15; hence (Following s) . (Output (1GateCircStr (p,f))) = f . (s * p) by CIRCCOMB:56; ::_thesis: verum end; theorem Th19: :: CIRCCMB3:19 for S being one-gate ManySortedSign for A being one-gate Circuit of S for s being State of A holds Following s is stable proof let S be one-gate ManySortedSign ; ::_thesis: for A being one-gate Circuit of S for s being State of A holds Following s is stable let A be one-gate Circuit of S; ::_thesis: for s being State of A holds Following s is stable let s be State of A; ::_thesis: Following s is stable ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st ( S = 1GateCircStr (p,f) & A = 1GateCircuit (p,f) ) by Def7; hence Following s is stable by CIRCCMB2:2; ::_thesis: verum end; registration let S be non empty non void Circuit-like ManySortedSign ; cluster non-empty finite-yielding one-gate -> non-empty with_stabilization-limit for MSAlgebra over S; coherence for b1 being non-empty Circuit of S st b1 is one-gate holds b1 is with_stabilization-limit proof let A be non-empty Circuit of S; ::_thesis: ( A is one-gate implies A is with_stabilization-limit ) assume A1: A is one-gate ; ::_thesis: A is with_stabilization-limit then ex X being non empty finite set ex n being Element of NAT ex p being FinSeqLen of n ex f being Function of (n -tuples_on X),X st ( S = 1GateCircStr (p,f) & A = 1GateCircuit (p,f) ) by Def7; then reconsider S1 = S as one-gate ManySortedSign ; reconsider A1 = A as one-gate Circuit of S1 by A1; take 1 ; :: according to CIRCCMB3:def_3 ::_thesis: for s being State of A holds Following (s,1) is stable let s be State of A; ::_thesis: Following (s,1) is stable reconsider s1 = s as State of A1 ; Following s1 is stable by Th19; hence Following (s,1) is stable by FACIRC_1:14; ::_thesis: verum end; end; theorem Th20: :: CIRCCMB3:20 for S being one-gate ManySortedSign for A being one-gate Circuit of S for s being State of A holds Result s = Following s proof let S be one-gate ManySortedSign ; ::_thesis: for A being one-gate Circuit of S for s being State of A holds Result s = Following s let A be one-gate Circuit of S; ::_thesis: for s being State of A holds Result s = Following s let s be State of A; ::_thesis: Result s = Following s A1: Following s = Following (s,1) by FACIRC_1:14; ( s is stabilizing & Following s is stable ) by Def2, Th19; hence Result s = Following s by A1, Def4; ::_thesis: verum end; theorem Th21: :: CIRCCMB3:21 for S being one-gate ManySortedSign for A being one-gate Circuit of S for s being State of A holds stabilization-time s <= 1 proof let S be one-gate ManySortedSign ; ::_thesis: for A being one-gate Circuit of S for s being State of A holds stabilization-time s <= 1 let A be one-gate Circuit of S; ::_thesis: for s being State of A holds stabilization-time s <= 1 let s be State of A; ::_thesis: stabilization-time s <= 1 Following s is stable by Th19; then A1: Following (s,1) is stable by FACIRC_1:14; s is stabilizing by Def2; hence stabilization-time s <= 1 by A1, Def5; ::_thesis: verum end; scheme :: CIRCCMB3:sch 1 OneGate1Ex{ F1() -> set , F2() -> non empty finite set , F3( set ) -> Element of F2() } : ex S being one-gate ManySortedSign ex A being one-gate Circuit of S st ( InputVertices S = {F1()} & ( for s being State of A holds (Result s) . (Output S) = F3((s . F1())) ) ) proof deffunc H1( Element of 1 -tuples_on F2()) -> Element of F2() = F3((\$1 . 1)); consider g being Function of (1 -tuples_on F2()),F2() such that A1: for a being Element of 1 -tuples_on F2() holds g . a = H1(a) from FUNCT_2:sch_4(); reconsider S = 1GateCircStr (<*F1()*>,g) as one-gate ManySortedSign ; take S ; ::_thesis: ex A being one-gate Circuit of S st ( InputVertices S = {F1()} & ( for s being State of A holds (Result s) . (Output S) = F3((s . F1())) ) ) reconsider A = 1GateCircuit (<*F1()*>,g) as one-gate Circuit of S ; take A ; ::_thesis: ( InputVertices S = {F1()} & ( for s being State of A holds (Result s) . (Output S) = F3((s . F1())) ) ) rng <*F1()*> = {F1()} by FINSEQ_1:38; hence InputVertices S = {F1()} by CIRCCOMB:42; ::_thesis: for s being State of A holds (Result s) . (Output S) = F3((s . F1())) let s be State of A; ::_thesis: (Result s) . (Output S) = F3((s . F1())) reconsider sx = s * <*F1()*> as Element of 1 -tuples_on F2() by Th12; dom <*F1()*> = Seg 1 by FINSEQ_1:38; then A2: 1 in dom <*F1()*> by FINSEQ_1:1; thus (Result s) . (Output S) = (Following s) . (Output S) by Th20 .= (Following s) . [<*F1()*>,g] by Th15 .= g . (s * <*F1()*>) by CIRCCOMB:56 .= F3((sx . 1)) by A1 .= F3((s . (<*F1()*> . 1))) by A2, FUNCT_1:13 .= F3((s . F1())) by FINSEQ_1:def_8 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 2 OneGate2Ex{ F1() -> set , F2() -> set , F3() -> non empty finite set , F4( set , set ) -> Element of F3() } : ex S being one-gate ManySortedSign ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2()} & ( for s being State of A holds (Result s) . (Output S) = F4((s . F1()),(s . F2())) ) ) proof deffunc H1( Element of 2 -tuples_on F3()) -> Element of F3() = F4((\$1 . 1),(\$1 . 2)); consider g being Function of (2 -tuples_on F3()),F3() such that A1: for a being Element of 2 -tuples_on F3() holds g . a = H1(a) from FUNCT_2:sch_4(); reconsider S = 1GateCircStr (<*F1(),F2()*>,g) as one-gate ManySortedSign ; take S ; ::_thesis: ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2()} & ( for s being State of A holds (Result s) . (Output S) = F4((s . F1()),(s . F2())) ) ) reconsider A = 1GateCircuit (<*F1(),F2()*>,g) as one-gate Circuit of S ; take A ; ::_thesis: ( InputVertices S = {F1(),F2()} & ( for s being State of A holds (Result s) . (Output S) = F4((s . F1()),(s . F2())) ) ) rng <*F1(),F2()*> = {F1(),F2()} by FINSEQ_2:127; hence InputVertices S = {F1(),F2()} by CIRCCOMB:42; ::_thesis: for s being State of A holds (Result s) . (Output S) = F4((s . F1()),(s . F2())) let s be State of A; ::_thesis: (Result s) . (Output S) = F4((s . F1()),(s . F2())) reconsider sx = s * <*F1(),F2()*> as Element of 2 -tuples_on F3() by Th12; A2: dom <*F1(),F2()*> = Seg 2 by FINSEQ_1:89; then A3: 1 in dom <*F1(),F2()*> by FINSEQ_1:1; A4: 2 in dom <*F1(),F2()*> by A2, FINSEQ_1:1; Result s = Following s by Th20; hence (Result s) . (Output S) = (Following s) . [<*F1(),F2()*>,g] by Th15 .= g . (s * <*F1(),F2()*>) by CIRCCOMB:56 .= F4((sx . 1),(sx . 2)) by A1 .= F4((s . (<*F1(),F2()*> . 1)),(sx . 2)) by A3, FUNCT_1:13 .= F4((s . (<*F1(),F2()*> . 1)),(s . (<*F1(),F2()*> . 2))) by A4, FUNCT_1:13 .= F4((s . F1()),(s . (<*F1(),F2()*> . 2))) by FINSEQ_1:44 .= F4((s . F1()),(s . F2())) by FINSEQ_1:44 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 3 OneGate3Ex{ F1() -> set , F2() -> set , F3() -> set , F4() -> non empty finite set , F5( set , set , set ) -> Element of F4() } : ex S being one-gate ManySortedSign ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3()} & ( for s being State of A holds (Result s) . (Output S) = F5((s . F1()),(s . F2()),(s . F3())) ) ) proof deffunc H1( Element of 3 -tuples_on F4()) -> Element of F4() = F5((\$1 . 1),(\$1 . 2),(\$1 . 3)); consider g being Function of (3 -tuples_on F4()),F4() such that A1: for a being Element of 3 -tuples_on F4() holds g . a = H1(a) from FUNCT_2:sch_4(); reconsider S = 1GateCircStr (<*F1(),F2(),F3()*>,g) as one-gate ManySortedSign ; take S ; ::_thesis: ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3()} & ( for s being State of A holds (Result s) . (Output S) = F5((s . F1()),(s . F2()),(s . F3())) ) ) reconsider A = 1GateCircuit (<*F1(),F2(),F3()*>,g) as one-gate Circuit of S ; take A ; ::_thesis: ( InputVertices S = {F1(),F2(),F3()} & ( for s being State of A holds (Result s) . (Output S) = F5((s . F1()),(s . F2()),(s . F3())) ) ) rng <*F1(),F2(),F3()*> = {F1(),F2(),F3()} by FINSEQ_2:128; hence InputVertices S = {F1(),F2(),F3()} by CIRCCOMB:42; ::_thesis: for s being State of A holds (Result s) . (Output S) = F5((s . F1()),(s . F2()),(s . F3())) let s be State of A; ::_thesis: (Result s) . (Output S) = F5((s . F1()),(s . F2()),(s . F3())) reconsider sx = s * <*F1(),F2(),F3()*> as Element of 3 -tuples_on F4() by Th12; A2: dom <*F1(),F2(),F3()*> = Seg 3 by FINSEQ_1:89; then A3: 1 in dom <*F1(),F2(),F3()*> by FINSEQ_1:1; A4: 3 in dom <*F1(),F2(),F3()*> by A2, FINSEQ_1:1; A5: 2 in dom <*F1(),F2(),F3()*> by A2, FINSEQ_1:1; Result s = Following s by Th20; hence (Result s) . (Output S) = (Following s) . [<*F1(),F2(),F3()*>,g] by Th15 .= g . (s * <*F1(),F2(),F3()*>) by CIRCCOMB:56 .= F5((sx . 1),(sx . 2),(sx . 3)) by A1 .= F5((s . (<*F1(),F2(),F3()*> . 1)),(sx . 2),(sx . 3)) by A3, FUNCT_1:13 .= F5((s . F1()),(sx . 2),(sx . 3)) by FINSEQ_1:45 .= F5((s . F1()),(s . (<*F1(),F2(),F3()*> . 2)),(sx . 3)) by A5, FUNCT_1:13 .= F5((s . F1()),(s . F2()),(sx . 3)) by FINSEQ_1:45 .= F5((s . F1()),(s . F2()),(s . (<*F1(),F2(),F3()*> . 3))) by A4, FUNCT_1:13 .= F5((s . F1()),(s . F2()),(s . F3())) by FINSEQ_1:45 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 4 OneGate4Ex{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> non empty finite set , F6( set , set , set , set ) -> Element of F5() } : ex S being one-gate ManySortedSign ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3(),F4()} & ( for s being State of A holds (Result s) . (Output S) = F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) ) ) proof deffunc H1( Element of 4 -tuples_on F5()) -> Element of F5() = F6((\$1 . 1),(\$1 . 2),(\$1 . 3),(\$1 . 4)); consider g being Function of (4 -tuples_on F5()),F5() such that A1: for a being Element of 4 -tuples_on F5() holds g . a = H1(a) from FUNCT_2:sch_4(); reconsider S = 1GateCircStr (<*F1(),F2(),F3(),F4()*>,g) as one-gate ManySortedSign ; take S ; ::_thesis: ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3(),F4()} & ( for s being State of A holds (Result s) . (Output S) = F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) ) ) reconsider A = 1GateCircuit (<*F1(),F2(),F3(),F4()*>,g) as one-gate Circuit of S ; take A ; ::_thesis: ( InputVertices S = {F1(),F2(),F3(),F4()} & ( for s being State of A holds (Result s) . (Output S) = F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) ) ) rng <*F1(),F2(),F3(),F4()*> = {F1(),F2(),F3(),F4()} by Th13; hence InputVertices S = {F1(),F2(),F3(),F4()} by CIRCCOMB:42; ::_thesis: for s being State of A holds (Result s) . (Output S) = F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) let s be State of A; ::_thesis: (Result s) . (Output S) = F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) reconsider sx = s * <*F1(),F2(),F3(),F4()*> as Element of 4 -tuples_on F5() by Th12; A2: dom <*F1(),F2(),F3(),F4()*> = Seg 4 by FINSEQ_1:89; then A3: 1 in dom <*F1(),F2(),F3(),F4()*> by FINSEQ_1:1; A4: 3 in dom <*F1(),F2(),F3(),F4()*> by A2, FINSEQ_1:1; A5: 2 in dom <*F1(),F2(),F3(),F4()*> by A2, FINSEQ_1:1; A6: 4 in dom <*F1(),F2(),F3(),F4()*> by A2, FINSEQ_1:1; Result s = Following s by Th20; hence (Result s) . (Output S) = (Following s) . [<*F1(),F2(),F3(),F4()*>,g] by Th15 .= g . (s * <*F1(),F2(),F3(),F4()*>) by CIRCCOMB:56 .= F6((sx . 1),(sx . 2),(sx . 3),(sx . 4)) by A1 .= F6((s . (<*F1(),F2(),F3(),F4()*> . 1)),(sx . 2),(sx . 3),(sx . 4)) by A3, FUNCT_1:13 .= F6((s . F1()),(sx . 2),(sx . 3),(sx . 4)) by FINSEQ_4:76 .= F6((s . F1()),(s . (<*F1(),F2(),F3(),F4()*> . 2)),(sx . 3),(sx . 4)) by A5, FUNCT_1:13 .= F6((s . F1()),(s . F2()),(sx . 3),(sx . 4)) by FINSEQ_4:76 .= F6((s . F1()),(s . F2()),(s . (<*F1(),F2(),F3(),F4()*> . 3)),(sx . 4)) by A4, FUNCT_1:13 .= F6((s . F1()),(s . F2()),(s . F3()),(sx . 4)) by FINSEQ_4:76 .= F6((s . F1()),(s . F2()),(s . F3()),(s . (<*F1(),F2(),F3(),F4()*> . 4))) by A6, FUNCT_1:13 .= F6((s . F1()),(s . F2()),(s . F3()),(s . F4())) by FINSEQ_4:76 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 5 OneGate5Ex{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> set , F6() -> non empty finite set , F7( set , set , set , set , set ) -> Element of F6() } : ex S being one-gate ManySortedSign ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3(),F4(),F5()} & ( for s being State of A holds (Result s) . (Output S) = F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) ) ) proof deffunc H1( Element of 5 -tuples_on F6()) -> Element of F6() = F7((\$1 . 1),(\$1 . 2),(\$1 . 3),(\$1 . 4),(\$1 . 5)); consider g being Function of (5 -tuples_on F6()),F6() such that A1: for a being Element of 5 -tuples_on F6() holds g . a = H1(a) from FUNCT_2:sch_4(); reconsider S = 1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,g) as one-gate ManySortedSign ; take S ; ::_thesis: ex A being one-gate Circuit of S st ( InputVertices S = {F1(),F2(),F3(),F4(),F5()} & ( for s being State of A holds (Result s) . (Output S) = F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) ) ) reconsider A = 1GateCircuit (<*F1(),F2(),F3(),F4(),F5()*>,g) as one-gate Circuit of S ; take A ; ::_thesis: ( InputVertices S = {F1(),F2(),F3(),F4(),F5()} & ( for s being State of A holds (Result s) . (Output S) = F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) ) ) rng <*F1(),F2(),F3(),F4(),F5()*> = {F1(),F2(),F3(),F4(),F5()} by Th14; hence InputVertices S = {F1(),F2(),F3(),F4(),F5()} by CIRCCOMB:42; ::_thesis: for s being State of A holds (Result s) . (Output S) = F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) let s be State of A; ::_thesis: (Result s) . (Output S) = F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) reconsider sx = s * <*F1(),F2(),F3(),F4(),F5()*> as Element of 5 -tuples_on F6() by Th12; A2: dom <*F1(),F2(),F3(),F4(),F5()*> = Seg 5 by FINSEQ_1:89; then A3: 1 in dom <*F1(),F2(),F3(),F4(),F5()*> by FINSEQ_1:1; A4: 5 in dom <*F1(),F2(),F3(),F4(),F5()*> by A2, FINSEQ_1:1; A5: 4 in dom <*F1(),F2(),F3(),F4(),F5()*> by A2, FINSEQ_1:1; A6: 3 in dom <*F1(),F2(),F3(),F4(),F5()*> by A2, FINSEQ_1:1; A7: 2 in dom <*F1(),F2(),F3(),F4(),F5()*> by A2, FINSEQ_1:1; Result s = Following s by Th20; hence (Result s) . (Output S) = (Following s) . [<*F1(),F2(),F3(),F4(),F5()*>,g] by Th15 .= g . (s * <*F1(),F2(),F3(),F4(),F5()*>) by CIRCCOMB:56 .= F7((sx . 1),(sx . 2),(sx . 3),(sx . 4),(sx . 5)) by A1 .= F7((s . (<*F1(),F2(),F3(),F4(),F5()*> . 1)),(sx . 2),(sx . 3),(sx . 4),(sx . 5)) by A3, FUNCT_1:13 .= F7((s . F1()),(sx . 2),(sx . 3),(sx . 4),(sx . 5)) by FINSEQ_4:78 .= F7((s . F1()),(s . (<*F1(),F2(),F3(),F4(),F5()*> . 2)),(sx . 3),(sx . 4),(sx . 5)) by A7, FUNCT_1:13 .= F7((s . F1()),(s . F2()),(sx . 3),(sx . 4),(sx . 5)) by FINSEQ_4:78 .= F7((s . F1()),(s . F2()),(s . (<*F1(),F2(),F3(),F4(),F5()*> . 3)),(sx . 4),(sx . 5)) by A6, FUNCT_1:13 .= F7((s . F1()),(s . F2()),(s . F3()),(sx . 4),(sx . 5)) by FINSEQ_4:78 .= F7((s . F1()),(s . F2()),(s . F3()),(s . (<*F1(),F2(),F3(),F4(),F5()*> . 4)),(sx . 5)) by A5, FUNCT_1:13 .= F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(sx . 5)) by FINSEQ_4:78 .= F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . (<*F1(),F2(),F3(),F4(),F5()*> . 5))) by A4, FUNCT_1:13 .= F7((s . F1()),(s . F2()),(s . F3()),(s . F4()),(s . F5())) by FINSEQ_4:78 ; ::_thesis: verum end; begin theorem Th22: :: CIRCCMB3:22 for X, Y being non empty set for n, m being Element of NAT st n <> 0 & n -tuples_on X = m -tuples_on Y holds ( X = Y & n = m ) proof let X, Y be non empty set ; ::_thesis: for n, m being Element of NAT st n <> 0 & n -tuples_on X = m -tuples_on Y holds ( X = Y & n = m ) let n, m be Element of NAT ; ::_thesis: ( n <> 0 & n -tuples_on X = m -tuples_on Y implies ( X = Y & n = m ) ) assume that A1: n <> 0 and A2: n -tuples_on X = m -tuples_on Y ; ::_thesis: ( X = Y & n = m ) thus X = Y ::_thesis: n = m proof thus X c= Y :: according to XBOOLE_0:def_10 ::_thesis: Y c= X proof let a be set ; :: according to TARSKI:def_3 ::_thesis: ( not a in X or a in Y ) assume a in X ; ::_thesis: a in Y then n |-> a is Element of n -tuples_on X by FINSEQ_2:112; then n |-> a in m -tuples_on Y by A2; then n |-> a in { s where s is Element of Y * : len s = m } by FINSEQ_2:def_4; then ex s being Element of Y * st ( s = n |-> a & len s = m ) ; then A3: rng (n |-> a) c= Y by FINSEQ_1:def_4; n |-> a = (Seg n) --> a by FINSEQ_2:def_2; then rng (n |-> a) = {a} by A1, FUNCOP_1:8; then a in rng (n |-> a) by TARSKI:def_1; hence a in Y by A3; ::_thesis: verum end; let a be set ; :: according to TARSKI:def_3 ::_thesis: ( not a in Y or a in X ) A4: m |-> a = (Seg m) --> a by FINSEQ_2:def_2; assume a in Y ; ::_thesis: a in X then m |-> a is Element of m -tuples_on Y by FINSEQ_2:112; then m |-> a in n -tuples_on X by A2; then m |-> a in { s where s is Element of X * : len s = n } by FINSEQ_2:def_4; then A5: ex s being Element of X * st ( s = m |-> a & len s = n ) ; then m = n by CARD_1:def_7; then rng (m |-> a) = {a} by A1, A4, FUNCOP_1:8; then A6: a in rng (m |-> a) by TARSKI:def_1; rng (m |-> a) c= X by A5, FINSEQ_1:def_4; hence a in X by A6; ::_thesis: verum end; thus n = m by A2, FINSEQ_2:110; ::_thesis: verum end; theorem :: CIRCCMB3:23 for S1, S2 being non empty ManySortedSign for v being Vertex of S1 holds v is Vertex of (S1 +* S2) proof let S1, S2 be non empty ManySortedSign ; ::_thesis: for v being Vertex of S1 holds v is Vertex of (S1 +* S2) let v be Vertex of S1; ::_thesis: v is Vertex of (S1 +* S2) v in the carrier of S1 \/ the carrier of S2 by XBOOLE_0:def_3; hence v is Vertex of (S1 +* S2) by CIRCCOMB:def_2; ::_thesis: verum end; theorem :: CIRCCMB3:24 for S1, S2 being non empty ManySortedSign for v being Vertex of S2 holds v is Vertex of (S1 +* S2) proof let S1, S2 be non empty ManySortedSign ; ::_thesis: for v being Vertex of S2 holds v is Vertex of (S1 +* S2) let v be Vertex of S2; ::_thesis: v is Vertex of (S1 +* S2) v in the carrier of S1 \/ the carrier of S2 by XBOOLE_0:def_3; hence v is Vertex of (S1 +* S2) by CIRCCOMB:def_2; ::_thesis: verum end; definition let X be non empty finite set ; mode Signature of X -> non empty non void unsplit gate`1=arity gate`2=den ManySortedSign means :Def9: :: CIRCCMB3:def 9 ex A being Circuit of it st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ); existence ex b1 being non empty non void unsplit gate`1=arity gate`2=den ManySortedSign ex A being Circuit of b1 st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) proof set p = the FinSeqLen of 1; set f = the Function of (1 -tuples_on X),X; take 1GateCircStr ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X) ; ::_thesis: ex A being Circuit of 1GateCircStr ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X) st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) set A = 1GateCircuit ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X); A1: the Sorts of (1GateCircuit ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X)) = the carrier of (1GateCircStr ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X)) --> X by CIRCCOMB:def_13; then the_value_of the Sorts of (1GateCircuit ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X)) = X by FUNCOP_1:79; hence ex A being Circuit of 1GateCircStr ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X) st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) by A1; ::_thesis: verum end; end; :: deftheorem Def9 defines Signature CIRCCMB3:def_9_:_ for X being non empty finite set for b2 being non empty non void unsplit gate`1=arity gate`2=den ManySortedSign holds ( b2 is Signature of X iff ex A being Circuit of b2 st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) ); theorem Th25: :: CIRCCMB3:25 for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircStr (p,f) is Signature of X proof let n be Element of NAT ; ::_thesis: for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircStr (p,f) is Signature of X let X be non empty finite set ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircStr (p,f) is Signature of X let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n holds 1GateCircStr (p,f) is Signature of X let p be FinSeqLen of n; ::_thesis: 1GateCircStr (p,f) is Signature of X take A = 1GateCircuit (p,f); :: according to CIRCCMB3:def_9 ::_thesis: ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) the Sorts of A = the carrier of (1GateCircStr (p,f)) --> X by CIRCCOMB:def_13; hence ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) by FUNCOP_1:79; ::_thesis: verum end; registration let X be non empty finite set ; cluster non empty non void V79() strict Circuit-like unsplit gate`1=arity gate`2=den one-gate for Signature of X; existence ex b1 being Signature of X st ( b1 is strict & b1 is one-gate ) proof set p = the FinSeqLen of 1; set f = the Function of (1 -tuples_on X),X; 1GateCircStr ( the FinSeqLen of 1, the Function of (1 -tuples_on X),X) is Signature of X by Th25; hence ex b1 being Signature of X st ( b1 is strict & b1 is one-gate ) ; ::_thesis: verum end; end; definition let n be Element of NAT ; let X be non empty finite set ; let f be Function of (n -tuples_on X),X; let p be FinSeqLen of n; :: original: 1GateCircStr redefine func 1GateCircStr (p,f) -> strict Signature of X; coherence 1GateCircStr (p,f) is strict Signature of X by Th25; end; definition let X be non empty finite set ; let S be Signature of X; mode Circuit of X,S -> Circuit of S means :Def10: :: CIRCCMB3:def 10 ( it is gate`2=den & the Sorts of it is constant & the_value_of the Sorts of it = X ); existence ex b1 being Circuit of S st ( b1 is gate`2=den & the Sorts of b1 is constant & the_value_of the Sorts of b1 = X ) proof ex A being Circuit of S st ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) by Def9; hence ex b1 being Circuit of S st ( b1 is gate`2=den & the Sorts of b1 is constant & the_value_of the Sorts of b1 = X ) ; ::_thesis: verum end; end; :: deftheorem Def10 defines Circuit CIRCCMB3:def_10_:_ for X being non empty finite set for S being Signature of X for b3 being Circuit of S holds ( b3 is Circuit of X,S iff ( b3 is gate`2=den & the Sorts of b3 is constant & the_value_of the Sorts of b3 = X ) ); registration let X be non empty finite set ; let S be Signature of X; cluster -> non-empty gate`2=den for Circuit of X,S; coherence for b1 being Circuit of X,S holds ( b1 is gate`2=den & b1 is non-empty ) proof let A be Circuit of X,S; ::_thesis: ( A is gate`2=den & A is non-empty ) thus A is gate`2=den by Def10; ::_thesis: A is non-empty ( not the Sorts of A is empty & the Sorts of A is constant & the_value_of the Sorts of A = X ) by Def10; then ( dom the Sorts of A = the carrier of S & ( for i being set st i in dom the Sorts of A holds not the Sorts of A . i is empty ) ) by FUNCT_1:def_12, PARTFUN1:def_2; then the Sorts of A is V8() by PBOOLE:def_13; hence A is non-empty by MSUALG_1:def_3; ::_thesis: verum end; end; theorem Th26: :: CIRCCMB3:26 for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircuit (p,f) is Circuit of X, 1GateCircStr (p,f) proof let n be Element of NAT ; ::_thesis: for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircuit (p,f) is Circuit of X, 1GateCircStr (p,f) let X be non empty finite set ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n holds 1GateCircuit (p,f) is Circuit of X, 1GateCircStr (p,f) let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n holds 1GateCircuit (p,f) is Circuit of X, 1GateCircStr (p,f) let p be FinSeqLen of n; ::_thesis: 1GateCircuit (p,f) is Circuit of X, 1GateCircStr (p,f) set A = 1GateCircuit (p,f); thus 1GateCircuit (p,f) is gate`2=den ; :: according to CIRCCMB3:def_10 ::_thesis: ( the Sorts of (1GateCircuit (p,f)) is constant & the_value_of the Sorts of (1GateCircuit (p,f)) = X ) the Sorts of (1GateCircuit (p,f)) = the carrier of (1GateCircStr (p,f)) --> X by CIRCCOMB:def_13; hence ( the Sorts of (1GateCircuit (p,f)) is constant & the_value_of the Sorts of (1GateCircuit (p,f)) = X ) by FUNCOP_1:79; ::_thesis: verum end; registration let X be non empty finite set ; let S be one-gate Signature of X; cluster strict non-empty finite-yielding gate`2=den one-gate for Circuit of X,S; existence ex b1 being Circuit of X,S st ( b1 is strict & b1 is one-gate ) proof consider A being Circuit of S such that A1: ( the Sorts of A is constant & the_value_of the Sorts of A = X ) and A2: A is gate`2=den by Def9; set B = MSAlgebra(# the Sorts of A, the Charact of A #); the Sorts of A is V36() by MSAFREE2:def_11; then reconsider B = MSAlgebra(# the Sorts of A, the Charact of A #) as Circuit of S by MSAFREE2:def_11; for g being set st g in the carrier' of S holds g = [(g `1),( the Charact of B . g)] by A2, CIRCCOMB:def_10; then B is gate`2=den by CIRCCOMB:def_10; then reconsider B = B as Circuit of X,S by A1, Def10; consider Y being non empty finite set , n being Element of NAT , p being FinSeqLen of n, f being Function of (n -tuples_on Y),Y such that A3: S = 1GateCircStr (p,f) by Def6; take B ; ::_thesis: ( B is strict & B is one-gate ) A4: dom the Arity of S = the carrier' of S by FUNCT_2:def_1; dom the Sorts of A = the carrier of S by PARTFUN1:def_2; then A5: the Sorts of B = the carrier of S --> X by A1, FUNCOP_1:80; set g = [p,f]; set C = 1GateCircuit (p,f); [p,f] in {[p,f]} by TARSKI:def_1; then A6: [p,f] in the carrier' of S by A3, CIRCCOMB:def_6; then A7: [p,f] = [([p,f] `1),( the Charact of (1GateCircuit (p,f)) . [p,f])] by A3, CIRCCOMB:def_10; the Arity of S . [p,f] in the carrier of S * by A6, FUNCT_2:5; then reconsider Ag = the Arity of S . [p,f] as FinSequence of the carrier of S by FINSEQ_1:def_11; dom the ResultSort of S = the carrier' of S by FUNCT_2:def_1; then A8: ( the Sorts of B * the ResultSort of S) . [p,f] = the Sorts of B . ( the ResultSort of S . [p,f]) by A6, FUNCT_1:13; the ResultSort of S . [p,f] in the carrier of S by A6, FUNCT_2:5; then the ResultSort of S . [p,f] in dom the Sorts of B by PARTFUN1:def_2; then A9: the Sorts of B . ( the ResultSort of S . [p,f]) = X by A1, FUNCT_1:def_12; A10: [p,f] = [([p,f] `1),( the Charact of B . [p,f])] by A6, CIRCCOMB:def_10; then dom ( the Charact of B . [p,f]) = dom f by XTUPLE_0:1; then A11: dom ( the Charact of B . [p,f]) = n -tuples_on Y by FUNCT_2:def_1; the Charact of B . [p,f] is Function of ((( the Sorts of B #) * the Arity of S) . [p,f]),(( the Sorts of B * the ResultSort of S) . [p,f]) by A6, PBOOLE:def_15; then dom ( the Charact of B . [p,f]) = (( the Sorts of B #) * the Arity of S) . [p,f] by A6, FUNCT_2:def_1; then A12: dom ( the Charact of B . [p,f]) = ( the Sorts of B #) . Ag by A6, A4, FUNCT_1:13 .= (len Ag) -tuples_on X by A5, CIRCCOMB:2 ; percases ( n <> 0 or n = 0 ) ; supposeA13: n <> 0 ; ::_thesis: ( B is strict & B is one-gate ) A14: now__::_thesis:_for_i_being_set_st_i_in_the_carrier'_of_S_holds_ the_Charact_of_B_._i_=_the_Charact_of_(1GateCircuit_(p,f))_._i let i be set ; ::_thesis: ( i in the carrier' of S implies the Charact of B . i = the Charact of (1GateCircuit (p,f)) . i ) assume i in the carrier' of S ; ::_thesis: the Charact of B . i = the Charact of (1GateCircuit (p,f)) . i then i in {[p,f]} by A3, CIRCCOMB:def_6; then i = [p,f] by TARSKI:def_1; hence the Charact of B . i = the Charact of (1GateCircuit (p,f)) . i by A10, A7, XTUPLE_0:1; ::_thesis: verum end; X = Y by A11, A12, A13, Th22; then the Sorts of B = the Sorts of (1GateCircuit (p,f)) by A3, A5, CIRCCOMB:def_13; hence ( B is strict & B is one-gate ) by A3, A14, PBOOLE:3; ::_thesis: verum end; supposeA15: n = 0 ; ::_thesis: ( B is strict & B is one-gate ) then n -tuples_on X = {(<*> X)} by FINSEQ_2:94 .= {(<*> Y)} .= n -tuples_on Y by A15, FINSEQ_2:94 ; then A16: dom f = n -tuples_on X by FUNCT_2:def_1; the Charact of B . [p,f] is Function of ((( the Sorts of B #) * the Arity of S) . [p,f]),(( the Sorts of B * the ResultSort of S) . [p,f]) by A6, PBOOLE:def_15; then A17: rng ( the Charact of B . [p,f]) c= ( the Sorts of B * the ResultSort of S) . [p,f] by RELAT_1:def_19; the Charact of B . [p,f] = f by A10, XTUPLE_0:1; then reconsider h = f as Function of (n -tuples_on X),X by A8, A9, A17, A16, FUNCT_2:2; set D = 1GateCircuit (p,h); A18: [p,f] = [([p,f] `1),( the Charact of (1GateCircuit (p,h)) . [p,f])] by A3, A6, CIRCCOMB:def_10; A19: now__::_thesis:_for_i_being_set_st_i_in_the_carrier'_of_S_holds_ the_Charact_of_B_._i_=_the_Charact_of_(1GateCircuit_(p,h))_._i let i be set ; ::_thesis: ( i in the carrier' of S implies the Charact of B . i = the Charact of (1GateCircuit (p,h)) . i ) assume i in the carrier' of S ; ::_thesis: the Charact of B . i = the Charact of (1GateCircuit (p,h)) . i then i in {[p,f]} by A3, CIRCCOMB:def_6; then i = [p,f] by TARSKI:def_1; hence the Charact of B . i = the Charact of (1GateCircuit (p,h)) . i by A10, A18, XTUPLE_0:1; ::_thesis: verum end; the Sorts of B = the Sorts of (1GateCircuit (p,h)) by A3, A5, CIRCCOMB:def_13; hence ( B is strict & B is one-gate ) by A3, A19, PBOOLE:3; ::_thesis: verum end; end; end; end; registration let X be non empty finite set ; let S be Signature of X; cluster strict non-empty finite-yielding gate`2=den for Circuit of X,S; existence ex b1 being Circuit of X,S st b1 is strict proof consider A being Circuit of S such that A1: ( the Sorts of A is constant & the_value_of the Sorts of A = X ) and A2: A is gate`2=den by Def9; set B = MSAlgebra(# the Sorts of A, the Charact of A #); the Sorts of A is V36() by MSAFREE2:def_11; then reconsider B = MSAlgebra(# the Sorts of A, the Charact of A #) as Circuit of S by MSAFREE2:def_11; for g being set st g in the carrier' of S holds g = [(g `1),( the Charact of B . g)] by A2, CIRCCOMB:def_10; then B is gate`2=den by CIRCCOMB:def_10; then reconsider B = B as Circuit of X,S by A1, Def10; take B ; ::_thesis: B is strict thus B is strict ; ::_thesis: verum end; end; definition let n be Element of NAT ; let X be non empty finite set ; let f be Function of (n -tuples_on X),X; let p be FinSeqLen of n; :: original: 1GateCircuit redefine func 1GateCircuit (p,f) -> strict Circuit of X, 1GateCircStr (p,f); coherence 1GateCircuit (p,f) is strict Circuit of X, 1GateCircStr (p,f) by Th26; end; theorem Th27: :: CIRCCMB3:27 for X being non empty finite set for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 tolerates A2 proof let X be non empty finite set ; ::_thesis: for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 tolerates A2 let S1, S2 be Signature of X; ::_thesis: for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 tolerates A2 let A1 be Circuit of X,S1; ::_thesis: for A2 being Circuit of X,S2 holds A1 tolerates A2 let A2 be Circuit of X,S2; ::_thesis: A1 tolerates A2 thus S1 tolerates S2 by CIRCCOMB:47; :: according to CIRCCOMB:def_3 ::_thesis: ( the Sorts of A1 tolerates the Sorts of A2 & the Charact of A1 tolerates the Charact of A2 ) ( the Sorts of A2 is constant & the_value_of the Sorts of A2 = X ) by Def10; then A1: the Sorts of A2 = (dom the Sorts of A2) --> X by FUNCOP_1:80; ( the Sorts of A1 is constant & the_value_of the Sorts of A1 = X ) by Def10; then the Sorts of A1 = (dom the Sorts of A1) --> X by FUNCOP_1:80; hence the Sorts of A1 tolerates the Sorts of A2 by A1, FUNCOP_1:87; ::_thesis: the Charact of A1 tolerates the Charact of A2 thus the Charact of A1 tolerates the Charact of A2 by CIRCCOMB:48; ::_thesis: verum end; theorem Th28: :: CIRCCMB3:28 for X being non empty finite set for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is Circuit of S1 +* S2 proof let X be non empty finite set ; ::_thesis: for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is Circuit of S1 +* S2 let S1, S2 be Signature of X; ::_thesis: for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is Circuit of S1 +* S2 A1: the carrier of (S1 +* S2) = the carrier of S1 \/ the carrier of S2 by CIRCCOMB:def_2; let A1 be Circuit of X,S1; ::_thesis: for A2 being Circuit of X,S2 holds A1 +* A2 is Circuit of S1 +* S2 let A2 be Circuit of X,S2; ::_thesis: A1 +* A2 is Circuit of S1 +* S2 A2: ( dom the Sorts of A1 = the carrier of S1 & dom the Sorts of A2 = the carrier of S2 ) by PARTFUN1:def_2; A3: ( the Sorts of A1 is V36() & the Sorts of A2 is V36() ) by MSAFREE2:def_11; A1 tolerates A2 by Th27; then A4: the Sorts of A1 tolerates the Sorts of A2 by CIRCCOMB:def_3; then A5: the Sorts of (A1 +* A2) = the Sorts of A1 +* the Sorts of A2 by CIRCCOMB:def_4; A1 +* A2 is finite-yielding proof let i be set ; :: according to MSAFREE2:def_11,FINSET_1:def_5 ::_thesis: ( not i in the carrier of (S1 +* S2) or the Sorts of (A1 +* A2) . i is finite ) assume i in the carrier of (S1 +* S2) ; ::_thesis: the Sorts of (A1 +* A2) . i is finite then ( i in the carrier of S1 or i in the carrier of S2 ) by A1, XBOOLE_0:def_3; then ( ( i in the carrier of S1 & the Sorts of (A1 +* A2) . i = the Sorts of A1 . i ) or ( i in the carrier of S2 & the Sorts of (A1 +* A2) . i = the Sorts of A2 . i ) ) by A4, A5, A2, FUNCT_4:13, FUNCT_4:15; hence the Sorts of (A1 +* A2) . i is finite by A3; ::_thesis: verum end; hence A1 +* A2 is Circuit of S1 +* S2 ; ::_thesis: verum end; theorem Th29: :: CIRCCMB3:29 for X being non empty finite set for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is gate`2=den proof let X be non empty finite set ; ::_thesis: for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is gate`2=den let S1, S2 be Signature of X; ::_thesis: for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds A1 +* A2 is gate`2=den A1: the carrier' of (S1 +* S2) = the carrier' of S1 \/ the carrier' of S2 by CIRCCOMB:def_2; let A1 be Circuit of X,S1; ::_thesis: for A2 being Circuit of X,S2 holds A1 +* A2 is gate`2=den let A2 be Circuit of X,S2; ::_thesis: A1 +* A2 is gate`2=den A2: ( dom the Charact of A1 = the carrier' of S1 & dom the Charact of A2 = the carrier' of S2 ) by PARTFUN1:def_2; A3: A1 tolerates A2 by Th27; then the Sorts of A1 tolerates the Sorts of A2 by CIRCCOMB:def_3; then A4: the Charact of (A1 +* A2) = the Charact of A1 +* the Charact of A2 by CIRCCOMB:def_4; A5: the Charact of A1 tolerates the Charact of A2 by A3, CIRCCOMB:def_3; A1 +* A2 is gate`2=den proof let i be set ; :: according to CIRCCOMB:def_10 ::_thesis: ( not i in the carrier' of (S1 +* S2) or i = [(i `1),( the Charact of (A1 +* A2) . i)] ) assume i in the carrier' of (S1 +* S2) ; ::_thesis: i = [(i `1),( the Charact of (A1 +* A2) . i)] then ( i in the carrier' of S1 or i in the carrier' of S2 ) by A1, XBOOLE_0:def_3; then ( ( i in the carrier' of S1 & the Charact of (A1 +* A2) . i = the Charact of A1 . i ) or ( i in the carrier' of S2 & the Charact of (A1 +* A2) . i = the Charact of A2 . i ) ) by A5, A4, A2, FUNCT_4:13, FUNCT_4:15; hence i = [(i `1),( the Charact of (A1 +* A2) . i)] by CIRCCOMB:def_10; ::_thesis: verum end; hence A1 +* A2 is gate`2=den ; ::_thesis: verum end; theorem Th30: :: CIRCCMB3:30 for X being non empty finite set for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) proof let X be non empty finite set ; ::_thesis: for S1, S2 being Signature of X for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) let S1, S2 be Signature of X; ::_thesis: for A1 being Circuit of X,S1 for A2 being Circuit of X,S2 holds ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) let A1 be Circuit of X,S1; ::_thesis: for A2 being Circuit of X,S2 holds ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) let A2 be Circuit of X,S2; ::_thesis: ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) reconsider A = A1 +* A2 as Circuit of S1 +* S2 by Th28; A1: dom the Sorts of A1 = the carrier of S1 by PARTFUN1:def_2; ( the Sorts of A1 is constant & the_value_of the Sorts of A1 = X ) by Def10; then the Sorts of A1 = (dom the Sorts of A1) --> X by FUNCOP_1:80; then A2: the Sorts of A1 = [:(dom the Sorts of A1),{X}:] by FUNCOP_1:def_2; ( the Sorts of A2 is constant & the_value_of the Sorts of A2 = X ) by Def10; then the Sorts of A2 = (dom the Sorts of A2) --> X by FUNCOP_1:80; then A3: the Sorts of A2 = [:(dom the Sorts of A2),{X}:] by FUNCOP_1:def_2; A1 tolerates A2 by Th27; then A4: the Sorts of A1 tolerates the Sorts of A2 by CIRCCOMB:def_3; then the Sorts of A = the Sorts of A1 +* the Sorts of A2 by CIRCCOMB:def_4 .= the Sorts of A1 \/ the Sorts of A2 by A4, FUNCT_4:30 .= [:((dom the Sorts of A1) \/ (dom the Sorts of A2)),{X}:] by A2, A3, ZFMISC_1:97 .= ( the carrier of S1 \/ (dom the Sorts of A2)) --> X by A1, FUNCOP_1:def_2 ; hence ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) by FUNCOP_1:79; ::_thesis: verum end; registration let S1, S2 be non empty finite ManySortedSign ; clusterS1 +* S2 -> finite ; coherence S1 +* S2 is finite proof the carrier of (S1 +* S2) = the carrier of S1 \/ the carrier of S2 by CIRCCOMB:def_2; hence S1 +* S2 is finite ; ::_thesis: verum end; end; registration let X be non empty finite set ; let S1, S2 be Signature of X; clusterS1 +* S2 -> gate`2=den ; coherence S1 +* S2 is gate`2=den proof consider A2 being Circuit of S2 such that A1: ( the Sorts of A2 is constant & the_value_of the Sorts of A2 = X & A2 is gate`2=den ) by Def9; reconsider A2 = A2 as Circuit of X,S2 by A1, Def10; consider A1 being Circuit of S1 such that A2: ( the Sorts of A1 is constant & the_value_of the Sorts of A1 = X & A1 is gate`2=den ) by Def9; reconsider A1 = A1 as Circuit of X,S1 by A2, Def10; A1 +* A2 is gate`2=den by Th29; hence S1 +* S2 is gate`2=den by CIRCCOMB:def_11; ::_thesis: verum end; end; definition let X be non empty finite set ; let S1, S2 be Signature of X; :: original: +* redefine funcS1 +* S2 -> strict Signature of X; coherence S1 +* S2 is strict Signature of X proof consider A2 being Circuit of S2 such that A1: ( the Sorts of A2 is constant & the_value_of the Sorts of A2 = X & A2 is gate`2=den ) by Def9; reconsider A2 = A2 as Circuit of X,S2 by A1, Def10; consider A1 being Circuit of S1 such that A2: ( the Sorts of A1 is constant & the_value_of the Sorts of A1 = X & A1 is gate`2=den ) by Def9; reconsider A1 = A1 as Circuit of X,S1 by A2, Def10; reconsider A = A1 +* A2 as Circuit of S1 +* S2 by Th28; S1 +* S2 is Signature of X proof take A ; :: according to CIRCCMB3:def_9 ::_thesis: ( the Sorts of A is constant & the_value_of the Sorts of A = X & A is gate`2=den ) thus ( the Sorts of A is constant & the_value_of the Sorts of A = X ) by Th30; ::_thesis: A is gate`2=den thus A is gate`2=den by Th29; ::_thesis: verum end; hence S1 +* S2 is strict Signature of X ; ::_thesis: verum end; end; definition let X be non empty finite set ; let S1, S2 be Signature of X; let A1 be Circuit of X,S1; let A2 be Circuit of X,S2; :: original: +* redefine funcA1 +* A2 -> strict Circuit of X,S1 +* S2; coherence A1 +* A2 is strict Circuit of X,S1 +* S2 proof A1: ( the Sorts of (A1 +* A2) is constant & the_value_of the Sorts of (A1 +* A2) = X ) by Th30; ( A1 +* A2 is gate`2=den & A1 +* A2 is Circuit of S1 +* S2 ) by Th28, Th29; hence A1 +* A2 is strict Circuit of X,S1 +* S2 by A1, Def10; ::_thesis: verum end; end; theorem Th31: :: CIRCCMB3:31 for x, y being set holds ( the_rank_of x in the_rank_of [x,y] & the_rank_of y in the_rank_of [x,y] ) proof let x, y be set ; ::_thesis: ( the_rank_of x in the_rank_of [x,y] & the_rank_of y in the_rank_of [x,y] ) {x} in {{x,y},{x}} by TARSKI:def_2; then A1: the_rank_of {x} in the_rank_of {{x,y},{x}} by CLASSES1:68; x in {x} by TARSKI:def_1; then the_rank_of x in the_rank_of {x} by CLASSES1:68; hence the_rank_of x in the_rank_of [x,y] by A1, ORDINAL1:10; ::_thesis: the_rank_of y in the_rank_of [x,y] {x,y} in {{x,y},{x}} by TARSKI:def_2; then A2: the_rank_of {x,y} in the_rank_of {{x,y},{x}} by CLASSES1:68; y in {x,y} by TARSKI:def_2; then the_rank_of y in the_rank_of {x,y} by CLASSES1:68; hence the_rank_of y in the_rank_of [x,y] by A2, ORDINAL1:10; ::_thesis: verum end; theorem Th32: :: CIRCCMB3:32 for S being non empty finite non void unsplit gate`1=arity gate`2=den ManySortedSign for A being non-empty Circuit of S st A is gate`2=den holds A is with_stabilization-limit proof let S be non empty finite non void unsplit gate`1=arity gate`2=den ManySortedSign ; ::_thesis: for A being non-empty Circuit of S st A is gate`2=den holds A is with_stabilization-limit defpred S1[ set , set ] means ( \$1 = \$2 or ( \$1 in the carrier' of S & \$2 in proj2 (\$1 `1) ) ); consider R being Relation such that A1: for a, b being set holds ( [a,b] in R iff ( a in the carrier of S & b in the carrier of S & S1[a,b] ) ) from RELAT_1:sch_1(); let A be non-empty Circuit of S; ::_thesis: ( A is gate`2=den implies A is with_stabilization-limit ) assume A2: A is gate`2=den ; ::_thesis: A is with_stabilization-limit A3: R is co-well_founded proof defpred S2[ set , set ] means \$2 = the_rank_of \$1; let Y be set ; :: according to REWRITE1:def_16 ::_thesis: ( not Y c= field R or Y = {} or ex b1 being set st ( b1 in Y & ( for b2 being set holds ( not b2 in Y or b1 = b2 or not [b1,b2] in R ) ) ) ) assume that Y c= field R and A4: Y <> {} ; ::_thesis: ex b1 being set st ( b1 in Y & ( for b2 being set holds ( not b2 in Y or b1 = b2 or not [b1,b2] in R ) ) ) set y = the Element of Y; A5: for x, y, z being set st S2[x,y] & S2[x,z] holds y = z ; consider B being set such that A6: for x being set holds ( x in B iff ex y being set st ( y in Y & S2[y,x] ) ) from TARSKI:sch_1(A5); the_rank_of the Element of Y in B by A4, A6; then inf B in B by ORDINAL2:17; then consider y being set such that A7: y in Y and A8: inf B = the_rank_of y by A6; take y ; ::_thesis: ( y in Y & ( for b1 being set holds ( not b1 in Y or y = b1 or not [y,b1] in R ) ) ) thus y in Y by A7; ::_thesis: for b1 being set holds ( not b1 in Y or y = b1 or not [y,b1] in R ) let b be set ; ::_thesis: ( not b in Y or y = b or not [y,b] in R ) assume that A9: b in Y and A10: ( y <> b & [y,b] in R ) ; ::_thesis: contradiction the_rank_of b in B by A6, A9; then A11: inf B c= the_rank_of b by ORDINAL2:14; y in the carrier' of S by A1, A10; then y = [(y `1),( the Charact of A . y)] by A2, CIRCCOMB:def_10; then A12: the_rank_of (y `1) in the_rank_of y by Th31; b in proj2 (y `1) by A1, A10; then consider c being set such that A13: [c,b] in y `1 by XTUPLE_0:def_13; A14: the_rank_of b in the_rank_of [c,b] by Th31; the_rank_of [c,b] in the_rank_of (y `1) by A13, CLASSES1:68; hence contradiction by A8, A14, A12, A11, ORDINAL1:10; ::_thesis: verum end; defpred S2[ set , set ] means ex n being Element of NAT st ( \$2 = n & ( for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . \$1 = (Following (s,n)) . \$1 ) ); defpred S3[ set ] means ( \$1 in the carrier of S implies ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . \$1 = (Following (s,n)) . \$1 ); A15: rng R c= the carrier of S proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in rng R or o in the carrier of S ) assume o in rng R ; ::_thesis: o in the carrier of S then ex q being set st [q,o] in R by XTUPLE_0:def_13; hence o in the carrier of S by A1; ::_thesis: verum end; A16: the carrier of S c= field R proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in the carrier of S or o in field R ) assume o in the carrier of S ; ::_thesis: o in field R then [o,o] in R by A1; hence o in field R by RELAT_1:15; ::_thesis: verum end; dom R c= the carrier of S proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in dom R or o in the carrier of S ) assume o in dom R ; ::_thesis: o in the carrier of S then ex q being set st [o,q] in R by XTUPLE_0:def_12; hence o in the carrier of S by A1; ::_thesis: verum end; then A17: (dom R) \/ (rng R) c= the carrier of S \/ the carrier of S by A15, XBOOLE_1:13; then A18: the carrier of S = field R by A16, XBOOLE_0:def_10; A19: for a being set st ( for b being set st [a,b] in R & a <> b holds S3[b] ) holds S3[a] proof defpred S4[ set , set ] means ex n being Element of NAT st ( \$2 = n & ( for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . \$1 = (Following (s,n)) . \$1 ) ); let a be set ; ::_thesis: ( ( for b being set st [a,b] in R & a <> b holds S3[b] ) implies S3[a] ) defpred S5[ set ] means ( a <> \$1 & [a,\$1] in R ); consider RS being set such that A20: for b being set holds ( b in RS iff ( b in field R & S5[b] ) ) from XBOOLE_0:sch_1(); A21: RS c= the carrier of S proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in RS or o in the carrier of S ) assume o in RS ; ::_thesis: o in the carrier of S hence o in the carrier of S by A18, A20; ::_thesis: verum end; assume A22: for b being set st [a,b] in R & a <> b holds S3[b] ; ::_thesis: S3[a] A23: for b being set st b in RS holds ex z being set st S4[b,z] proof let b be set ; ::_thesis: ( b in RS implies ex z being set st S4[b,z] ) assume A24: b in RS ; ::_thesis: ex z being set st S4[b,z] then ( a <> b & [a,b] in R ) by A20; then ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . b = (Following (s,n)) . b by A22, A21, A24; hence ex z being set st S4[b,z] ; ::_thesis: verum end; consider f being Function such that A25: dom f = RS and A26: for x being set st x in RS holds S4[x,f . x] from CLASSES1:sch_1(A23); assume A27: a in the carrier of S ; ::_thesis: ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a percases ( RS <> {} or RS = {} ) ; supposeA28: RS <> {} ; ::_thesis: ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a rng f c= NAT proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in rng f or o in NAT ) assume o in rng f ; ::_thesis: o in NAT then consider l being set such that A29: l in dom f and A30: o = f . l by FUNCT_1:def_3; ex n being Element of NAT st ( f . l = n & ( for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . l = (Following (s,n)) . l ) ) by A25, A26, A29; hence o in NAT by A30; ::_thesis: verum end; then reconsider C = rng f as non empty finite Subset of NAT by A21, A25, A28, FINSET_1:8, RELAT_1:38, RELAT_1:41; set b = the Element of RS; ( a <> the Element of RS & [a, the Element of RS] in R ) by A20, A28; then reconsider a1 = a as Gate of S by A1; reconsider mC = max C as Element of NAT by ORDINAL1:def_12; take n = mC + 1; ::_thesis: for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a let s be State of A; ::_thesis: for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a let m be Element of NAT ; ::_thesis: ( m >= n implies (Following (s,m)) . a = (Following (s,n)) . a ) assume m >= n ; ::_thesis: (Following (s,m)) . a = (Following (s,n)) . a then consider k being Nat such that A31: m = n + k by NAT_1:10; reconsider k = k as Element of NAT by ORDINAL1:def_12; A32: for x being set st x in rng (the_arity_of a1) holds Following (s,mC) is_stable_at x proof let x be set ; ::_thesis: ( x in rng (the_arity_of a1) implies Following (s,mC) is_stable_at x ) assume A33: x in rng (the_arity_of a1) ; ::_thesis: Following (s,mC) is_stable_at x a1 = [( the Arity of S . a1),(a1 `2)] by CIRCCOMB:def_8; then A34: a1 = [(the_arity_of a1),(a1 `2)] by MSUALG_1:def_1; then the_rank_of x in the_rank_of a1 by A33, CLASSES1:82; then A35: x <> a ; ( rng (the_arity_of a1) c= the carrier of S & x in proj2 (a `1) ) by A33, A34, FINSEQ_1:def_4, MCART_1:7; then A36: [a1,x] in R by A1, A27, A33; then x in field R by RELAT_1:15; then A37: x in RS by A20, A35, A36; then consider l being Element of NAT such that A38: f . x = l and A39: for s being State of A for m being Element of NAT st m >= l holds (Following (s,m)) . x = (Following (s,l)) . x by A26; l in rng f by A25, A37, A38, FUNCT_1:3; then A40: max C >= l by XXREAL_2:def_8; now__::_thesis:_for_k_being_Nat_holds_(Following_((Following_(s,mC)),k))_._x_=_(Following_(s,mC))_._x let k be Nat; ::_thesis: (Following ((Following (s,mC)),k)) . x = (Following (s,mC)) . x A41: mC + k >= max C by NAT_1:11; thus (Following ((Following (s,mC)),k)) . x = (Following (s,(mC + k))) . x by FACIRC_1:13 .= (Following (s,l)) . x by A39, A40, A41, XXREAL_0:2 .= (Following (s,mC)) . x by A39, A40 ; ::_thesis: verum end; hence Following (s,mC) is_stable_at x by FACIRC_1:def_9; ::_thesis: verum end; the_result_sort_of a1 = the ResultSort of S . a1 by MSUALG_1:def_2 .= a by CIRCCOMB:44 ; then Following (Following (s,mC)) is_stable_at a by A32, FACIRC_1:19; then Following (s,n) is_stable_at a by FACIRC_1:12; then (Following ((Following (s,n)),k)) . a = (Following (s,n)) . a by FACIRC_1:def_9; hence (Following (s,m)) . a = (Following (s,n)) . a by A31, FACIRC_1:13; ::_thesis: verum end; supposeA42: RS = {} ; ::_thesis: ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a take n = 1; ::_thesis: for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a let s be State of A; ::_thesis: for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a let m be Element of NAT ; ::_thesis: ( m >= n implies (Following (s,m)) . a = (Following (s,n)) . a ) assume m >= n ; ::_thesis: (Following (s,m)) . a = (Following (s,n)) . a then consider k being Nat such that A43: m = n + k by NAT_1:10; reconsider k = k as Element of NAT by ORDINAL1:def_12; A44: now__::_thesis:_(_a_in_InnerVertices_S_implies_(Following_(s,m))_._a_=_(Following_(s,n))_._a_) assume a in InnerVertices S ; ::_thesis: (Following (s,m)) . a = (Following (s,n)) . a then a in rng (id the carrier' of S) by CIRCCOMB:def_7; then reconsider a1 = a as Gate of S ; for x being set st x in rng (the_arity_of a1) holds s is_stable_at x proof let x be set ; ::_thesis: ( x in rng (the_arity_of a1) implies s is_stable_at x ) assume A45: x in rng (the_arity_of a1) ; ::_thesis: s is_stable_at x a1 = [( the Arity of S . a1),(a1 `2)] by CIRCCOMB:def_8; then A46: a1 = [(the_arity_of a1),(a1 `2)] by MSUALG_1:def_1; then the_rank_of x in the_rank_of a1 by A45, CLASSES1:82; then A47: x <> a ; ( rng (the_arity_of a1) c= the carrier of S & x in proj2 (a `1) ) by A45, A46, FINSEQ_1:def_4, MCART_1:7; then A48: [a1,x] in R by A1, A27, A45; then x in field R by RELAT_1:15; hence s is_stable_at x by A20, A42, A47, A48; ::_thesis: verum end; then A49: Following s is_stable_at the_result_sort_of a1 by FACIRC_1:19; the_result_sort_of a1 = the ResultSort of S . a1 by MSUALG_1:def_2 .= a1 by CIRCCOMB:44 ; then Following (s,n) is_stable_at a1 by A49, FACIRC_1:14; then (Following ((Following (s,n)),k)) . a = (Following (s,n)) . a by FACIRC_1:def_9; hence (Following (s,m)) . a = (Following (s,n)) . a by A43, FACIRC_1:13; ::_thesis: verum end; A50: now__::_thesis:_(_a_in_InputVertices_S_implies_(Following_(s,m))_._a_=_(Following_(s,n))_._a_) assume a in InputVertices S ; ::_thesis: (Following (s,m)) . a = (Following (s,n)) . a then A51: s is_stable_at a by FACIRC_1:18; hence (Following (s,m)) . a = s . a by FACIRC_1:def_9 .= (Following (s,n)) . a by A51, FACIRC_1:def_9 ; ::_thesis: verum end; the carrier of S = (InputVertices S) \/ (InnerVertices S) by XBOOLE_1:45; hence (Following (s,m)) . a = (Following (s,n)) . a by A27, A50, A44, XBOOLE_0:def_3; ::_thesis: verum end; end; end; A52: for a being set st a in field R holds S3[a] from REWRITE1:sch_2(A3, A19); A53: for a being set st a in field R holds ex b being set st S2[a,b] proof let a be set ; ::_thesis: ( a in field R implies ex b being set st S2[a,b] ) assume a in field R ; ::_thesis: ex b being set st S2[a,b] then ex n being Element of NAT st for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . a = (Following (s,n)) . a by A17, A52; hence ex b being set st S2[a,b] ; ::_thesis: verum end; consider f being Function such that A54: dom f = field R and A55: for x being set st x in field R holds S2[x,f . x] from CLASSES1:sch_1(A53); rng f c= NAT proof let o be set ; :: according to TARSKI:def_3 ::_thesis: ( not o in rng f or o in NAT ) assume o in rng f ; ::_thesis: o in NAT then consider l being set such that A56: l in dom f and A57: o = f . l by FUNCT_1:def_3; ex n being Element of NAT st ( f . l = n & ( for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . l = (Following (s,n)) . l ) ) by A54, A55, A56; hence o in NAT by A57; ::_thesis: verum end; then reconsider C = rng f as non empty finite Subset of NAT by A18, A54, FINSET_1:8, RELAT_1:38, RELAT_1:41; reconsider N = max C as Element of NAT by ORDINAL1:def_12; take N ; :: according to CIRCCMB3:def_3 ::_thesis: for s being State of A holds Following (s,N) is stable let s be State of A; ::_thesis: Following (s,N) is stable A58: now__::_thesis:_for_x_being_set_st_x_in_the_carrier_of_S_holds_ (Following_(s,N))_._x_=_(Following_(Following_(s,N)))_._x let x be set ; ::_thesis: ( x in the carrier of S implies (Following (s,N)) . x = (Following (Following (s,N))) . x ) assume A59: x in the carrier of S ; ::_thesis: (Following (s,N)) . x = (Following (Following (s,N))) . x then consider n being Element of NAT such that A60: f . x = n and A61: for s being State of A for m being Element of NAT st m >= n holds (Following (s,m)) . x = (Following (s,n)) . x by A16, A55; n in C by A16, A54, A59, A60, FUNCT_1:3; then A62: N >= n by XXREAL_2:def_8; then A63: N + 1 >= n by NAT_1:13; thus (Following (s,N)) . x = (Following (s,n)) . x by A61, A62 .= (Following (s,(N + 1))) . x by A61, A63 .= (Following (Following (s,N))) . x by FACIRC_1:12 ; ::_thesis: verum end; ( dom (Following (s,N)) = the carrier of S & dom (Following (Following (s,N))) = the carrier of S ) by CIRCUIT1:3; hence Following (s,N) = Following (Following (s,N)) by A58, FUNCT_1:2; :: according to CIRCUIT2:def_6 ::_thesis: verum end; registration let X be non empty finite set ; let S be finite Signature of X; cluster -> with_stabilization-limit for Circuit of X,S; coherence for b1 being Circuit of X,S holds b1 is with_stabilization-limit by Th32; end; scheme :: CIRCCMB3:sch 6 1AryDef{ F1() -> non empty set , F2( set ) -> Element of F1() } : ( ex f being Function of (1 -tuples_on F1()),F1() st for x being Element of F1() holds f . <*x*> = F2(x) & ( for f1, f2 being Function of (1 -tuples_on F1()),F1() st ( for x being Element of F1() holds f1 . <*x*> = F2(x) ) & ( for x being Element of F1() holds f2 . <*x*> = F2(x) ) holds f1 = f2 ) ) proof deffunc H1( Element of 1 -tuples_on F1()) -> Element of F1() = F2((\$1 . 1)); consider f being Function of (1 -tuples_on F1()),F1() such that A1: for a being Element of 1 -tuples_on F1() holds f . a = H1(a) from FUNCT_2:sch_4(); hereby ::_thesis: for f1, f2 being Function of (1 -tuples_on F1()),F1() st ( for x being Element of F1() holds f1 . <*x*> = F2(x) ) & ( for x being Element of F1() holds f2 . <*x*> = F2(x) ) holds f1 = f2 take f = f; ::_thesis: for x being Element of F1() holds f . <*x*> = F2(x) let x be Element of F1(); ::_thesis: f . <*x*> = F2(x) reconsider a = <*x*> as Element of 1 -tuples_on F1() by FINSEQ_2:98; thus f . <*x*> = F2((a . 1)) by A1 .= F2(x) by FINSEQ_1:40 ; ::_thesis: verum end; let f1, f2 be Function of (1 -tuples_on F1()),F1(); ::_thesis: ( ( for x being Element of F1() holds f1 . <*x*> = F2(x) ) & ( for x being Element of F1() holds f2 . <*x*> = F2(x) ) implies f1 = f2 ) assume that A2: for x being Element of F1() holds f1 . <*x*> = F2(x) and A3: for x being Element of F1() holds f2 . <*x*> = F2(x) ; ::_thesis: f1 = f2 now__::_thesis:_for_a_being_Element_of_1_-tuples_on_F1()_holds_f1_._a_=_f2_._a let a be Element of 1 -tuples_on F1(); ::_thesis: f1 . a = f2 . a consider x being Element of F1() such that A4: a = <*x*> by FINSEQ_2:97; thus f1 . a = F2(x) by A2, A4 .= f2 . a by A3, A4 ; ::_thesis: verum end; hence f1 = f2 by FUNCT_2:63; ::_thesis: verum end; scheme :: CIRCCMB3:sch 7 2AryDef{ F1() -> non empty set , F2( set , set ) -> Element of F1() } : ( ex f being Function of (2 -tuples_on F1()),F1() st for x, y being Element of F1() holds f . <*x,y*> = F2(x,y) & ( for f1, f2 being Function of (2 -tuples_on F1()),F1() st ( for x, y being Element of F1() holds f1 . <*x,y*> = F2(x,y) ) & ( for x, y being Element of F1() holds f2 . <*x,y*> = F2(x,y) ) holds f1 = f2 ) ) proof deffunc H1( Element of 2 -tuples_on F1()) -> Element of F1() = F2((\$1 . 1),(\$1 . 2)); consider f being Function of (2 -tuples_on F1()),F1() such that A1: for a being Element of 2 -tuples_on F1() holds f . a = H1(a) from FUNCT_2:sch_4(); hereby ::_thesis: for f1, f2 being Function of (2 -tuples_on F1()),F1() st ( for x, y being Element of F1() holds f1 . <*x,y*> = F2(x,y) ) & ( for x, y being Element of F1() holds f2 . <*x,y*> = F2(x,y) ) holds f1 = f2 take f = f; ::_thesis: for x, y being Element of F1() holds f . <*x,y*> = F2(x,y) let x, y be Element of F1(); ::_thesis: f . <*x,y*> = F2(x,y) reconsider a = <*x,y*> as Element of 2 -tuples_on F1() by FINSEQ_2:101; thus f . <*x,y*> = F2((a . 1),(a . 2)) by A1 .= F2(x,(a . 2)) by FINSEQ_1:44 .= F2(x,y) by FINSEQ_1:44 ; ::_thesis: verum end; let f1, f2 be Function of (2 -tuples_on F1()),F1(); ::_thesis: ( ( for x, y being Element of F1() holds f1 . <*x,y*> = F2(x,y) ) & ( for x, y being Element of F1() holds f2 . <*x,y*> = F2(x,y) ) implies f1 = f2 ) assume that A2: for x, y being Element of F1() holds f1 . <*x,y*> = F2(x,y) and A3: for x, y being Element of F1() holds f2 . <*x,y*> = F2(x,y) ; ::_thesis: f1 = f2 now__::_thesis:_for_a_being_Element_of_2_-tuples_on_F1()_holds_f1_._a_=_f2_._a let a be Element of 2 -tuples_on F1(); ::_thesis: f1 . a = f2 . a consider x, y being Element of F1() such that A4: a = <*x,y*> by FINSEQ_2:100; thus f1 . a = F2(x,y) by A2, A4 .= f2 . a by A3, A4 ; ::_thesis: verum end; hence f1 = f2 by FUNCT_2:63; ::_thesis: verum end; scheme :: CIRCCMB3:sch 8 3AryDef{ F1() -> non empty set , F2( set , set , set ) -> Element of F1() } : ( ex f being Function of (3 -tuples_on F1()),F1() st for x, y, z being Element of F1() holds f . <*x,y,z*> = F2(x,y,z) & ( for f1, f2 being Function of (3 -tuples_on F1()),F1() st ( for x, y, z being Element of F1() holds f1 . <*x,y,z*> = F2(x,y,z) ) & ( for x, y, z being Element of F1() holds f2 . <*x,y,z*> = F2(x,y,z) ) holds f1 = f2 ) ) proof deffunc H1( Element of 3 -tuples_on F1()) -> Element of F1() = F2((\$1 . 1),(\$1 . 2),(\$1 . 3)); consider f being Function of (3 -tuples_on F1()),F1() such that A1: for a being Element of 3 -tuples_on F1() holds f . a = H1(a) from FUNCT_2:sch_4(); hereby ::_thesis: for f1, f2 being Function of (3 -tuples_on F1()),F1() st ( for x, y, z being Element of F1() holds f1 . <*x,y,z*> = F2(x,y,z) ) & ( for x, y, z being Element of F1() holds f2 . <*x,y,z*> = F2(x,y,z) ) holds f1 = f2 take f = f; ::_thesis: for x, y, z being Element of F1() holds f . <*x,y,z*> = F2(x,y,z) let x, y, z be Element of F1(); ::_thesis: f . <*x,y,z*> = F2(x,y,z) reconsider a = <*x,y,z*> as Element of 3 -tuples_on F1() by FINSEQ_2:104; thus f . <*x,y,z*> = F2((a . 1),(a . 2),(a . 3)) by A1 .= F2(x,(a . 2),(a . 3)) by FINSEQ_1:45 .= F2(x,y,(a . 3)) by FINSEQ_1:45 .= F2(x,y,z) by FINSEQ_1:45 ; ::_thesis: verum end; let f1, f2 be Function of (3 -tuples_on F1()),F1(); ::_thesis: ( ( for x, y, z being Element of F1() holds f1 . <*x,y,z*> = F2(x,y,z) ) & ( for x, y, z being Element of F1() holds f2 . <*x,y,z*> = F2(x,y,z) ) implies f1 = f2 ) assume that A2: for x, y, z being Element of F1() holds f1 . <*x,y,z*> = F2(x,y,z) and A3: for x, y, z being Element of F1() holds f2 . <*x,y,z*> = F2(x,y,z) ; ::_thesis: f1 = f2 now__::_thesis:_for_a_being_Element_of_3_-tuples_on_F1()_holds_f1_._a_=_f2_._a let a be Element of 3 -tuples_on F1(); ::_thesis: f1 . a = f2 . a consider x, y, z being Element of F1() such that A4: a = <*x,y,z*> by FINSEQ_2:103; thus f1 . a = F2(x,y,z) by A2, A4 .= f2 . a by A3, A4 ; ::_thesis: verum end; hence f1 = f2 by FUNCT_2:63; ::_thesis: verum end; theorem Th33: :: CIRCCMB3:33 for f being Function for x1, x2, x3, x4 being set st x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f holds f * <*x1,x2,x3,x4*> = <*(f . x1),(f . x2),(f . x3),(f . x4)*> proof let f be Function; ::_thesis: for x1, x2, x3, x4 being set st x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f holds f * <*x1,x2,x3,x4*> = <*(f . x1),(f . x2),(f . x3),(f . x4)*> let x1, x2, x3, x4 be set ; ::_thesis: ( x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f implies f * <*x1,x2,x3,x4*> = <*(f . x1),(f . x2),(f . x3),(f . x4)*> ) assume that A1: x1 in dom f and A2: ( x2 in dom f & x3 in dom f & x4 in dom f ) ; ::_thesis: f * <*x1,x2,x3,x4*> = <*(f . x1),(f . x2),(f . x3),(f . x4)*> reconsider D = dom f, E = rng f as non empty set by A1, FUNCT_1:3; rng <*x1,x2,x3,x4*> c= D proof let a be set ; :: according to TARSKI:def_3 ::_thesis: ( not a in rng <*x1,x2,x3,x4*> or a in D ) assume a in rng <*x1,x2,x3,x4*> ; ::_thesis: a in D then a in {x1,x2,x3,x4} by Th13; hence a in D by A1, A2, ENUMSET1:def_2; ::_thesis: verum end; then reconsider p = <*x1,x2,x3,x4*> as FinSequence of D by FINSEQ_1:def_4; reconsider g = f as Function of D,E by FUNCT_2:def_1, RELSET_1:4; A3: dom (g * p) = dom p by FINSEQ_3:120; A4: now__::_thesis:_for_k_being_Nat_st_k_in_dom_(g_*_p)_holds_ (g_*_p)_._k_=_<*(f_._x1),(f_._x2),(f_._x3),(f_._x4)*>_._k let k be Nat; ::_thesis: ( k in dom (g * p) implies (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 ) assume A5: k in dom (g * p) ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 then A6: k in Seg 4 by A3, FINSEQ_1:89; percases ( k = 1 or k = 2 or k = 3 or k = 4 ) by A6, ENUMSET1:def_2, FINSEQ_3:2; supposeA7: k = 1 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 then p . k = x1 by FINSEQ_4:76; then (g * p) . k = g . x1 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . k by A7, FINSEQ_4:76; ::_thesis: verum end; supposeA8: k = 2 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 then p . k = x2 by FINSEQ_4:76; then (g * p) . k = g . x2 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . k by A8, FINSEQ_4:76; ::_thesis: verum end; supposeA9: k = 3 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 then p . k = x3 by FINSEQ_4:76; then (g * p) . k = g . x3 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . k by A9, FINSEQ_4:76; ::_thesis: verum end; supposeA10: k = 4 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . b1 then p . k = x4 by FINSEQ_4:76; then (g * p) . k = g . x4 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4)*> . k by A10, FINSEQ_4:76; ::_thesis: verum end; end; end; dom (g * p) = Seg 4 by A3, FINSEQ_1:89 .= dom <*(f . x1),(f . x2),(f . x3),(f . x4)*> by FINSEQ_1:89 ; hence f * <*x1,x2,x3,x4*> = <*(f . x1),(f . x2),(f . x3),(f . x4)*> by A4, FINSEQ_1:13; ::_thesis: verum end; theorem Th34: :: CIRCCMB3:34 for f being Function for x1, x2, x3, x4, x5 being set st x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f & x5 in dom f holds f * <*x1,x2,x3,x4,x5*> = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> proof let f be Function; ::_thesis: for x1, x2, x3, x4, x5 being set st x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f & x5 in dom f holds f * <*x1,x2,x3,x4,x5*> = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> let x1, x2, x3, x4, x5 be set ; ::_thesis: ( x1 in dom f & x2 in dom f & x3 in dom f & x4 in dom f & x5 in dom f implies f * <*x1,x2,x3,x4,x5*> = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> ) assume that A1: x1 in dom f and A2: ( x2 in dom f & x3 in dom f & x4 in dom f & x5 in dom f ) ; ::_thesis: f * <*x1,x2,x3,x4,x5*> = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> reconsider D = dom f, E = rng f as non empty set by A1, FUNCT_1:3; rng <*x1,x2,x3,x4,x5*> c= D proof let a be set ; :: according to TARSKI:def_3 ::_thesis: ( not a in rng <*x1,x2,x3,x4,x5*> or a in D ) assume a in rng <*x1,x2,x3,x4,x5*> ; ::_thesis: a in D then a in {x1,x2,x3,x4,x5} by Th14; hence a in D by A1, A2, ENUMSET1:def_3; ::_thesis: verum end; then reconsider p = <*x1,x2,x3,x4,x5*> as FinSequence of D by FINSEQ_1:def_4; reconsider g = f as Function of D,E by FUNCT_2:def_1, RELSET_1:4; A3: dom (g * p) = dom p by FINSEQ_3:120; A4: now__::_thesis:_for_k_being_Nat_st_k_in_dom_(g_*_p)_holds_ (g_*_p)_._k_=_<*(f_._x1),(f_._x2),(f_._x3),(f_._x4),(f_._x5)*>_._k let k be Nat; ::_thesis: ( k in dom (g * p) implies (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 ) assume A5: k in dom (g * p) ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then A6: k in Seg 5 by A3, FINSEQ_1:89; percases ( k = 1 or k = 2 or k = 3 or k = 4 or k = 5 ) by A6, ENUMSET1:def_3, FINSEQ_3:3; supposeA7: k = 1 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then p . k = x1 by FINSEQ_4:78; then (g * p) . k = g . x1 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . k by A7, FINSEQ_4:78; ::_thesis: verum end; supposeA8: k = 2 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then p . k = x2 by FINSEQ_4:78; then (g * p) . k = g . x2 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . k by A8, FINSEQ_4:78; ::_thesis: verum end; supposeA9: k = 3 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then p . k = x3 by FINSEQ_4:78; then (g * p) . k = g . x3 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . k by A9, FINSEQ_4:78; ::_thesis: verum end; supposeA10: k = 4 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then p . k = x4 by FINSEQ_4:78; then (g * p) . k = g . x4 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . k by A10, FINSEQ_4:78; ::_thesis: verum end; supposeA11: k = 5 ; ::_thesis: (g * p) . b1 = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . b1 then p . k = x5 by FINSEQ_4:78; then (g * p) . k = g . x5 by A5, FINSEQ_3:120; hence (g * p) . k = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> . k by A11, FINSEQ_4:78; ::_thesis: verum end; end; end; dom (g * p) = Seg 5 by A3, FINSEQ_1:89 .= dom <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> by FINSEQ_1:89 ; hence f * <*x1,x2,x3,x4,x5*> = <*(f . x1),(f . x2),(f . x3),(f . x4),(f . x5)*> by A4, FINSEQ_1:13; ::_thesis: verum end; scheme :: CIRCCMB3:sch 9 OneGate1Result{ F1() -> set , F2() -> non empty finite set , F3( set ) -> Element of F2(), F4() -> Function of (1 -tuples_on F2()),F2() } : for s being State of (1GateCircuit (<*F1()*>,F4())) for a1 being Element of F2() st a1 = s . F1() holds (Result s) . (Output (1GateCircStr (<*F1()*>,F4()))) = F3(a1) provided A1: for g being Function of (1 -tuples_on F2()),F2() holds ( g = F4() iff for a1 being Element of F2() holds g . <*a1*> = F3(a1) ) proof set S = 1GateCircStr (<*F1()*>,F4()); let s be State of (1GateCircuit (<*F1()*>,F4())); ::_thesis: for a1 being Element of F2() st a1 = s . F1() holds (Result s) . (Output (1GateCircStr (<*F1()*>,F4()))) = F3(a1) dom s = the carrier of (1GateCircStr (<*F1()*>,F4())) by CIRCUIT1:3 .= (rng <*F1()*>) \/ {[<*F1()*>,F4()]} by CIRCCOMB:def_6 .= {F1()} \/ {[<*F1()*>,F4()]} by FINSEQ_1:38 .= {F1(),[<*F1()*>,F4()]} by ENUMSET1:1 ; then A2: F1() in dom s by TARSKI:def_2; let a1 be Element of F2(); ::_thesis: ( a1 = s . F1() implies (Result s) . (Output (1GateCircStr (<*F1()*>,F4()))) = F3(a1) ) assume a1 = s . F1() ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1()*>,F4()))) = F3(a1) then A3: s * <*F1()*> = <*a1*> by A2, FINSEQ_2:34; thus (Result s) . (Output (1GateCircStr (<*F1()*>,F4()))) = (Following s) . (Output (1GateCircStr (<*F1()*>,F4()))) by Th20 .= (Following s) . [<*F1()*>,F4()] by Th15 .= F4() . (s * <*F1()*>) by CIRCCOMB:56 .= F3(a1) by A1, A3 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 10 OneGate2Result{ F1() -> set , F2() -> set , F3() -> non empty finite set , F4( set , set ) -> Element of F3(), F5() -> Function of (2 -tuples_on F3()),F3() } : for s being State of (1GateCircuit (<*F1(),F2()*>,F5())) for a1, a2 being Element of F3() st a1 = s . F1() & a2 = s . F2() holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) = F4(a1,a2) provided A1: for g being Function of (2 -tuples_on F3()),F3() holds ( g = F5() iff for a1, a2 being Element of F3() holds g . <*a1,a2*> = F4(a1,a2) ) proof set S = 1GateCircStr (<*F1(),F2()*>,F5()); let s be State of (1GateCircuit (<*F1(),F2()*>,F5())); ::_thesis: for a1, a2 being Element of F3() st a1 = s . F1() & a2 = s . F2() holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) = F4(a1,a2) dom s = the carrier of (1GateCircStr (<*F1(),F2()*>,F5())) by CIRCUIT1:3 .= (rng <*F1(),F2()*>) \/ {[<*F1(),F2()*>,F5()]} by CIRCCOMB:def_6 .= {F1(),F2()} \/ {[<*F1(),F2()*>,F5()]} by FINSEQ_2:127 .= {F1(),F2(),[<*F1(),F2()*>,F5()]} by ENUMSET1:3 ; then A2: ( F1() in dom s & F2() in dom s ) by ENUMSET1:def_1; let a1, a2 be Element of F3(); ::_thesis: ( a1 = s . F1() & a2 = s . F2() implies (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) = F4(a1,a2) ) assume ( a1 = s . F1() & a2 = s . F2() ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) = F4(a1,a2) then A3: s * <*F1(),F2()*> = <*a1,a2*> by A2, FINSEQ_2:125; thus (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) = (Following s) . (Output (1GateCircStr (<*F1(),F2()*>,F5()))) by Th20 .= (Following s) . [<*F1(),F2()*>,F5()] by Th15 .= F5() . (s * <*F1(),F2()*>) by CIRCCOMB:56 .= F4(a1,a2) by A1, A3 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 11 OneGate3Result{ F1() -> set , F2() -> set , F3() -> set , F4() -> non empty finite set , F5( set , set , set ) -> Element of F4(), F6() -> Function of (3 -tuples_on F4()),F4() } : for s being State of (1GateCircuit (<*F1(),F2(),F3()*>,F6())) for a1, a2, a3 being Element of F4() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) = F5(a1,a2,a3) provided A1: for g being Function of (3 -tuples_on F4()),F4() holds ( g = F6() iff for a1, a2, a3 being Element of F4() holds g . <*a1,a2,a3*> = F5(a1,a2,a3) ) proof set S = 1GateCircStr (<*F1(),F2(),F3()*>,F6()); let s be State of (1GateCircuit (<*F1(),F2(),F3()*>,F6())); ::_thesis: for a1, a2, a3 being Element of F4() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) = F5(a1,a2,a3) A2: dom s = the carrier of (1GateCircStr (<*F1(),F2(),F3()*>,F6())) by CIRCUIT1:3 .= (rng <*F1(),F2(),F3()*>) \/ {[<*F1(),F2(),F3()*>,F6()]} by CIRCCOMB:def_6 .= {F1(),F2(),F3()} \/ {[<*F1(),F2(),F3()*>,F6()]} by FINSEQ_2:128 .= {F1(),F2(),F3(),[<*F1(),F2(),F3()*>,F6()]} by ENUMSET1:6 ; then A3: ( F1() in dom s & F2() in dom s ) by ENUMSET1:def_2; A4: F3() in dom s by A2, ENUMSET1:def_2; let a1, a2, a3 be Element of F4(); ::_thesis: ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) = F5(a1,a2,a3) ) assume ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) = F5(a1,a2,a3) then A5: s * <*F1(),F2(),F3()*> = <*a1,a2,a3*> by A3, A4, FINSEQ_2:126; thus (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) = (Following s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F6()))) by Th20 .= (Following s) . [<*F1(),F2(),F3()*>,F6()] by Th15 .= F6() . (s * <*F1(),F2(),F3()*>) by CIRCCOMB:56 .= F5(a1,a2,a3) by A1, A5 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 12 OneGate4Result{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> non empty finite set , F6( set , set , set , set ) -> Element of F5(), F7() -> Function of (4 -tuples_on F5()),F5() } : for s being State of (1GateCircuit (<*F1(),F2(),F3(),F4()*>,F7())) for a1, a2, a3, a4 being Element of F5() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) = F6(a1,a2,a3,a4) provided A1: for g being Function of (4 -tuples_on F5()),F5() holds ( g = F7() iff for a1, a2, a3, a4 being Element of F5() holds g . <*a1,a2,a3,a4*> = F6(a1,a2,a3,a4) ) proof set S = 1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()); let s be State of (1GateCircuit (<*F1(),F2(),F3(),F4()*>,F7())); ::_thesis: for a1, a2, a3, a4 being Element of F5() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) = F6(a1,a2,a3,a4) A2: dom s = the carrier of (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7())) by CIRCUIT1:3 .= (rng <*F1(),F2(),F3(),F4()*>) \/ {[<*F1(),F2(),F3(),F4()*>,F7()]} by CIRCCOMB:def_6 .= {F1(),F2(),F3(),F4()} \/ {[<*F1(),F2(),F3(),F4()*>,F7()]} by Th13 .= {[<*F1(),F2(),F3(),F4()*>,F7()],F1(),F2(),F3(),F4()} by ENUMSET1:7 ; then A3: ( F1() in dom s & F2() in dom s ) by ENUMSET1:def_3; A4: ( F3() in dom s & F4() in dom s ) by A2, ENUMSET1:def_3; let a1, a2, a3, a4 be Element of F5(); ::_thesis: ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) = F6(a1,a2,a3,a4) ) assume ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) = F6(a1,a2,a3,a4) then A5: s * <*F1(),F2(),F3(),F4()*> = <*a1,a2,a3,a4*> by A3, A4, Th33; thus (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) = (Following s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7()))) by Th20 .= (Following s) . [<*F1(),F2(),F3(),F4()*>,F7()] by Th15 .= F7() . (s * <*F1(),F2(),F3(),F4()*>) by CIRCCOMB:56 .= F6(a1,a2,a3,a4) by A1, A5 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 13 OneGate5Result{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> set , F6() -> non empty finite set , F7( set , set , set , set , set ) -> Element of F6(), F8() -> Function of (5 -tuples_on F6()),F6() } : for s being State of (1GateCircuit (<*F1(),F2(),F3(),F4(),F5()*>,F8())) for a1, a2, a3, a4, a5 being Element of F6() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() & a5 = s . F5() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) = F7(a1,a2,a3,a4,a5) provided A1: for g being Function of (5 -tuples_on F6()),F6() holds ( g = F8() iff for a1, a2, a3, a4, a5 being Element of F6() holds g . <*a1,a2,a3,a4,a5*> = F7(a1,a2,a3,a4,a5) ) proof set S = 1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()); let s be State of (1GateCircuit (<*F1(),F2(),F3(),F4(),F5()*>,F8())); ::_thesis: for a1, a2, a3, a4, a5 being Element of F6() st a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() & a5 = s . F5() holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) = F7(a1,a2,a3,a4,a5) A2: dom s = the carrier of (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8())) by CIRCUIT1:3 .= (rng <*F1(),F2(),F3(),F4(),F5()*>) \/ {[<*F1(),F2(),F3(),F4(),F5()*>,F8()]} by CIRCCOMB:def_6 .= {F1(),F2(),F3(),F4(),F5()} \/ {[<*F1(),F2(),F3(),F4(),F5()*>,F8()]} by Th14 .= {F1(),F2(),F3(),F4(),F5(),[<*F1(),F2(),F3(),F4(),F5()*>,F8()]} by ENUMSET1:15 ; then A3: ( F1() in dom s & F2() in dom s ) by ENUMSET1:def_4; A4: F5() in dom s by A2, ENUMSET1:def_4; A5: ( F3() in dom s & F4() in dom s ) by A2, ENUMSET1:def_4; let a1, a2, a3, a4, a5 be Element of F6(); ::_thesis: ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() & a5 = s . F5() implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) = F7(a1,a2,a3,a4,a5) ) assume ( a1 = s . F1() & a2 = s . F2() & a3 = s . F3() & a4 = s . F4() & a5 = s . F5() ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) = F7(a1,a2,a3,a4,a5) then A6: s * <*F1(),F2(),F3(),F4(),F5()*> = <*a1,a2,a3,a4,a5*> by A3, A5, A4, Th34; thus (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) = (Following s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F8()))) by Th20 .= (Following s) . [<*F1(),F2(),F3(),F4(),F5()*>,F8()] by Th15 .= F8() . (s * <*F1(),F2(),F3(),F4(),F5()*>) by CIRCCOMB:56 .= F7(a1,a2,a3,a4,a5) by A1, A6 ; ::_thesis: verum end; begin theorem Th35: :: CIRCCMB3:35 for n being Element of NAT for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S proof let n be Element of NAT ; ::_thesis: for X being non empty finite set for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S let X be non empty finite set ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n for S being Signature of X st rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S let p be FinSeqLen of n; ::_thesis: for S being Signature of X st rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S let S be Signature of X; ::_thesis: ( rng p c= the carrier of S & not Output (1GateCircStr (p,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S ) assume that A1: rng p c= the carrier of S and A2: not Output (1GateCircStr (p,f)) in InputVertices S ; ::_thesis: InputVertices (S +* (1GateCircStr (p,f))) = InputVertices S A3: the carrier of S = (InputVertices S) \/ (InnerVertices S) by XBOOLE_1:45; thus InputVertices (S +* (1GateCircStr (p,f))) = ((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ ((InputVertices (1GateCircStr (p,f))) \ (InnerVertices S)) by CIRCCMB2:5, CIRCCOMB:47 .= ((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ ((rng p) \ (InnerVertices S)) by CIRCCOMB:42 .= ((InputVertices S) \ {(Output (1GateCircStr (p,f)))}) \/ ((rng p) \ (InnerVertices S)) by Th16 .= (InputVertices S) \/ ((rng p) \ (InnerVertices S)) by A2, ZFMISC_1:57 .= InputVertices S by A1, A3, XBOOLE_1:12, XBOOLE_1:43 ; ::_thesis: verum end; theorem Th36: :: CIRCCMB3:36 for X1, X2 being set for X being non empty finite set for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p = X1 \/ X2 & X1 c= the carrier of S & X2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ X2 proof let x1, x2 be set ; ::_thesis: for X being non empty finite set for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 let X be non empty finite set ; ::_thesis: for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 let n be Element of NAT ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n for S being Signature of X st rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n for S being Signature of X st rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 let p be FinSeqLen of n; ::_thesis: for S being Signature of X st rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 let S be Signature of X; ::_thesis: ( rng p = x1 \/ x2 & x1 c= the carrier of S & x2 misses InnerVertices S & not Output (1GateCircStr (p,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 ) assume that A1: rng p = x1 \/ x2 and A2: x1 c= the carrier of S and A3: x2 misses InnerVertices S and A4: not Output (1GateCircStr (p,f)) in InputVertices S ; ::_thesis: InputVertices (S +* (1GateCircStr (p,f))) = (InputVertices S) \/ x2 A5: the carrier of S = (InputVertices S) \/ (InnerVertices S) by XBOOLE_1:45; thus InputVertices (S +* (1GateCircStr (p,f))) = ((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ ((InputVertices (1GateCircStr (p,f))) \ (InnerVertices S)) by CIRCCMB2:5, CIRCCOMB:47 .= ((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ ((rng p) \ (InnerVertices S)) by CIRCCOMB:42 .= ((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ ((x1 \ (InnerVertices S)) \/ x2) by A1, A3, XBOOLE_1:87 .= (((InputVertices S) \ (InnerVertices (1GateCircStr (p,f)))) \/ (x1 \ (InnerVertices S))) \/ x2 by XBOOLE_1:4 .= (((InputVertices S) \ {(Output (1GateCircStr (p,f)))}) \/ (x1 \ (InnerVertices S))) \/ x2 by Th16 .= ((InputVertices S) \/ (x1 \ (InnerVertices S))) \/ x2 by A4, ZFMISC_1:57 .= (InputVertices S) \/ x2 by A2, A5, XBOOLE_1:12, XBOOLE_1:43 ; ::_thesis: verum end; theorem Th37: :: CIRCCMB3:37 for x1 being set for X being non empty finite set for f being Function of (1 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not Output (1GateCircStr (<*x1*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S proof let x1 be set ; ::_thesis: for X being non empty finite set for f being Function of (1 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not Output (1GateCircStr (<*x1*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S let X be non empty finite set ; ::_thesis: for f being Function of (1 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not Output (1GateCircStr (<*x1*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S set p = <*x1*>; let f be Function of (1 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & not Output (1GateCircStr (<*x1*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S let S be Signature of X; ::_thesis: ( x1 in the carrier of S & not Output (1GateCircStr (<*x1*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S ) assume x1 in the carrier of S ; ::_thesis: ( Output (1GateCircStr (<*x1*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S ) then {x1} c= the carrier of S by ZFMISC_1:31; then rng <*x1*> c= the carrier of S by FINSEQ_1:38; hence ( Output (1GateCircStr (<*x1*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1*>,f))) = InputVertices S ) by Th35; ::_thesis: verum end; theorem Th38: :: CIRCCMB3:38 for x1, x2 being set for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} proof let x1, x2 be set ; ::_thesis: for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} let X be non empty finite set ; ::_thesis: for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} set p = <*x1,x2*>; let f be Function of (2 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} let S be Signature of X; ::_thesis: ( x1 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} ) assume that A1: x1 in the carrier of S and A2: not x2 in InnerVertices S ; ::_thesis: ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} ) A3: rng <*x1,x2*> = {x1,x2} by FINSEQ_2:127 .= {x1} \/ {x2} by ENUMSET1:1 ; {x1} c= the carrier of S by A1, ZFMISC_1:31; hence ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x2} ) by A2, A3, Th36, ZFMISC_1:50; ::_thesis: verum end; theorem Th39: :: CIRCCMB3:39 for x1, x2 being set for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} proof let x1, x2 be set ; ::_thesis: for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} let X be non empty finite set ; ::_thesis: for f being Function of (2 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} set p = <*x1,x2*>; let f be Function of (2 -tuples_on X),X; ::_thesis: for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} let S be Signature of X; ::_thesis: ( x2 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} ) assume that A1: x2 in the carrier of S and A2: not x1 in InnerVertices S ; ::_thesis: ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} ) A3: rng <*x1,x2*> = {x1,x2} by FINSEQ_2:127 .= {x1} \/ {x2} by ENUMSET1:1 ; {x2} c= the carrier of S by A1, ZFMISC_1:31; hence ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = (InputVertices S) \/ {x1} ) by A2, A3, Th36, ZFMISC_1:50; ::_thesis: verum end; theorem Th40: :: CIRCCMB3:40 for x1, x2 being set for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S proof let x1, x2 be set ; ::_thesis: for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S let X be non empty finite set ; ::_thesis: for f being Function of (2 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S let f be Function of (2 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S A1: rng <*x1,x2*> = {x1,x2} by FINSEQ_2:127; let S be Signature of X; ::_thesis: ( x1 in the carrier of S & x2 in the carrier of S & not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S ) assume ( x1 in the carrier of S & x2 in the carrier of S ) ; ::_thesis: ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S ) then rng <*x1,x2*> c= the carrier of S by A1, ZFMISC_1:32; hence ( Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S ) by Th35; ::_thesis: verum end; theorem Th41: :: CIRCCMB3:41 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} let S be Signature of X; ::_thesis: ( x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} ) assume that A1: x1 in the carrier of S and A2: ( not x2 in InnerVertices S & not x3 in InnerVertices S ) ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x1} \/ {x2,x3} by ENUMSET1:2 ; {x1} c= the carrier of S by A1, ZFMISC_1:31; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2,x3} ) by A2, A3, Th36, ZFMISC_1:51; ::_thesis: verum end; theorem Th42: :: CIRCCMB3:42 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} let S be Signature of X; ::_thesis: ( x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} ) assume that A1: x2 in the carrier of S and A2: ( not x1 in InnerVertices S & not x3 in InnerVertices S ) ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x2,x1,x3} by ENUMSET1:58 .= {x2} \/ {x1,x3} by ENUMSET1:2 ; {x2} c= the carrier of S by A1, ZFMISC_1:31; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x3} ) by A2, A3, Th36, ZFMISC_1:51; ::_thesis: verum end; theorem Th43: :: CIRCCMB3:43 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x3 in the carrier of S & not x1 in InnerVertices S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x3 in the carrier of S & not x1 in InnerVertices S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x3 in the carrier of S & not x1 in InnerVertices S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x3 in the carrier of S & not x1 in InnerVertices S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} let S be Signature of X; ::_thesis: ( x3 in the carrier of S & not x1 in InnerVertices S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} ) assume that A1: x3 in the carrier of S and A2: ( not x1 in InnerVertices S & not x2 in InnerVertices S ) ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x1,x2} \/ {x3} by ENUMSET1:3 ; {x3} c= the carrier of S by A1, ZFMISC_1:31; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1,x2} ) by A2, A3, Th36, ZFMISC_1:51; ::_thesis: verum end; theorem Th44: :: CIRCCMB3:44 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} let S be Signature of X; ::_thesis: ( x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} ) assume that A1: ( x1 in the carrier of S & x2 in the carrier of S ) and A2: not x3 in InnerVertices S ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x1,x2} \/ {x3} by ENUMSET1:3 ; {x1,x2} c= the carrier of S by A1, ZFMISC_1:32; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x3} ) by A2, A3, Th36, ZFMISC_1:50; ::_thesis: verum end; theorem Th45: :: CIRCCMB3:45 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x3 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x3 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x3 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & x3 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} let S be Signature of X; ::_thesis: ( x1 in the carrier of S & x3 in the carrier of S & not x2 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} ) assume that A1: ( x1 in the carrier of S & x3 in the carrier of S ) and A2: not x2 in InnerVertices S ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x2,x1,x3} by ENUMSET1:58 .= {x2} \/ {x1,x3} by ENUMSET1:2 ; {x1,x3} c= the carrier of S by A1, ZFMISC_1:32; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x2} ) by A2, A3, Th36, ZFMISC_1:50; ::_thesis: verum end; theorem Th46: :: CIRCCMB3:46 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & x3 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & x3 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x2 in the carrier of S & x3 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} set p = <*x1,x2,x3*>; let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x2 in the carrier of S & x3 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} let S be Signature of X; ::_thesis: ( x2 in the carrier of S & x3 in the carrier of S & not x1 in InnerVertices S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} ) assume that A1: ( x2 in the carrier of S & x3 in the carrier of S ) and A2: not x1 in InnerVertices S ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} ) A3: rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x1} \/ {x2,x3} by ENUMSET1:2 ; {x2,x3} c= the carrier of S by A1, ZFMISC_1:32; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = (InputVertices S) \/ {x1} ) by A2, A3, Th36, ZFMISC_1:50; ::_thesis: verum end; theorem Th47: :: CIRCCMB3:47 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S let f be Function of (3 -tuples_on X),X; ::_thesis: for S being Signature of X st x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S holds InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S let S be Signature of X; ::_thesis: ( x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S & not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S implies InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S ) assume ( x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S ) ; ::_thesis: ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S ) then A1: ( {x1,x2} c= the carrier of S & {x3} c= the carrier of S ) by ZFMISC_1:31, ZFMISC_1:32; rng <*x1,x2,x3*> = {x1,x2,x3} by FINSEQ_2:128 .= {x1,x2} \/ {x3} by ENUMSET1:3 ; hence ( Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S or InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S ) by A1, Th35, XBOOLE_1:8; ::_thesis: verum end; begin theorem Th48: :: CIRCCMB3:48 for X being non empty finite set for S being finite Signature of X for A being Circuit of X,S for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) proof let X be non empty finite set ; ::_thesis: for S being finite Signature of X for A being Circuit of X,S for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let S be finite Signature of X; ::_thesis: for A being Circuit of X,S for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let A be Circuit of X,S; ::_thesis: for n being Element of NAT for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let n be Element of NAT ; ::_thesis: for f being Function of (n -tuples_on X),X for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let f be Function of (n -tuples_on X),X; ::_thesis: for p being FinSeqLen of n st not Output (1GateCircStr (p,f)) in InputVertices S holds for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let p be FinSeqLen of n; ::_thesis: ( not Output (1GateCircStr (p,f)) in InputVertices S implies for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) ) assume A1: not Output (1GateCircStr (p,f)) in InputVertices S ; ::_thesis: for s being State of (A +* (1GateCircuit (p,f))) for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) InnerVertices (1GateCircStr (p,f)) = {(Output (1GateCircStr (p,f)))} by Th16; then A2: InputVertices S misses InnerVertices (1GateCircStr (p,f)) by A1, ZFMISC_1:50; let s be State of (A +* (1GateCircuit (p,f))); ::_thesis: for s9 being State of A st s9 = s | the carrier of S holds stabilization-time s <= 1 + (stabilization-time s9) let s9 be State of A; ::_thesis: ( s9 = s | the carrier of S implies stabilization-time s <= 1 + (stabilization-time s9) ) assume A3: s9 = s | the carrier of S ; ::_thesis: stabilization-time s <= 1 + (stabilization-time s9) A tolerates 1GateCircuit (p,f) by Th27; then the Sorts of A tolerates the Sorts of (1GateCircuit (p,f)) by CIRCCOMB:def_3; then reconsider s1 = (Following (s,(stabilization-time s9))) | the carrier of (1GateCircStr (p,f)) as State of (1GateCircuit (p,f)) by CIRCCOMB:26; A4: stabilization-time s1 <= 1 by Th21; ( s9 is stabilizing & s1 is stabilizing ) by Def2; then stabilization-time s = (stabilization-time s9) + (stabilization-time s1) by A3, A2, Th10, Th27; hence stabilization-time s <= 1 + (stabilization-time s9) by A4, XREAL_1:6; ::_thesis: verum end; scheme :: CIRCCMB3:sch 14 Comb1CircResult{ F1() -> set , F2() -> non empty finite set , F3( set ) -> Element of F2(), F4() -> finite Signature of F2(), F5() -> Circuit of F2(),F4(), F6() -> Function of (1 -tuples_on F2()),F2() } : for s being State of (F5() +* (1GateCircuit (<*F1()*>,F6()))) for s9 being State of F5() st s9 = s | the carrier of F4() holds for a1 being Element of F2() st ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) holds (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) provided A1: for g being Function of (1 -tuples_on F2()),F2() holds ( g = F6() iff for a1 being Element of F2() holds g . <*a1*> = F3(a1) ) and A2: not Output (1GateCircStr (<*F1()*>,F6())) in InputVertices F4() proof set S = 1GateCircStr (<*F1()*>,F6()); let s be State of (F5() +* (1GateCircuit (<*F1()*>,F6()))); ::_thesis: for s9 being State of F5() st s9 = s | the carrier of F4() holds for a1 being Element of F2() st ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) holds (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) let s9 be State of F5(); ::_thesis: ( s9 = s | the carrier of F4() implies for a1 being Element of F2() st ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) holds (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) ) assume A3: s9 = s | the carrier of F4() ; ::_thesis: for a1 being Element of F2() st ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) holds (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) rng <*F1()*> = {F1()} by FINSEQ_1:38; then A4: ( InputVertices (1GateCircStr (<*F1()*>,F6())) = rng <*F1()*> & F1() in rng <*F1()*> ) by CIRCCOMB:42, TARSKI:def_1; then A5: ( F1() in InnerVertices F4() or F1() in (InputVertices (1GateCircStr (<*F1()*>,F6()))) \ (InnerVertices F4()) ) by XBOOLE_0:def_5; A6: s9 is stabilizing by Def2; InnerVertices (1GateCircStr (<*F1()*>,F6())) = {(Output (1GateCircStr (<*F1()*>,F6())))} by Th16; then A7: InputVertices F4() misses InnerVertices (1GateCircStr (<*F1()*>,F6())) by A2, ZFMISC_1:50; then A8: (Following (s,(stabilization-time s9))) | the carrier of F4() = Following (s9,(stabilization-time s9)) by A3, Th27, CIRCCMB2:13 .= Result s9 by A6, Th2 ; F4() tolerates 1GateCircStr (<*F1()*>,F6()) by CIRCCOMB:47; then InputVertices (F4() +* (1GateCircStr (<*F1()*>,F6()))) = (InputVertices F4()) \/ ((InputVertices (1GateCircStr (<*F1()*>,F6()))) \ (InnerVertices F4())) by A7, FACIRC_1:4; then A9: ( F1() in InnerVertices F4() or F1() in InputVertices (F4() +* (1GateCircStr (<*F1()*>,F6()))) ) by A5, XBOOLE_0:def_3; let a1 be Element of F2(); ::_thesis: ( ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) implies (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) ) assume ( ( F1() in InnerVertices F4() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F4() implies a1 = s . F1() ) ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = F3(a1) then A10: a1 = (Following (s,(stabilization-time s9))) . F1() by A9, A8, Th1, FUNCT_1:49; A11: s is stabilizing by Def2; the carrier' of (1GateCircStr (<*F1()*>,F6())) = {[<*F1()*>,F6()]} by CIRCCOMB:def_6; then ( [<*F1()*>,F6()] in {[<*F1()*>,F6()]} & the carrier' of (F4() +* (1GateCircStr (<*F1()*>,F6()))) = the carrier' of F4() \/ {[<*F1()*>,F6()]} ) by CIRCCOMB:def_2, TARSKI:def_1; then reconsider g = [<*F1()*>,F6()] as Gate of (F4() +* (1GateCircStr (<*F1()*>,F6()))) by XBOOLE_0:def_3; A12: the_result_sort_of g = the ResultSort of (F4() +* (1GateCircStr (<*F1()*>,F6()))) . g by MSUALG_1:def_2 .= g by CIRCCOMB:44 ; A13: g `2 = F6() by MCART_1:7; the carrier of (F4() +* (1GateCircStr (<*F1()*>,F6()))) = the carrier of F4() \/ the carrier of (1GateCircStr (<*F1()*>,F6())) by CIRCCOMB:def_2; then A14: F1() in the carrier of (F4() +* (1GateCircStr (<*F1()*>,F6()))) by A4, XBOOLE_0:def_3; A15: [<*F1()*>,F6()] = Output (1GateCircStr (<*F1()*>,F6())) by Th15; g = [( the Arity of (F4() +* (1GateCircStr (<*F1()*>,F6()))) . g),(g `2)] by CIRCCOMB:def_8; then A16: <*F1()*> = the Arity of (F4() +* (1GateCircStr (<*F1()*>,F6()))) . g by XTUPLE_0:1 .= the_arity_of g by MSUALG_1:def_1 ; dom (Following (s,(stabilization-time s9))) = the carrier of (F4() +* (1GateCircStr (<*F1()*>,F6()))) by CIRCUIT1:3; then A17: (Following (s,(stabilization-time s9))) * <*F1()*> = <*a1*> by A14, A10, FINSEQ_2:34; stabilization-time s <= 1 + (stabilization-time s9) by A2, A3, Th48; hence (Result s) . (Output (1GateCircStr (<*F1()*>,F6()))) = (Following (s,(1 + (stabilization-time s9)))) . (Output (1GateCircStr (<*F1()*>,F6()))) by A11, Th5 .= (Following (Following (s,(stabilization-time s9)))) . g by A15, FACIRC_1:12 .= F6() . ((Following (s,(stabilization-time s9))) * <*F1()*>) by A12, A16, A13, FACIRC_1:34 .= F3(a1) by A1, A17 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 15 Comb2CircResult{ F1() -> set , F2() -> set , F3() -> non empty finite set , F4( set , set ) -> Element of F3(), F5() -> finite Signature of F3(), F6() -> Circuit of F3(),F5(), F7() -> Function of (2 -tuples_on F3()),F3() } : for s being State of (F6() +* (1GateCircuit (<*F1(),F2()*>,F7()))) for s9 being State of F6() st s9 = s | the carrier of F5() holds for a1, a2 being Element of F3() st ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) & ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) provided A1: for g being Function of (2 -tuples_on F3()),F3() holds ( g = F7() iff for a1, a2 being Element of F3() holds g . <*a1,a2*> = F4(a1,a2) ) and A2: not Output (1GateCircStr (<*F1(),F2()*>,F7())) in InputVertices F5() proof set S = 1GateCircStr (<*F1(),F2()*>,F7()); let s be State of (F6() +* (1GateCircuit (<*F1(),F2()*>,F7()))); ::_thesis: for s9 being State of F6() st s9 = s | the carrier of F5() holds for a1, a2 being Element of F3() st ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) & ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) let s9 be State of F6(); ::_thesis: ( s9 = s | the carrier of F5() implies for a1, a2 being Element of F3() st ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) & ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) ) assume A3: s9 = s | the carrier of F5() ; ::_thesis: for a1, a2 being Element of F3() st ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) & ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) A4: s9 is stabilizing by Def2; InnerVertices (1GateCircStr (<*F1(),F2()*>,F7())) = {(Output (1GateCircStr (<*F1(),F2()*>,F7())))} by Th16; then A5: InputVertices F5() misses InnerVertices (1GateCircStr (<*F1(),F2()*>,F7())) by A2, ZFMISC_1:50; then A6: (Following (s,(stabilization-time s9))) | the carrier of F5() = Following (s9,(stabilization-time s9)) by A3, Th27, CIRCCMB2:13 .= Result s9 by A4, Th2 ; the carrier' of (1GateCircStr (<*F1(),F2()*>,F7())) = {[<*F1(),F2()*>,F7()]} by CIRCCOMB:def_6; then ( [<*F1(),F2()*>,F7()] in {[<*F1(),F2()*>,F7()]} & the carrier' of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) = the carrier' of F5() \/ {[<*F1(),F2()*>,F7()]} ) by CIRCCOMB:def_2, TARSKI:def_1; then reconsider g = [<*F1(),F2()*>,F7()] as Gate of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) by XBOOLE_0:def_3; let a1, a2 be Element of F3(); ::_thesis: ( ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) & ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) implies (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) ) assume that A7: ( ( F1() in InnerVertices F5() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F5() implies a1 = s . F1() ) ) and A8: ( ( F2() in InnerVertices F5() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F5() implies a2 = s . F2() ) ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = F4(a1,a2) A9: InputVertices (1GateCircStr (<*F1(),F2()*>,F7())) = rng <*F1(),F2()*> by CIRCCOMB:42; F5() tolerates 1GateCircStr (<*F1(),F2()*>,F7()) by CIRCCOMB:47; then A10: InputVertices (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) = (InputVertices F5()) \/ ((InputVertices (1GateCircStr (<*F1(),F2()*>,F7()))) \ (InnerVertices F5())) by A5, FACIRC_1:4; A11: rng <*F1(),F2()*> = {F1(),F2()} by FINSEQ_2:127; then A12: F2() in rng <*F1(),F2()*> by TARSKI:def_2; then ( F2() in InnerVertices F5() or F2() in (InputVertices (1GateCircStr (<*F1(),F2()*>,F7()))) \ (InnerVertices F5()) ) by A9, XBOOLE_0:def_5; then ( F2() in InnerVertices F5() or F2() in InputVertices (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) ) by A10, XBOOLE_0:def_3; then A13: a2 = (Following (s,(stabilization-time s9))) . F2() by A8, A6, Th1, FUNCT_1:49; A14: F1() in rng <*F1(),F2()*> by A11, TARSKI:def_2; then ( F1() in InnerVertices F5() or F1() in (InputVertices (1GateCircStr (<*F1(),F2()*>,F7()))) \ (InnerVertices F5()) ) by A9, XBOOLE_0:def_5; then ( F1() in InnerVertices F5() or F1() in InputVertices (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) ) by A10, XBOOLE_0:def_3; then A15: a1 = (Following (s,(stabilization-time s9))) . F1() by A7, A6, Th1, FUNCT_1:49; g = [( the Arity of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) . g),(g `2)] by CIRCCOMB:def_8; then A16: <*F1(),F2()*> = the Arity of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) . g by XTUPLE_0:1 .= the_arity_of g by MSUALG_1:def_1 ; A17: g `2 = F7() by MCART_1:7; A18: the carrier of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) = the carrier of F5() \/ the carrier of (1GateCircStr (<*F1(),F2()*>,F7())) by CIRCCOMB:def_2; then A19: F2() in the carrier of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) by A9, A12, XBOOLE_0:def_3; A20: [<*F1(),F2()*>,F7()] = Output (1GateCircStr (<*F1(),F2()*>,F7())) by Th15; A21: s is stabilizing by Def2; A22: dom (Following (s,(stabilization-time s9))) = the carrier of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) by CIRCUIT1:3; F1() in the carrier of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) by A9, A14, A18, XBOOLE_0:def_3; then A23: (Following (s,(stabilization-time s9))) * <*F1(),F2()*> = <*a1,a2*> by A19, A15, A13, A22, FINSEQ_2:125; A24: the_result_sort_of g = the ResultSort of (F5() +* (1GateCircStr (<*F1(),F2()*>,F7()))) . g by MSUALG_1:def_2 .= g by CIRCCOMB:44 ; stabilization-time s <= 1 + (stabilization-time s9) by A2, A3, Th48; hence (Result s) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) = (Following (s,(1 + (stabilization-time s9)))) . (Output (1GateCircStr (<*F1(),F2()*>,F7()))) by A21, Th5 .= (Following (Following (s,(stabilization-time s9)))) . g by A20, FACIRC_1:12 .= F7() . ((Following (s,(stabilization-time s9))) * <*F1(),F2()*>) by A24, A16, A17, FACIRC_1:34 .= F4(a1,a2) by A1, A23 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 16 Comb3CircResult{ F1() -> set , F2() -> set , F3() -> set , F4() -> non empty finite set , F5( set , set , set ) -> Element of F4(), F6() -> finite Signature of F4(), F7() -> Circuit of F4(),F6(), F8() -> Function of (3 -tuples_on F4()),F4() } : for s being State of (F7() +* (1GateCircuit (<*F1(),F2(),F3()*>,F8()))) for s9 being State of F7() st s9 = s | the carrier of F6() holds for a1, a2, a3 being Element of F4() st ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) & ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) & ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) provided A1: for g being Function of (3 -tuples_on F4()),F4() holds ( g = F8() iff for a1, a2, a3 being Element of F4() holds g . <*a1,a2,a3*> = F5(a1,a2,a3) ) and A2: not Output (1GateCircStr (<*F1(),F2(),F3()*>,F8())) in InputVertices F6() proof set S = 1GateCircStr (<*F1(),F2(),F3()*>,F8()); let s be State of (F7() +* (1GateCircuit (<*F1(),F2(),F3()*>,F8()))); ::_thesis: for s9 being State of F7() st s9 = s | the carrier of F6() holds for a1, a2, a3 being Element of F4() st ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) & ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) & ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) let s9 be State of F7(); ::_thesis: ( s9 = s | the carrier of F6() implies for a1, a2, a3 being Element of F4() st ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) & ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) & ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) ) assume A3: s9 = s | the carrier of F6() ; ::_thesis: for a1, a2, a3 being Element of F4() st ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) & ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) & ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) A4: s9 is stabilizing by Def2; InnerVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8())) = {(Output (1GateCircStr (<*F1(),F2(),F3()*>,F8())))} by Th16; then A5: InputVertices F6() misses InnerVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8())) by A2, ZFMISC_1:50; then A6: (Following (s,(stabilization-time s9))) | the carrier of F6() = Following (s9,(stabilization-time s9)) by A3, Th27, CIRCCMB2:13 .= Result s9 by A4, Th2 ; F6() tolerates 1GateCircStr (<*F1(),F2(),F3()*>,F8()) by CIRCCOMB:47; then A7: InputVertices (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = (InputVertices F6()) \/ ((InputVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) \ (InnerVertices F6())) by A5, FACIRC_1:4; the carrier' of (1GateCircStr (<*F1(),F2(),F3()*>,F8())) = {[<*F1(),F2(),F3()*>,F8()]} by CIRCCOMB:def_6; then ( [<*F1(),F2(),F3()*>,F8()] in {[<*F1(),F2(),F3()*>,F8()]} & the carrier' of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = the carrier' of F6() \/ {[<*F1(),F2(),F3()*>,F8()]} ) by CIRCCOMB:def_2, TARSKI:def_1; then reconsider g = [<*F1(),F2(),F3()*>,F8()] as Gate of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by XBOOLE_0:def_3; let a1, a2, a3 be Element of F4(); ::_thesis: ( ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) & ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) & ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) ) assume that A8: ( ( F1() in InnerVertices F6() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F6() implies a1 = s . F1() ) ) and A9: ( ( F2() in InnerVertices F6() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F6() implies a2 = s . F2() ) ) and A10: ( ( F3() in InnerVertices F6() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F6() implies a3 = s . F3() ) ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = F5(a1,a2,a3) A11: InputVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8())) = rng <*F1(),F2(),F3()*> by CIRCCOMB:42; g = [( the Arity of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) . g),(g `2)] by CIRCCOMB:def_8; then A12: <*F1(),F2(),F3()*> = the Arity of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) . g by XTUPLE_0:1 .= the_arity_of g by MSUALG_1:def_1 ; A13: g `2 = F8() by MCART_1:7; A14: s is stabilizing by Def2; A15: the carrier of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = the carrier of F6() \/ the carrier of (1GateCircStr (<*F1(),F2(),F3()*>,F8())) by CIRCCOMB:def_2; A16: rng <*F1(),F2(),F3()*> = {F1(),F2(),F3()} by FINSEQ_2:128; then A17: F3() in rng <*F1(),F2(),F3()*> by ENUMSET1:def_1; then A18: F3() in the carrier of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by A11, A15, XBOOLE_0:def_3; ( F3() in InnerVertices F6() or F3() in (InputVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) \ (InnerVertices F6()) ) by A11, A17, XBOOLE_0:def_5; then ( F3() in InnerVertices F6() or F3() in InputVertices (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) ) by A7, XBOOLE_0:def_3; then A19: a3 = (Following (s,(stabilization-time s9))) . F3() by A10, A6, Th1, FUNCT_1:49; A20: [<*F1(),F2(),F3()*>,F8()] = Output (1GateCircStr (<*F1(),F2(),F3()*>,F8())) by Th15; A21: dom (Following (s,(stabilization-time s9))) = the carrier of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by CIRCUIT1:3; A22: F1() in rng <*F1(),F2(),F3()*> by A16, ENUMSET1:def_1; then ( F1() in InnerVertices F6() or F1() in (InputVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) \ (InnerVertices F6()) ) by A11, XBOOLE_0:def_5; then ( F1() in InnerVertices F6() or F1() in InputVertices (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) ) by A7, XBOOLE_0:def_3; then A23: a1 = (Following (s,(stabilization-time s9))) . F1() by A8, A6, Th1, FUNCT_1:49; A24: F2() in rng <*F1(),F2(),F3()*> by A16, ENUMSET1:def_1; then A25: F2() in the carrier of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by A11, A15, XBOOLE_0:def_3; ( F2() in InnerVertices F6() or F2() in (InputVertices (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) \ (InnerVertices F6()) ) by A11, A24, XBOOLE_0:def_5; then ( F2() in InnerVertices F6() or F2() in InputVertices (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) ) by A7, XBOOLE_0:def_3; then A26: a2 = (Following (s,(stabilization-time s9))) . F2() by A9, A6, Th1, FUNCT_1:49; F1() in the carrier of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by A11, A22, A15, XBOOLE_0:def_3; then A27: (Following (s,(stabilization-time s9))) * <*F1(),F2(),F3()*> = <*a1,a2,a3*> by A25, A18, A23, A26, A19, A21, FINSEQ_2:126; A28: the_result_sort_of g = the ResultSort of (F6() +* (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) . g by MSUALG_1:def_2 .= g by CIRCCOMB:44 ; stabilization-time s <= 1 + (stabilization-time s9) by A2, A3, Th48; hence (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) = (Following (s,(1 + (stabilization-time s9)))) . (Output (1GateCircStr (<*F1(),F2(),F3()*>,F8()))) by A14, Th5 .= (Following (Following (s,(stabilization-time s9)))) . g by A20, FACIRC_1:12 .= F8() . ((Following (s,(stabilization-time s9))) * <*F1(),F2(),F3()*>) by A28, A12, A13, FACIRC_1:34 .= F5(a1,a2,a3) by A1, A27 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 17 Comb4CircResult{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> non empty finite set , F6( set , set , set , set ) -> Element of F5(), F7() -> finite Signature of F5(), F8() -> Circuit of F5(),F7(), F9() -> Function of (4 -tuples_on F5()),F5() } : for s being State of (F8() +* (1GateCircuit (<*F1(),F2(),F3(),F4()*>,F9()))) for s9 being State of F8() st s9 = s | the carrier of F7() holds for a1, a2, a3, a4 being Element of F5() st ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) & ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) & ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) & ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) provided A1: for g being Function of (4 -tuples_on F5()),F5() holds ( g = F9() iff for a1, a2, a3, a4 being Element of F5() holds g . <*a1,a2,a3,a4*> = F6(a1,a2,a3,a4) ) and A2: not Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) in InputVertices F7() proof set S = 1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()); let s be State of (F8() +* (1GateCircuit (<*F1(),F2(),F3(),F4()*>,F9()))); ::_thesis: for s9 being State of F8() st s9 = s | the carrier of F7() holds for a1, a2, a3, a4 being Element of F5() st ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) & ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) & ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) & ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) let s9 be State of F8(); ::_thesis: ( s9 = s | the carrier of F7() implies for a1, a2, a3, a4 being Element of F5() st ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) & ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) & ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) & ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) ) assume A3: s9 = s | the carrier of F7() ; ::_thesis: for a1, a2, a3, a4 being Element of F5() st ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) & ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) & ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) & ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) A4: s9 is stabilizing by Def2; InnerVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) = {(Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())))} by Th16; then A5: InputVertices F7() misses InnerVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) by A2, ZFMISC_1:50; then A6: (Following (s,(stabilization-time s9))) | the carrier of F7() = Following (s9,(stabilization-time s9)) by A3, Th27, CIRCCMB2:13 .= Result s9 by A4, Th2 ; F7() tolerates 1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()) by CIRCCOMB:47; then A7: InputVertices (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = (InputVertices F7()) \/ ((InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) \ (InnerVertices F7())) by A5, FACIRC_1:4; A8: [<*F1(),F2(),F3(),F4()*>,F9()] = Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) by Th15; A9: s is stabilizing by Def2; A10: the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = the carrier of F7() \/ the carrier of (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) by CIRCCOMB:def_2; the carrier' of (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) = {[<*F1(),F2(),F3(),F4()*>,F9()]} by CIRCCOMB:def_6; then ( [<*F1(),F2(),F3(),F4()*>,F9()] in {[<*F1(),F2(),F3(),F4()*>,F9()]} & the carrier' of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = the carrier' of F7() \/ {[<*F1(),F2(),F3(),F4()*>,F9()]} ) by CIRCCOMB:def_2, TARSKI:def_1; then reconsider g = [<*F1(),F2(),F3(),F4()*>,F9()] as Gate of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by XBOOLE_0:def_3; let a1, a2, a3, a4 be Element of F5(); ::_thesis: ( ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) & ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) & ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) & ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) ) assume that A11: ( ( F1() in InnerVertices F7() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F7() implies a1 = s . F1() ) ) and A12: ( ( F2() in InnerVertices F7() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F7() implies a2 = s . F2() ) ) and A13: ( ( F3() in InnerVertices F7() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F7() implies a3 = s . F3() ) ) and A14: ( ( F4() in InnerVertices F7() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F7() implies a4 = s . F4() ) ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = F6(a1,a2,a3,a4) A15: InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9())) = rng <*F1(),F2(),F3(),F4()*> by CIRCCOMB:42; A16: rng <*F1(),F2(),F3(),F4()*> = {F1(),F2(),F3(),F4()} by Th13; then A17: F3() in rng <*F1(),F2(),F3(),F4()*> by ENUMSET1:def_2; then A18: F3() in the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by A15, A10, XBOOLE_0:def_3; A19: F4() in rng <*F1(),F2(),F3(),F4()*> by A16, ENUMSET1:def_2; then A20: F4() in the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by A15, A10, XBOOLE_0:def_3; A21: F1() in rng <*F1(),F2(),F3(),F4()*> by A16, ENUMSET1:def_2; then A22: F1() in the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by A15, A10, XBOOLE_0:def_3; ( F3() in InnerVertices F7() or F3() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) \ (InnerVertices F7()) ) by A15, A17, XBOOLE_0:def_5; then ( F3() in InnerVertices F7() or F3() in InputVertices (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) ) by A7, XBOOLE_0:def_3; then A23: a3 = (Following (s,(stabilization-time s9))) . F3() by A13, A6, Th1, FUNCT_1:49; g = [( the Arity of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) . g),(g `2)] by CIRCCOMB:def_8; then A24: <*F1(),F2(),F3(),F4()*> = the Arity of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) . g by XTUPLE_0:1 .= the_arity_of g by MSUALG_1:def_1 ; A25: g `2 = F9() by MCART_1:7; ( F1() in InnerVertices F7() or F1() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) \ (InnerVertices F7()) ) by A15, A21, XBOOLE_0:def_5; then ( F1() in InnerVertices F7() or F1() in InputVertices (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) ) by A7, XBOOLE_0:def_3; then A26: a1 = (Following (s,(stabilization-time s9))) . F1() by A11, A6, Th1, FUNCT_1:49; A27: F2() in rng <*F1(),F2(),F3(),F4()*> by A16, ENUMSET1:def_2; then A28: F2() in the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by A15, A10, XBOOLE_0:def_3; ( F4() in InnerVertices F7() or F4() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) \ (InnerVertices F7()) ) by A15, A19, XBOOLE_0:def_5; then ( F4() in InnerVertices F7() or F4() in InputVertices (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) ) by A7, XBOOLE_0:def_3; then A29: a4 = (Following (s,(stabilization-time s9))) . F4() by A14, A6, Th1, FUNCT_1:49; ( F2() in InnerVertices F7() or F2() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) \ (InnerVertices F7()) ) by A15, A27, XBOOLE_0:def_5; then ( F2() in InnerVertices F7() or F2() in InputVertices (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) ) by A7, XBOOLE_0:def_3; then A30: a2 = (Following (s,(stabilization-time s9))) . F2() by A12, A6, Th1, FUNCT_1:49; dom (Following (s,(stabilization-time s9))) = the carrier of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by CIRCUIT1:3; then A31: (Following (s,(stabilization-time s9))) * <*F1(),F2(),F3(),F4()*> = <*a1,a2,a3,a4*> by A22, A28, A18, A20, A26, A30, A23, A29, Th33; A32: the_result_sort_of g = the ResultSort of (F7() +* (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) . g by MSUALG_1:def_2 .= g by CIRCCOMB:44 ; stabilization-time s <= 1 + (stabilization-time s9) by A2, A3, Th48; hence (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) = (Following (s,(1 + (stabilization-time s9)))) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4()*>,F9()))) by A9, Th5 .= (Following (Following (s,(stabilization-time s9)))) . g by A8, FACIRC_1:12 .= F9() . ((Following (s,(stabilization-time s9))) * <*F1(),F2(),F3(),F4()*>) by A32, A24, A25, FACIRC_1:34 .= F6(a1,a2,a3,a4) by A1, A31 ; ::_thesis: verum end; scheme :: CIRCCMB3:sch 18 Comb5CircResult{ F1() -> set , F2() -> set , F3() -> set , F4() -> set , F5() -> set , F6() -> non empty finite set , F7( set , set , set , set , set ) -> Element of F6(), F8() -> finite Signature of F6(), F9() -> Circuit of F6(),F8(), F10() -> Function of (5 -tuples_on F6()),F6() } : for s being State of (F9() +* (1GateCircuit (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) for s9 being State of F9() st s9 = s | the carrier of F8() holds for a1, a2, a3, a4, a5 being Element of F6() st ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) & ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) & ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) & ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) & ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) provided A1: for g being Function of (5 -tuples_on F6()),F6() holds ( g = F10() iff for a1, a2, a3, a4, a5 being Element of F6() holds g . <*a1,a2,a3,a4,a5*> = F7(a1,a2,a3,a4,a5) ) and A2: not Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) in InputVertices F8() proof set S = 1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()); let s be State of (F9() +* (1GateCircuit (<*F1(),F2(),F3(),F4(),F5()*>,F10()))); ::_thesis: for s9 being State of F9() st s9 = s | the carrier of F8() holds for a1, a2, a3, a4, a5 being Element of F6() st ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) & ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) & ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) & ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) & ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) let s9 be State of F9(); ::_thesis: ( s9 = s | the carrier of F8() implies for a1, a2, a3, a4, a5 being Element of F6() st ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) & ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) & ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) & ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) & ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) ) assume A3: s9 = s | the carrier of F8() ; ::_thesis: for a1, a2, a3, a4, a5 being Element of F6() st ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) & ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) & ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) & ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) & ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) holds (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) A4: s9 is stabilizing by Def2; InnerVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) = {(Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())))} by Th16; then A5: InputVertices F8() misses InnerVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) by A2, ZFMISC_1:50; then A6: (Following (s,(stabilization-time s9))) | the carrier of F8() = Following (s9,(stabilization-time s9)) by A3, Th27, CIRCCMB2:13 .= Result s9 by A4, Th2 ; F8() tolerates 1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()) by CIRCCOMB:47; then A7: InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = (InputVertices F8()) \/ ((InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8())) by A5, FACIRC_1:4; A8: [<*F1(),F2(),F3(),F4(),F5()*>,F10()] = Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) by Th15; A9: s is stabilizing by Def2; A10: the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = the carrier of F8() \/ the carrier of (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) by CIRCCOMB:def_2; the carrier' of (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) = {[<*F1(),F2(),F3(),F4(),F5()*>,F10()]} by CIRCCOMB:def_6; then ( [<*F1(),F2(),F3(),F4(),F5()*>,F10()] in {[<*F1(),F2(),F3(),F4(),F5()*>,F10()]} & the carrier' of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = the carrier' of F8() \/ {[<*F1(),F2(),F3(),F4(),F5()*>,F10()]} ) by CIRCCOMB:def_2, TARSKI:def_1; then reconsider g = [<*F1(),F2(),F3(),F4(),F5()*>,F10()] as Gate of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by XBOOLE_0:def_3; let a1, a2, a3, a4, a5 be Element of F6(); ::_thesis: ( ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) & ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) & ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) & ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) & ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) implies (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) ) assume that A11: ( ( F1() in InnerVertices F8() implies a1 = (Result s9) . F1() ) & ( not F1() in InnerVertices F8() implies a1 = s . F1() ) ) and A12: ( ( F2() in InnerVertices F8() implies a2 = (Result s9) . F2() ) & ( not F2() in InnerVertices F8() implies a2 = s . F2() ) ) and A13: ( ( F3() in InnerVertices F8() implies a3 = (Result s9) . F3() ) & ( not F3() in InnerVertices F8() implies a3 = s . F3() ) ) and A14: ( ( F4() in InnerVertices F8() implies a4 = (Result s9) . F4() ) & ( not F4() in InnerVertices F8() implies a4 = s . F4() ) ) and A15: ( ( F5() in InnerVertices F8() implies a5 = (Result s9) . F5() ) & ( not F5() in InnerVertices F8() implies a5 = s . F5() ) ) ; ::_thesis: (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = F7(a1,a2,a3,a4,a5) A16: InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10())) = rng <*F1(),F2(),F3(),F4(),F5()*> by CIRCCOMB:42; A17: rng <*F1(),F2(),F3(),F4(),F5()*> = {F1(),F2(),F3(),F4(),F5()} by Th14; then A18: F1() in rng <*F1(),F2(),F3(),F4(),F5()*> by ENUMSET1:def_3; then A19: F1() in the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A16, A10, XBOOLE_0:def_3; A20: F5() in rng <*F1(),F2(),F3(),F4(),F5()*> by A17, ENUMSET1:def_3; then A21: F5() in the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A16, A10, XBOOLE_0:def_3; ( F5() in InnerVertices F8() or F5() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8()) ) by A16, A20, XBOOLE_0:def_5; then ( F5() in InnerVertices F8() or F5() in InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) ) by A7, XBOOLE_0:def_3; then A22: a5 = (Following (s,(stabilization-time s9))) . F5() by A15, A6, Th1, FUNCT_1:49; A23: F4() in rng <*F1(),F2(),F3(),F4(),F5()*> by A17, ENUMSET1:def_3; then A24: F4() in the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A16, A10, XBOOLE_0:def_3; A25: F3() in rng <*F1(),F2(),F3(),F4(),F5()*> by A17, ENUMSET1:def_3; then A26: F3() in the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A16, A10, XBOOLE_0:def_3; ( F3() in InnerVertices F8() or F3() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8()) ) by A16, A25, XBOOLE_0:def_5; then ( F3() in InnerVertices F8() or F3() in InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) ) by A7, XBOOLE_0:def_3; then A27: a3 = (Following (s,(stabilization-time s9))) . F3() by A13, A6, Th1, FUNCT_1:49; A28: F2() in rng <*F1(),F2(),F3(),F4(),F5()*> by A17, ENUMSET1:def_3; then A29: F2() in the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A16, A10, XBOOLE_0:def_3; ( F1() in InnerVertices F8() or F1() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8()) ) by A16, A18, XBOOLE_0:def_5; then ( F1() in InnerVertices F8() or F1() in InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) ) by A7, XBOOLE_0:def_3; then A30: a1 = (Following (s,(stabilization-time s9))) . F1() by A11, A6, Th1, FUNCT_1:49; g = [( the Arity of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) . g),(g `2)] by CIRCCOMB:def_8; then A31: <*F1(),F2(),F3(),F4(),F5()*> = the Arity of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) . g by XTUPLE_0:1 .= the_arity_of g by MSUALG_1:def_1 ; A32: g `2 = F10() by MCART_1:7; ( F4() in InnerVertices F8() or F4() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8()) ) by A16, A23, XBOOLE_0:def_5; then ( F4() in InnerVertices F8() or F4() in InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) ) by A7, XBOOLE_0:def_3; then A33: a4 = (Following (s,(stabilization-time s9))) . F4() by A14, A6, Th1, FUNCT_1:49; ( F2() in InnerVertices F8() or F2() in (InputVertices (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) \ (InnerVertices F8()) ) by A16, A28, XBOOLE_0:def_5; then ( F2() in InnerVertices F8() or F2() in InputVertices (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) ) by A7, XBOOLE_0:def_3; then A34: a2 = (Following (s,(stabilization-time s9))) . F2() by A12, A6, Th1, FUNCT_1:49; dom (Following (s,(stabilization-time s9))) = the carrier of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by CIRCUIT1:3; then A35: (Following (s,(stabilization-time s9))) * <*F1(),F2(),F3(),F4(),F5()*> = <*a1,a2,a3,a4,a5*> by A19, A29, A26, A24, A21, A30, A34, A27, A33, A22, Th34; A36: the_result_sort_of g = the ResultSort of (F8() +* (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) . g by MSUALG_1:def_2 .= g by CIRCCOMB:44 ; stabilization-time s <= 1 + (stabilization-time s9) by A2, A3, Th48; hence (Result s) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) = (Following (s,(1 + (stabilization-time s9)))) . (Output (1GateCircStr (<*F1(),F2(),F3(),F4(),F5()*>,F10()))) by A9, Th5 .= (Following (Following (s,(stabilization-time s9)))) . g by A8, FACIRC_1:12 .= F10() . ((Following (s,(stabilization-time s9))) * <*F1(),F2(),F3(),F4(),F5()*>) by A36, A31, A32, FACIRC_1:34 .= F7(a1,a2,a3,a4,a5) by A1, A35 ; ::_thesis: verum end; begin definition let S be non empty ManySortedSign ; attrS is with_nonpair_inputs means :Def11: :: CIRCCMB3:def 11 InputVertices S is without_pairs ; end; :: deftheorem Def11 defines with_nonpair_inputs CIRCCMB3:def_11_:_ for S being non empty ManySortedSign holds ( S is with_nonpair_inputs iff InputVertices S is without_pairs ); registration cluster NAT -> without_pairs ; coherence not NAT is with_pair proof let x be pair set ; :: according to FACIRC_1:def_2 ::_thesis: not x in NAT assume x in NAT ; ::_thesis: contradiction hence contradiction ; ::_thesis: verum end; let X be without_pairs set ; cluster -> without_pairs for Element of bool X; coherence for b1 being Subset of X holds b1 is without_pairs proof let Y be Subset of X; ::_thesis: Y is without_pairs let x be pair set ; :: according to FACIRC_1:def_2 ::_thesis: not x in Y assume x in Y ; ::_thesis: contradiction hence contradiction by FACIRC_1:def_2; ::_thesis: verum end; end; registration cluster Relation-like Function-like natural-valued -> nonpair-yielding for set ; coherence for b1 being Function st b1 is natural-valued holds b1 is nonpair-yielding proof let f be Function; ::_thesis: ( f is natural-valued implies f is nonpair-yielding ) assume f is natural-valued ; ::_thesis: f is nonpair-yielding then A1: rng f c= NAT by VALUED_0:def_6; let x be set ; :: according to FACIRC_1:def_3 ::_thesis: ( not x in proj1 f or not f . x is pair ) assume x in dom f ; ::_thesis: not f . x is pair then f . x in rng f by FUNCT_1:def_3; hence not f . x is pair by A1; ::_thesis: verum end; end; registration cluster Relation-like NAT -defined Function-like one-to-one finite FinSequence-like FinSubsequence-like V95() natural-valued for set ; existence ex b1 being FinSequence st ( b1 is one-to-one & b1 is natural-valued ) proof set p = the one-to-one FinSequence of NAT ; take the one-to-one FinSequence of NAT ; ::_thesis: ( the one-to-one FinSequence of NAT is one-to-one & the one-to-one FinSequence of NAT is natural-valued ) thus ( the one-to-one FinSequence of NAT is one-to-one & the one-to-one FinSequence of NAT is natural-valued ) ; ::_thesis: verum end; end; registration let n be Element of NAT ; cluster Relation-like NAT -defined Function-like one-to-one finite V42(n) FinSequence-like FinSubsequence-like V95() natural-valued for set ; existence ex b1 being FinSeqLen of n st ( b1 is one-to-one & b1 is natural-valued ) proof set p = id (Seg n); A1: dom (id (Seg n)) = Seg n ; then ( rng (id (Seg n)) = Seg n & id (Seg n) is FinSequence ) by FINSEQ_1:def_2; then reconsider p = id (Seg n) as one-to-one FinSequence of NAT by FINSEQ_1:def_4; len p = n by A1, FINSEQ_1:def_3; then reconsider p = p as FinSeqLen of n by CARD_1:def_7; take p ; ::_thesis: ( p is one-to-one & p is natural-valued ) thus ( p is one-to-one & p is natural-valued ) ; ::_thesis: verum end; end; registration let p be nonpair-yielding FinSequence; let f be set ; cluster 1GateCircStr (p,f) -> with_nonpair_inputs ; coherence 1GateCircStr (p,f) is with_nonpair_inputs proof InputVertices (1GateCircStr (p,f)) = rng p by CIRCCOMB:42; hence InputVertices (1GateCircStr (p,f)) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; end; registration cluster non empty finite non void V79() strict Circuit-like unsplit gate`1=arity gate`2=den one-gate with_nonpair_inputs for ManySortedSign ; existence ex b1 being one-gate ManySortedSign st b1 is with_nonpair_inputs proof set n = the Element of NAT ; set X = the non empty finite set ; set f = the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ; set p = the natural-valued FinSeqLen of the Element of NAT ; take 1GateCircStr ( the natural-valued FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) ; ::_thesis: 1GateCircStr ( the natural-valued FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) is with_nonpair_inputs thus 1GateCircStr ( the natural-valued FinSeqLen of the Element of NAT , the Function of ( the Element of NAT -tuples_on the non empty finite set ), the non empty finite set ) is with_nonpair_inputs ; ::_thesis: verum end; let X be non empty finite set ; cluster non empty finite non void V79() strict Circuit-like unsplit gate`1=arity gate`2=den one-gate with_nonpair_inputs for Signature of X; existence ex b1 being one-gate Signature of X st b1 is with_nonpair_inputs proof set p = the natural-valued FinSeqLen of 0 ; set f = the Function of (0 -tuples_on X),X; take 1GateCircStr ( the natural-valued FinSeqLen of 0 , the Function of (0 -tuples_on X),X) ; ::_thesis: 1GateCircStr ( the natural-valued FinSeqLen of 0 , the Function of (0 -tuples_on X),X) is with_nonpair_inputs thus 1GateCircStr ( the natural-valued FinSeqLen of 0 , the Function of (0 -tuples_on X),X) is with_nonpair_inputs ; ::_thesis: verum end; end; registration let S be non empty with_nonpair_inputs ManySortedSign ; cluster InputVertices S -> without_pairs ; coherence not InputVertices S is with_pair by Def11; end; theorem :: CIRCCMB3:49 for S being non empty with_nonpair_inputs ManySortedSign for x being Vertex of S st x is pair holds x in InnerVertices S proof let S be non empty with_nonpair_inputs ManySortedSign ; ::_thesis: for x being Vertex of S st x is pair holds x in InnerVertices S let x be Vertex of S; ::_thesis: ( x is pair implies x in InnerVertices S ) the carrier of S = (InputVertices S) \/ (InnerVertices S) by XBOOLE_1:45; then ( x in InputVertices S or x in InnerVertices S ) by XBOOLE_0:def_3; hence ( x is pair implies x in InnerVertices S ) by FACIRC_1:def_2; ::_thesis: verum end; registration let S be non empty unsplit gate`1=arity ManySortedSign ; cluster InnerVertices S -> Relation-like ; coherence InnerVertices S is Relation-like proof let x be set ; :: according to RELAT_1:def_1 ::_thesis: ( not x in InnerVertices S or ex b1, b2 being set st x = [b1,b2] ) assume A1: x in InnerVertices S ; ::_thesis: ex b1, b2 being set st x = [b1,b2] InnerVertices S = the carrier' of S by FACIRC_1:37; then x = [( the Arity of S . x),(x `2)] by A1, CIRCCOMB:def_8; hence ex b1, b2 being set st x = [b1,b2] ; ::_thesis: verum end; end; registration let S be non empty non void unsplit gate`2=den ManySortedSign ; cluster InnerVertices S -> Relation-like ; coherence InnerVertices S is Relation-like proof let x be set ; :: according to RELAT_1:def_1 ::_thesis: ( not x in InnerVertices S or ex b1, b2 being set st x = [b1,b2] ) consider A being MSAlgebra over S such that A1: A is gate`2=den by CIRCCOMB:def_11; assume x in InnerVertices S ; ::_thesis: ex b1, b2 being set st x = [b1,b2] then reconsider g = x as Gate of S by FACIRC_1:37; g = [(g `1),( the Charact of A . g)] by A1, CIRCCOMB:def_10; hence ex b1, b2 being set st x = [b1,b2] ; ::_thesis: verum end; end; registration let S1, S2 be non empty unsplit gate`1=arity with_nonpair_inputs ManySortedSign ; clusterS1 +* S2 -> with_nonpair_inputs ; coherence S1 +* S2 is with_nonpair_inputs proof S1 tolerates S2 by CIRCCOMB:47; then InputVertices (S1 +* S2) is Subset of ((InputVertices S1) \/ (InputVertices S2)) by CIRCCOMB:11; hence InputVertices (S1 +* S2) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; end; theorem :: CIRCCMB3:50 for x being non pair set for R being Relation holds not x in R proof let x be non pair set ; ::_thesis: for R being Relation holds not x in R for a, b being set holds not x = [a,b] ; hence for R being Relation holds not x in R by RELAT_1:def_1; ::_thesis: verum end; theorem Th51: :: CIRCCMB3:51 for x1 being set for X being non empty finite set for f being Function of (1 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) holds S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs proof let x1 be set ; ::_thesis: for X being non empty finite set for f being Function of (1 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) holds S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs let X be non empty finite set ; ::_thesis: for f being Function of (1 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) holds S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs let f be Function of (1 -tuples_on X),X; ::_thesis: for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) holds S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs let S be with_nonpair_inputs Signature of X; ::_thesis: ( ( x1 in the carrier of S or not x1 is pair ) implies S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs ) assume A1: ( x1 in the carrier of S or not x1 is pair ) ; ::_thesis: S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs A2: not Output (1GateCircStr (<*x1*>,f)) in InputVertices S by FACIRC_1:def_2; percases ( x1 in the carrier of S or not x1 is pair ) by A1; suppose x1 in the carrier of S ; ::_thesis: S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs hence InputVertices (S +* (1GateCircStr (<*x1*>,f))) is without_pairs by A2, Th37; :: according to CIRCCMB3:def_11 ::_thesis: verum end; suppose not x1 is pair ; ::_thesis: S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs then reconsider a = x1 as non pair set ; rng <*x1*> = {a} by FINSEQ_1:38; hence InputVertices (S +* (1GateCircStr (<*x1*>,f))) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; end; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1 be Vertex of S; let f be Function of (1 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs by Th51; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1 be non pair set ; let f be Function of (1 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1*>,f)) is with_nonpair_inputs ; end; theorem Th52: :: CIRCCMB3:52 for x1, x2 being set for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) holds S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs proof let x1, x2 be set ; ::_thesis: for X being non empty finite set for f being Function of (2 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) holds S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs let X be non empty finite set ; ::_thesis: for f being Function of (2 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) holds S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs let f be Function of (2 -tuples_on X),X; ::_thesis: for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) holds S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs let S be with_nonpair_inputs Signature of X; ::_thesis: ( ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) implies S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs ) assume A1: ( ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs A2: not Output (1GateCircStr (<*x1,x2*>,f)) in InputVertices S by FACIRC_1:def_2; percases ( ( x1 in the carrier of S & x2 in the carrier of S ) or ( x1 in the carrier of S & not x2 in InnerVertices S ) or ( x2 in the carrier of S & not x1 in InnerVertices S ) or ( not x1 is pair & not x2 is pair ) ) by A1; suppose ( ( x1 in the carrier of S & x2 in the carrier of S ) or ( x1 in the carrier of S & not x2 in InnerVertices S ) or ( x2 in the carrier of S & not x1 in InnerVertices S ) ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs then ( InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = InputVertices S or ( {x2} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = {x2} \/ (InputVertices S) ) or ( {x1} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) = {x1} \/ (InputVertices S) ) ) by A1, A2, Th38, Th39, Th40; hence InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; suppose ( not x1 is pair & not x2 is pair ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs then reconsider a = x1, b = x2 as non pair set ; rng <*x1,x2*> = {a,b} by FINSEQ_2:127; hence InputVertices (S +* (1GateCircStr (<*x1,x2*>,f))) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; end; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1 be Vertex of S; let n2 be non pair set ; let f be Function of (2 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1,n2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1,n2*>,f)) is with_nonpair_inputs by Th52; clusterS +* (1GateCircStr (<*n2,x1*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*n2,x1*>,f)) is with_nonpair_inputs by Th52; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1, x2 be Vertex of S; let f be Function of (2 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1,x2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1,x2*>,f)) is with_nonpair_inputs by Th52; end; theorem Th53: :: CIRCCMB3:53 for x1, x2, x3 being set for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) holds S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs proof let x1, x2, x3 be set ; ::_thesis: for X being non empty finite set for f being Function of (3 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) holds S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs let X be non empty finite set ; ::_thesis: for f being Function of (3 -tuples_on X),X for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) holds S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs let f be Function of (3 -tuples_on X),X; ::_thesis: for S being with_nonpair_inputs Signature of X st ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) holds S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs let S be with_nonpair_inputs Signature of X; ::_thesis: ( ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) implies S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs ) assume A1: ( ( x1 in the carrier of S or not x1 is pair ) & ( x2 in the carrier of S or not x2 is pair ) & ( x3 in the carrier of S or not x3 is pair ) ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs A2: not Output (1GateCircStr (<*x1,x2,x3*>,f)) in InputVertices S by FACIRC_1:def_2; percases ( ( x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S ) or ( x1 in the carrier of S & not x2 in InnerVertices S & x3 in the carrier of S ) or ( x2 in the carrier of S & not x1 in InnerVertices S & x3 in the carrier of S ) or ( x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S ) or ( x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S ) or ( x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S ) or ( not x1 in InnerVertices S & not x2 in InnerVertices S & x3 in the carrier of S ) or ( not x1 is pair & not x2 is pair & not x3 is pair ) ) by A1; suppose ( ( x1 in the carrier of S & x2 in the carrier of S & x3 in the carrier of S ) or ( x1 in the carrier of S & not x2 in InnerVertices S & x3 in the carrier of S ) or ( x2 in the carrier of S & not x1 in InnerVertices S & x3 in the carrier of S ) or ( x1 in the carrier of S & x2 in the carrier of S & not x3 in InnerVertices S ) or ( x1 in the carrier of S & not x2 in InnerVertices S & not x3 in InnerVertices S ) or ( x2 in the carrier of S & not x1 in InnerVertices S & not x3 in InnerVertices S ) or ( not x1 in InnerVertices S & not x2 in InnerVertices S & x3 in the carrier of S ) ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs then ( InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = InputVertices S or ( {x2} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x2} \/ (InputVertices S) ) or ( {x1} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x1} \/ (InputVertices S) ) or ( {x3} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x3} \/ (InputVertices S) ) or ( {x1,x2} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x1,x2} \/ (InputVertices S) ) or ( {x2,x3} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x2,x3} \/ (InputVertices S) ) or ( {x1,x3} is without_pairs & InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) = {x1,x3} \/ (InputVertices S) ) ) by A1, A2, Th41, Th42, Th43, Th44, Th45, Th46, Th47; hence InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; suppose ( not x1 is pair & not x2 is pair & not x3 is pair ) ; ::_thesis: S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs then reconsider a = x1, b = x2, c = x3 as non pair set ; rng <*x1,x2,x3*> = {a,b,c} by FINSEQ_2:128; hence InputVertices (S +* (1GateCircStr (<*x1,x2,x3*>,f))) is without_pairs ; :: according to CIRCCMB3:def_11 ::_thesis: verum end; end; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1, x2 be Vertex of S; let n be non pair set ; let f be Function of (3 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1,x2,n*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1,x2,n*>,f)) is with_nonpair_inputs by Th53; clusterS +* (1GateCircStr (<*x1,n,x2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1,n,x2*>,f)) is with_nonpair_inputs by Th53; clusterS +* (1GateCircStr (<*n,x1,x2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*n,x1,x2*>,f)) is with_nonpair_inputs by Th53; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x be Vertex of S; let n1, n2 be non pair set ; let f be Function of (3 -tuples_on X),X; clusterS +* (1GateCircStr (<*x,n1,n2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x,n1,n2*>,f)) is with_nonpair_inputs by Th53; clusterS +* (1GateCircStr (<*n1,x,n2*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*n1,x,n2*>,f)) is with_nonpair_inputs by Th53; clusterS +* (1GateCircStr (<*n1,n2,x*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*n1,n2,x*>,f)) is with_nonpair_inputs by Th53; end; registration let X be non empty finite set ; let S be with_nonpair_inputs Signature of X; let x1, x2, x3 be Vertex of S; let f be Function of (3 -tuples_on X),X; clusterS +* (1GateCircStr (<*x1,x2,x3*>,f)) -> with_nonpair_inputs ; coherence S +* (1GateCircStr (<*x1,x2,x3*>,f)) is with_nonpair_inputs by Th53; end;