set S = 1GateCircStr (<*F1(),F2(),F3(),F4()*>,F7());
let s be 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)
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(); ( 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() )
; (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
; verum