set Q = P +~ (halt SCM+FSA ),(goto l);
set PP = ((halt SCM+FSA ) .--> (goto l)) * P;
A1: dom (P +~ (halt SCM+FSA ),(goto l)) = dom P by FUNCT_4:105;
A2: for x being set st x in dom (P +~ (halt SCM+FSA ),(goto l)) holds
(P +~ (halt SCM+FSA ),(goto l)) . x in the Object-Kind of SCM+FSA . x
proof
let x be set ; :: thesis: ( x in dom (P +~ (halt SCM+FSA ),(goto l)) implies (P +~ (halt SCM+FSA ),(goto l)) . x in the Object-Kind of SCM+FSA . x )
assume A3: x in dom (P +~ (halt SCM+FSA ),(goto l)) ; :: thesis: (P +~ (halt SCM+FSA ),(goto l)) . x in the Object-Kind of SCM+FSA . x
per cases ( x in dom (((halt SCM+FSA ) .--> (goto l)) * P) or not x in dom (((halt SCM+FSA ) .--> (goto l)) * P) ) ;
end;
end;
reconsider Q = P +~ (halt SCM+FSA ),(goto l) as FinPartState of SCM+FSA by A2, FUNCT_1:def 20;
dom Q c= NAT by RELAT_1:def 18;
hence P +~ (halt SCM+FSA ),(goto l) is preProgram of SCM+FSA ; :: thesis: verum