let k be Element of NAT ; :: thesis: for s being State of SCM st s starts_at 0 & Euclide-Algorithm c= s & s . (dl. 0 ) > 0 & s . (dl. 1) > 0 & (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) > 0 holds
( (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 0 ) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) & (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 1) = ((Comput (ProgramPart s),s,(4 * k)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,(4 * k)) . (dl. 1)) )

let s be State of SCM ; :: thesis: ( s starts_at 0 & Euclide-Algorithm c= s & s . (dl. 0 ) > 0 & s . (dl. 1) > 0 & (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) > 0 implies ( (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 0 ) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) & (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 1) = ((Comput (ProgramPart s),s,(4 * k)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,(4 * k)) . (dl. 1)) ) )
assume that
A1: s starts_at 0 and
A2: Euclide-Algorithm c= s and
A3: ( s . (dl. 0 ) > 0 & s . (dl. 1) > 0 ) and
A4: (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) > 0 ; :: thesis: ( (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 0 ) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) & (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 1) = ((Comput (ProgramPart s),s,(4 * k)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,(4 * k)) . (dl. 1)) )
set c4 = Comput (ProgramPart s),s,(4 * k);
set c5 = Comput (ProgramPart s),s,((4 * k) + 1);
set c6 = Comput (ProgramPart s),s,((4 * k) + 2);
set c7 = Comput (ProgramPart s),s,((4 * k) + 3);
A5: ( ( (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) > 0 & IC (Comput (ProgramPart s),s,(4 * k)) = 0 ) or ( (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) = 0 & IC (Comput (ProgramPart s),s,(4 * k)) = 4 ) ) by A1, A2, A3, Lm4;
then A6: ( Comput (ProgramPart s),s,((4 * k) + 2) = Comput (ProgramPart s),s,(((4 * k) + 1) + 1) & IC (Comput (ProgramPart s),s,((4 * k) + 1)) = 1 ) by A2, A4, Th5;
then A7: (Comput (ProgramPart s),s,((4 * k) + 2)) . (dl. 2) = (Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 2) by A2, Th6;
A8: ( Comput (ProgramPart s),s,((4 * k) + 3) = Comput (ProgramPart s),s,(((4 * k) + 2) + 1) & IC (Comput (ProgramPart s),s,((4 * k) + 2)) = 2 ) by A2, A6, Th6;
then A9: ( Comput (ProgramPart s),s,((4 * k) + 4) = Comput (ProgramPart s),s,(((4 * k) + 3) + 1) & IC (Comput (ProgramPart s),s,((4 * k) + 3)) = 3 ) by A2, Th7;
A10: (Comput (ProgramPart s),s,((4 * k) + 3)) . (dl. 0 ) = (Comput (ProgramPart s),s,((4 * k) + 2)) . (dl. 2) by A2, A8, Th7;
(Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 2) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) by A2, A4, A5, Th5;
hence (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 0 ) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) by A2, A7, A9, A10, Th8; :: thesis: (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 1) = ((Comput (ProgramPart s),s,(4 * k)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,(4 * k)) . (dl. 1))
A11: (Comput (ProgramPart s),s,((4 * k) + 3)) . (dl. 1) = (Comput (ProgramPart s),s,((4 * k) + 2)) . (dl. 1) by A2, A8, Th7;
A12: (Comput (ProgramPart s),s,((4 * k) + 2)) . (dl. 1) = ((Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 1)) by A2, A6, Th6;
( (Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 0 ) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 0 ) & (Comput (ProgramPart s),s,((4 * k) + 1)) . (dl. 1) = (Comput (ProgramPart s),s,(4 * k)) . (dl. 1) ) by A2, A4, A5, Th5;
hence (Comput (ProgramPart s),s,(4 * (k + 1))) . (dl. 1) = ((Comput (ProgramPart s),s,(4 * k)) . (dl. 0 )) mod ((Comput (ProgramPart s),s,(4 * k)) . (dl. 1)) by A2, A12, A9, A11, Th8; :: thesis: verum