set i = (insloc ((card I) + 4)) .--> (goto (insloc 0 ));
set C = if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA );
set P = (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )));
A4:
card (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) = (card I) + 6
by Th2;
(card I) + 4 < (card I) + 6
by XREAL_1:8;
then
insloc ((card I) + 4) in dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))
by A4, SCMFSA6A:15;
then A5:
{(insloc ((card I) + 4))} c= dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))
by ZFMISC_1:37;
A6: dom ((if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) =
(dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))) \/ (dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))))
by FUNCT_4:def 1
.=
(dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))) \/ {(insloc ((card I) + 4))}
by FUNCOP_1:19
.=
dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))
by A5, XBOOLE_1:12
;
(if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) is initial
proof
let m,
n be
Nat;
:: according to SCMNORM:def 1 :: thesis: ( not n in dom ((if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) or n <= m or m in dom ((if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) )
thus
( not
n in dom ((if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) or
n <= m or
m in dom ((if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) )
by A6, SCMNORM:def 1;
:: thesis: verum
end;
hence
(if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) +* ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) is Program of SCM+FSA
; :: thesis: verum