:: 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;