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)
let a1 be Element of F2(); :: thesis: ( a1 = s . F1() implies (Result s) . (Output (1GateCircStr <*F1()*>,F4())) = F3(a1) )
assume A2:
a1 = s . F1()
; :: thesis: (Result s) . (Output (1GateCircStr <*F1()*>,F4())) = F3(a1)
set S = 1GateCircStr <*F1()*>,F4();
dom s =
the carrier of (1GateCircStr <*F1()*>,F4())
by CIRCUIT1:4
.=
(rng <*F1()*>) \/ {[<*F1()*>,F4()]}
by CIRCCOMB:def 6
.=
{F1()} \/ {[<*F1()*>,F4()]}
by FINSEQ_1:55
.=
{F1(),[<*F1()*>,F4()]}
by ENUMSET1:41
;
then
F1() in dom s
by TARSKI:def 2;
then A3:
s * <*F1()*> = <*a1*>
by A2, Th36;
thus (Result s) . (Output (1GateCircStr <*F1()*>,F4())) =
(Following s) . (Output (1GateCircStr <*F1()*>,F4()))
by Th21
.=
(Following s) . [<*F1()*>,F4()]
by Th16
.=
F4() . (s * <*F1()*>)
by CIRCCOMB:64
.=
F3(a1)
by A1, A3
; :: thesis: verum