let p be non NAT -defined autonomic FinPartState of ; :: thesis: for s1, s2 being State of SCM+FSA st p c= s1 & p c= s2 holds
for i being Element of NAT
for da, db being Int-Location st CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) & db in dom p holds
((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db)

let s1, s2 be State of SCM+FSA; :: thesis: ( p c= s1 & p c= s2 implies for i being Element of NAT
for da, db being Int-Location st CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) & db in dom p holds
((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db) )

assume A1: ( p c= s1 & p c= s2 ) ; :: thesis: for i being Element of NAT
for da, db being Int-Location st CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) & db in dom p holds
((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db)

let i be Element of NAT ; :: thesis: for da, db being Int-Location st CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) & db in dom p holds
((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db)

let da, db be Int-Location ; :: thesis: ( CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) & db in dom p implies ((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db) )
set I = CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i)));
set Cs1i = Comput ((ProgramPart s1),s1,i);
set Cs2i = Comput ((ProgramPart s2),s2,i);
set Cs1i1 = Comput ((ProgramPart s1),s1,(i + 1));
set Cs2i1 = Comput ((ProgramPart s2),s2,(i + 1));
A2: Comput ((ProgramPart s2),s2,(i + 1)) = Following ((ProgramPart s2),(Comput ((ProgramPart s2),s2,i))) by EXTPRO_1:4
.= Exec ((CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,i)))),(Comput ((ProgramPart s2),s2,i))) ;
assume that
A3: CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = Divide (da,db) and
A4: db in dom p and
A5: ((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) <> ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db) ; :: thesis: contradiction
A6: ( ((Comput ((ProgramPart s1),s1,(i + 1))) | (dom p)) . db = (Comput ((ProgramPart s1),s1,(i + 1))) . db & ((Comput ((ProgramPart s2),s2,(i + 1))) | (dom p)) . db = (Comput ((ProgramPart s2),s2,(i + 1))) . db ) by A4, FUNCT_1:72;
Comput ((ProgramPart s1),s1,(i + 1)) = Following ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) by EXTPRO_1:4
.= Exec ((CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i)))),(Comput ((ProgramPart s1),s1,i))) ;
then A7: (Comput ((ProgramPart s1),s1,(i + 1))) . db = ((Comput ((ProgramPart s1),s1,i)) . da) mod ((Comput ((ProgramPart s1),s1,i)) . db) by A3, SCMFSA_2:93;
CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,i))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,i))) by A1, Th18;
then (Comput ((ProgramPart s2),s2,(i + 1))) . db = ((Comput ((ProgramPart s2),s2,i)) . da) mod ((Comput ((ProgramPart s2),s2,i)) . db) by A2, A3, SCMFSA_2:93;
hence contradiction by A1, A5, A6, A7, EXTPRO_1:def 9; :: thesis: verum