let s be State of SCM+FSA ; for I being good InitHalting Program of SCM+FSA
for a being read-write Int-Location st I does_not_destroy a & s . a > 0 holds
ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
let I be good InitHalting Program of SCM+FSA ; for a being read-write Int-Location st I does_not_destroy a & s . a > 0 holds
ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
let a be read-write Int-Location ; ( I does_not_destroy a & s . a > 0 implies ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) ) )
assume A1:
I does_not_destroy a
; ( not s . a > 0 or ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) ) )
reconsider I1 = I ';' (SubFrom a,(intloc 0 )) as InitHalting Program of SCM+FSA ;
set P = if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )));
assume A2:
s . a > 0
; ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
set Is = (Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))));
take s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))); ex k being Element of NAT st
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
set s1 = s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))));
take k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1; ( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 & (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
thus
( s2 = s +* (Initialized (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) & k = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 )
; ( (Comput (ProgramPart s2),s2,k) . a = (s . a) - 1 & (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
Initialize (Initialize s) = Initialize s
by SCMFSA8C:15;
then A3:
(Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) = (Initialize s) +* ((if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))) +* (Start-At 0 ,SCM+FSA ))
by SCMFSA8A:13;
A4:
if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is good
by SCMFSA8C:115;
A5:
I1 is_halting_onInit s
by Th36;
then A6:
I1 is_halting_on Initialize s
by Th41;
I1 is_closed_onInit s
by Th35;
then A7:
IExec (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))),s = (IExec I1,s) +* (Start-At (((card (Goto 2)) + (card I1)) + 3),SCM+FSA )
by A2, A5, Th46;
then A8:
(IExec (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))),s) . a = (IExec I1,s) . a
by SCMFSA_3:11;
( I1 is_closed_onInit s & I1 is_halting_onInit s )
by Th35, Th36;
then A9:
( if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_closed_onInit s & if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_halting_onInit s )
by A2, Th45;
T:
ProgramPart s2 = ProgramPart (Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))
by AMI_1:144;
Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1) =
Following (ProgramPart s2),(Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))
by AMI_1:14
.=
Exec (CurInstr (ProgramPart (Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))),(Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))),(Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))
by T
;
then A10:
Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1) = Exec (goto 0 ),(Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))))
by A9, Th71;
A11:
( I1 is_closed_onInit s & I1 is_halting_onInit s )
by Th35, Th36;
then
if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_closed_onInit s
by A2, Th45;
then A12:
if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_closed_on Initialize s
by Th40;
if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_halting_onInit s
by A2, A11, Th45;
then A13:
if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))) is_halting_on Initialize s
by Th41;
A14:
(Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) = s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))
by SCMFSA8A:8;
A15:
now let b be
Int-Location ;
(Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . b = (Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . b
(Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . b = (Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . b
by A10, SCMFSA_2:95;
hence
(Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . b = (Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . b
by A9, A14, Th68, SCMFSA6A:30;
verum end;
then (Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . a =
(Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . a
.=
(IExec (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))),s) . a
by A3, A13, SCMFSA8C:87
;
hence (Comput (ProgramPart s2),s2,k) . a =
(Comput (ProgramPart ((Initialize s) +* (I1 +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I1 +* (Start-At 0 ,SCM+FSA ))),(LifeSpan ((Initialize s) +* (I1 +* (Start-At 0 ,SCM+FSA ))))) . a
by A6, A8, SCMFSA8C:87
.=
(s . a) - 1
by A1, Th64
;
( (Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1 & ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
(Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . (intloc 0 ) =
(Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . (intloc 0 )
by A15
.=
1
by A3, A13, A12, A4, SCMFSA8C:96
;
hence
(Comput (ProgramPart s2),s2,k) . (intloc 0 ) = 1
; ( ( for b being read-write Int-Location st b <> a holds
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b ) & ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
hereby ( ( for f being FinSeq-Location holds (Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f ) & IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
let b be
read-write Int-Location ;
( b <> a implies (Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . b )assume A16:
b <> a
;
(Comput (ProgramPart s2),s2,k) . b = (IExec I,s) . bthus (Comput (ProgramPart s2),s2,k) . b =
(Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . b
by A15
.=
(IExec (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))),s) . b
by A3, A13, SCMFSA8C:87
.=
(IExec I1,s) . b
by A7, SCMFSA_3:11
.=
(Exec (SubFrom a,(intloc 0 )),(IExec I,s)) . b
by Th33
.=
(IExec I,s) . b
by A16, SCMFSA_2:91
;
verum
end;
hereby ( IC (Comput (ProgramPart s2),s2,k) = 0 & ( for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) ) )
let f be
FinSeq-Location ;
(Comput (ProgramPart s2),s2,k) . f = (IExec I,s) . f
(Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) . f = (Comput (ProgramPart s2),s2,(LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . f
by A10, SCMFSA_2:95;
hence (Comput (ProgramPart s2),s2,k) . f =
(Comput (ProgramPart ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),(LifeSpan ((Initialize s) +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))))) . f
by A9, A14, Th68, SCMFSA6A:31
.=
(IExec (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))),s) . f
by A3, A13, SCMFSA8C:87
.=
(IExec I1,s) . f
by A7, SCMFSA_3:12
.=
(Exec (SubFrom a,(intloc 0 )),(IExec I,s)) . f
by Th34
.=
(IExec I,s) . f
by SCMFSA_2:91
;
verum
end;
thus
IC (Comput (ProgramPart s2),s2,k) = 0
by A10, SCMFSA_2:95; for n being Element of NAT st n <= k holds
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))
A17:
IC (Comput (ProgramPart s2),s2,((LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1)) = 0
by A10, SCMFSA_2:95;
hereby verum
let n be
Element of
NAT ;
( n <= k implies IC (Comput (ProgramPart s2),s2,b1) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) )assume A18:
n <= k
;
IC (Comput (ProgramPart s2),s2,b1) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))per cases
( n <= LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))) or n = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1 )
by A18, NAT_1:8;
suppose A19:
n <= LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))
;
IC (Comput (ProgramPart s2),s2,b1) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))A20:
(
I1 is_closed_onInit s &
I1 is_halting_onInit s )
by Th35, Th36;
then A21:
if=0 a,
(Goto 2),
(I ';' (SubFrom a,(intloc 0 ))) is_closed_onInit s
by A2, Th45;
if=0 a,
(Goto 2),
(I ';' (SubFrom a,(intloc 0 ))) is_halting_onInit s
by A2, A20, Th45;
then
Comput (ProgramPart (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),
(s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),
n,
Comput (ProgramPart s2),
s2,
n equal_outside NAT
by A19, A21, Th68;
then A22:
IC (Comput (ProgramPart s2),s2,n) = IC (Comput (ProgramPart (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),(s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),n)
by SCMFSA8A:6;
IC (Comput (ProgramPart (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))),(s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))),n) in dom (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))
by A21, Def4;
hence
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))
by A22, FUNCT_4:105;
verum end; suppose A23:
n = (LifeSpan (s +* (Initialized (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))) + 1
;
IC (Comput (ProgramPart s2),s2,b1) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))A24:
card (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))) =
((card (Goto 2)) + (card I1)) + 4
by SCMFSA8B:14
.=
((card I1) + 1) + 4
by SCMFSA8A:29
.=
((card I1) + 3) + 2
;
card (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) =
card (dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))))
by CARD_1:104
.=
card (dom (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))
by FUNCT_4:105
.=
card (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))
by CARD_1:104
;
hence
IC (Comput (ProgramPart s2),s2,n) in dom (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )))))
by A17, A23, A24, SCMFSA6A:15;
verum end; end;
end;