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