let s be State of SCM+FSA ; :: thesis: for I, J being parahalting Program of SCM+FSA
for a, b being read-write Int-Location st I does_not_refer a & J does_not_refer a holds
( IC (IExec (if=0 a,b,I,J),s) = ((card I) + (card J)) + 5 & ( s . a = s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) ) ) & ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) ) )

let I, J be parahalting Program of SCM+FSA ; :: thesis: for a, b being read-write Int-Location st I does_not_refer a & J does_not_refer a holds
( IC (IExec (if=0 a,b,I,J),s) = ((card I) + (card J)) + 5 & ( s . a = s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) ) ) & ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) ) )

let a, b be read-write Int-Location ; :: thesis: ( I does_not_refer a & J does_not_refer a implies ( IC (IExec (if=0 a,b,I,J),s) = ((card I) + (card J)) + 5 & ( s . a = s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) ) ) & ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) ) ) )

assume that
A1: I does_not_refer a and
A2: J does_not_refer a ; :: thesis: ( IC (IExec (if=0 a,b,I,J),s) = ((card I) + (card J)) + 5 & ( s . a = s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) ) ) & ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) ) )

set s2 = s;
reconsider JJ = if=0 a,I,J as parahalting Program of SCM+FSA ;
reconsider II = Macro (SubFrom a,b) as parahalting keeping_0 Program of SCM+FSA ;
set i = SubFrom a,b;
set s1 = Exec (SubFrom a,b),(Initialize s);
A3: now
let c be read-write Int-Location ; :: thesis: ( a <> c implies (Exec (SubFrom a,b),(Initialize s)) . c = s . c )
assume a <> c ; :: thesis: (Exec (SubFrom a,b),(Initialize s)) . c = s . c
hence (Exec (SubFrom a,b),(Initialize s)) . c = (Initialize s) . c by SCMFSA_2:91
.= s . c by SCMFSA6C:3 ;
:: thesis: verum
end;
IExec (if=0 a,b,I,J),s = IExec (II ';' JJ),s by SCMFSA6A:def 6
.= (IExec JJ,(IExec II,s)) +* (Start-At ((IC (IExec JJ,(IExec II,s))) + (card II)),SCM+FSA ) by SCMFSA6B:44 ;
hence IC (IExec (if=0 a,b,I,J),s) = (IC (IExec JJ,(IExec II,s))) + (card II) by AMI_1:111
.= (((card I) + (card J)) + 3) + (card II) by Th21
.= (((card I) + (card J)) + 3) + 2 by SCMFSA7B:6
.= ((card I) + (card J)) + 5 ;
:: thesis: ( ( s . a = s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) ) ) & ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) ) )

A4: now
let f be FinSeq-Location ; :: thesis: (Exec (SubFrom a,b),(Initialize s)) . f = s . f
thus (Exec (SubFrom a,b),(Initialize s)) . f = (Initialize s) . f by SCMFSA_2:91
.= s . f by SCMFSA6C:3 ; :: thesis: verum
end;
hereby :: thesis: ( s . a <> s . b implies ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) ) )
assume A5: s . a = s . b ; :: thesis: ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f ) )

A6: I is_closed_on Initialize (Exec (SubFrom a,b),(Initialize s)) by SCMFSA7B:24;
A7: I is_halting_on Initialize (Exec (SubFrom a,b),(Initialize s)) by SCMFSA7B:25;
A8: (Exec (SubFrom a,b),(Initialize s)) . a = ((Initialize s) . a) - ((Initialize s) . b) by SCMFSA_2:91
.= (s . a) - ((Initialize s) . b) by SCMFSA6C:3
.= (s . a) - (s . b) by SCMFSA6C:3
.= 0 by A5 ;
hereby :: thesis: for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f
let d be Int-Location ; :: thesis: ( a <> d implies (IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d )
assume A9: a <> d ; :: thesis: (IExec (if=0 a,b,I,J),s) . d = (IExec I,s) . d
thus (IExec (if=0 a,b,I,J),s) . d = (IExec JJ,(Exec (SubFrom a,b),(Initialize s))) . d by Th12
.= (IExec I,(Exec (SubFrom a,b),(Initialize s))) . d by A8, Th21
.= (IExec I,s) . d by A1, A3, A4, A6, A7, A9, Th41 ; :: thesis: verum
end;
let f be FinSeq-Location ; :: thesis: (IExec (if=0 a,b,I,J),s) . f = (IExec I,s) . f
thus (IExec (if=0 a,b,I,J),s) . f = (IExec JJ,(Exec (SubFrom a,b),(Initialize s))) . f by Th13
.= (IExec I,(Exec (SubFrom a,b),(Initialize s))) . f by A8, Th21
.= (IExec I,s) . f by A1, A3, A4, A6, A7, Th41 ; :: thesis: verum
end;
A10: (Exec (SubFrom a,b),(Initialize s)) . a = ((Initialize s) . a) - ((Initialize s) . b) by SCMFSA_2:91
.= (s . a) - ((Initialize s) . b) by SCMFSA6C:3
.= (s . a) - (s . b) by SCMFSA6C:3 ;
A11: J is_halting_on Initialize (Exec (SubFrom a,b),(Initialize s)) by SCMFSA7B:25;
A12: J is_closed_on Initialize (Exec (SubFrom a,b),(Initialize s)) by SCMFSA7B:24;
assume s . a <> s . b ; :: thesis: ( ( for d being Int-Location st a <> d holds
(IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d ) & ( for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f ) )

then A13: (s . a) + (- (s . b)) <> (s . b) + (- (s . b)) ;
hereby :: thesis: for f being FinSeq-Location holds (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f
let d be Int-Location ; :: thesis: ( a <> d implies (IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d )
assume A14: a <> d ; :: thesis: (IExec (if=0 a,b,I,J),s) . d = (IExec J,s) . d
thus (IExec (if=0 a,b,I,J),s) . d = (IExec JJ,(Exec (SubFrom a,b),(Initialize s))) . d by Th12
.= (IExec J,(Exec (SubFrom a,b),(Initialize s))) . d by A10, A13, Th21
.= (IExec J,s) . d by A2, A3, A4, A12, A11, A14, Th41 ; :: thesis: verum
end;
let f be FinSeq-Location ; :: thesis: (IExec (if=0 a,b,I,J),s) . f = (IExec J,s) . f
thus (IExec (if=0 a,b,I,J),s) . f = (IExec JJ,(Exec (SubFrom a,b),(Initialize s))) . f by Th13
.= (IExec J,(Exec (SubFrom a,b),(Initialize s))) . f by A10, A13, Th21
.= (IExec J,s) . f by A2, A3, A4, A12, A11, Th41 ; :: thesis: verum