scheme :: CIRCCMB3:sch 17
Comb4CircResult{ F1() -> object , F2() -> object , F3() -> object , F4() -> object , F5() -> non empty finite set , F6( object , object , object , object ) -> 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()