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