let p be Instruction-Sequence of SCM+FSA; :: thesis: for s being State of SCM+FSA holds
( s . (fsloc 0),(IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0) are_fiberwise_equipotent & ( for i, j being Nat st i >= 1 & j <= len (s . (fsloc 0)) & i < j holds
for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2 ) )

let s be State of SCM+FSA; :: thesis: ( s . (fsloc 0),(IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0) are_fiberwise_equipotent & ( for i, j being Nat st i >= 1 & j <= len (s . (fsloc 0)) & i < j holds
for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2 ) )

set W27 = ((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0));
set s0 = Initialized s;
set s1 = Exec (((intloc (1 + 1)) := (intloc 0)),(Initialized s));
set s2 = IExec ((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))),p,s);
set s3 = IExec (((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))),p,s);
set s4 = IExec ((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))),p,s);
set s5 = IExec (((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))),p,s);
set s6 = IExec ((((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0))),p,s);
A1: (IExec (((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))),p,s)) . (fsloc 0) = (Exec (((intloc (5 + 1)) := (intloc 0)),(IExec ((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))),p,s)))) . (fsloc 0) by SCMFSA6C:7
.= (IExec ((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))),p,s)) . (fsloc 0) by SCMFSA_2:63
.= (Exec (((intloc (4 + 1)) := (intloc 0)),(IExec (((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))),p,s)))) . (fsloc 0) by SCMFSA6C:7
.= (IExec (((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))),p,s)) . (fsloc 0) by SCMFSA_2:63
.= (Exec (((intloc (3 + 1)) := (intloc 0)),(IExec ((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))),p,s)))) . (fsloc 0) by SCMFSA6C:7
.= (IExec ((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))),p,s)) . (fsloc 0) by SCMFSA_2:63
.= (Exec (((intloc (2 + 1)) := (intloc 0)),(Exec (((intloc (1 + 1)) := (intloc 0)),(Initialized s))))) . (fsloc 0) by SCMFSA6C:9
.= (Exec (((intloc (1 + 1)) := (intloc 0)),(Initialized s))) . (fsloc 0) by SCMFSA_2:63
.= (Initialized s) . (fsloc 0) by SCMFSA_2:63
.= s . (fsloc 0) by SCMFSA_M:37 ;
A2: (IExec ((((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0))),p,s)) . (fsloc 0) = (Exec (((intloc (0 + 1)) :=len (fsloc 0)),(IExec (((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))),p,s)))) . (fsloc 0) by SCMFSA6C:7
.= s . (fsloc 0) by A1, SCMFSA_2:74 ;
A3: (IExec ((((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0))),p,s)) . (intloc (0 + 1)) = (Exec (((intloc (0 + 1)) :=len (fsloc 0)),(IExec (((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))),p,s)))) . (intloc (0 + 1)) by SCMFSA6C:6
.= len ((IExec ((((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0))),p,s)) . (fsloc 0)) by A1, A2, SCMFSA_2:74 ;
A4: (IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0) = (IExec ((Times ((intloc (0 + 1)),(((((intloc (1 + 1)) := (intloc (0 + 1))) ";" (SubFrom ((intloc (1 + 1)),(intloc 0)))) ";" ((intloc (2 + 1)) :=len (fsloc 0))) ";" (Times ((intloc (1 + 1)),(((((((intloc (3 + 1)) := (intloc (2 + 1))) ";" (SubFrom ((intloc (2 + 1)),(intloc 0)))) ";" ((intloc (4 + 1)) := ((fsloc 0),(intloc (2 + 1))))) ";" ((intloc (5 + 1)) := ((fsloc 0),(intloc (3 + 1))))) ";" (SubFrom ((intloc (5 + 1)),(intloc (4 + 1))))) ";" (if>0 ((intloc (5 + 1)),((((intloc (5 + 1)) := ((fsloc 0),(intloc (3 + 1)))) ";" (((fsloc 0),(intloc (2 + 1))) := (intloc (5 + 1)))) ";" (((fsloc 0),(intloc (3 + 1))) := (intloc (4 + 1)))),(Stop SCM+FSA))))))))),p,(IExec ((((((((intloc (1 + 1)) := (intloc 0)) ";" ((intloc (2 + 1)) := (intloc 0))) ";" ((intloc (3 + 1)) := (intloc 0))) ";" ((intloc (4 + 1)) := (intloc 0))) ";" ((intloc (5 + 1)) := (intloc 0))) ";" ((intloc (0 + 1)) :=len (fsloc 0))),p,s)))) . (fsloc 0) by Lm26, SCM_HALT:21;
hence s . (fsloc 0),(IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0) are_fiberwise_equipotent by A2, A3, Lm33; :: thesis: for i, j being Nat st i >= 1 & j <= len (s . (fsloc 0)) & i < j holds
for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2

let i, j be Nat; :: thesis: ( i >= 1 & j <= len (s . (fsloc 0)) & i < j implies for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2 )

assume that
A5: i >= 1 and
A6: j <= len (s . (fsloc 0)) and
A7: i < j ; :: thesis: for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2

thus for x1, x2 being Integer st x1 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . i & x2 = ((IExec ((bubble-sort (fsloc 0)),p,s)) . (fsloc 0)) . j holds
x1 >= x2 by A2, A3, A4, A5, A6, A7, Lm33; :: thesis: verum