:: SCMISORT semantic presentation
theorem Th1: :: SCMISORT:1
theorem Th2: :: SCMISORT:2
theorem Th3: :: SCMISORT:3
theorem Th4: :: SCMISORT:4
theorem Th5: :: SCMISORT:5
canceled;
theorem Th6: :: SCMISORT:6
theorem Th7: :: SCMISORT:7
theorem Th8: :: SCMISORT:8
for
n being
Element of
NAT holds
( not
n <= 11 or
n = 0 or
n = 1 or
n = 2 or
n = 3 or
n = 4 or
n = 5 or
n = 6 or
n = 7 or
n = 8 or
n = 9 or
n = 10 or
n = 11 )
theorem Th9: :: SCMISORT:9
theorem Th10: :: SCMISORT:10
theorem Th11: :: SCMISORT:11
theorem Th12: :: SCMISORT:12
theorem Th13: :: SCMISORT:13
theorem Th14: :: SCMISORT:14
theorem Th15: :: SCMISORT:15
theorem Th16: :: SCMISORT:16
theorem Th17: :: SCMISORT:17
theorem Th18: :: SCMISORT:18
theorem Th19: :: SCMISORT:19
theorem Th20: :: SCMISORT:20
theorem Th21: :: SCMISORT:21
theorem Th22: :: SCMISORT:22
definition
let s be
State of
SCM+FSA ;
let I be
Macro-Instruction;
let a be
read-write Int-Location ;
func StepWhile>0 c3,
c1,
c2 -> Function of
NAT ,
product the
Object-Kind of
SCM+FSA means :
Def1:
:: SCMISORT:def 1
(
it . 0
= s & ( for
i being
Element of
NAT holds
it . (i + 1) = (Computation ((it . i) +* (Initialized (while>0 a,I)))) . ((LifeSpan ((it . i) +* (Initialized I))) + 3) ) );
existence
ex b1 being Function of NAT , product the Object-Kind of SCM+FSA st
( b1 . 0 = s & ( for i being Element of NAT holds b1 . (i + 1) = (Computation ((b1 . i) +* (Initialized (while>0 a,I)))) . ((LifeSpan ((b1 . i) +* (Initialized I))) + 3) ) )
uniqueness
for b1, b2 being Function of NAT , product the Object-Kind of SCM+FSA st b1 . 0 = s & ( for i being Element of NAT holds b1 . (i + 1) = (Computation ((b1 . i) +* (Initialized (while>0 a,I)))) . ((LifeSpan ((b1 . i) +* (Initialized I))) + 3) ) & b2 . 0 = s & ( for i being Element of NAT holds b2 . (i + 1) = (Computation ((b2 . i) +* (Initialized (while>0 a,I)))) . ((LifeSpan ((b2 . i) +* (Initialized I))) + 3) ) holds
b1 = b2
end;
:: deftheorem Def1 defines StepWhile>0 SCMISORT:def 1 :
theorem Th23: :: SCMISORT:23
canceled;
theorem Th24: :: SCMISORT:24
canceled;
theorem Th25: :: SCMISORT:25
theorem Th26: :: SCMISORT:26
theorem Th27: :: SCMISORT:27
for
I being
Macro-Instruction for
a being
read-write Int-Location for
s being
State of
SCM+FSA for
k,
n being
Element of
NAT st
IC ((StepWhile>0 a,s,I) . k) = insloc 0 &
(StepWhile>0 a,s,I) . k = (Computation (s +* (Initialized (while>0 a,I)))) . n &
((StepWhile>0 a,s,I) . k) . (intloc 0) = 1 holds
(
(StepWhile>0 a,s,I) . k = ((StepWhile>0 a,s,I) . k) +* (Initialized (while>0 a,I)) &
(StepWhile>0 a,s,I) . (k + 1) = (Computation (s +* (Initialized (while>0 a,I)))) . (n + ((LifeSpan (((StepWhile>0 a,s,I) . k) +* (Initialized I))) + 3)) )
theorem Th28: :: SCMISORT:28
for
I being
Macro-Instruction for
a being
read-write Int-Location for
s being
State of
SCM+FSA st ex
f being
Function of
product the
Object-Kind of
SCM+FSA ,
NAT st
for
k being
Element of
NAT holds
( (
f . ((StepWhile>0 a,s,I) . k) <> 0 implies (
f . ((StepWhile>0 a,s,I) . (k + 1)) < f . ((StepWhile>0 a,s,I) . k) &
I is_closed_onInit (StepWhile>0 a,s,I) . k &
I is_halting_onInit (StepWhile>0 a,s,I) . k ) ) &
((StepWhile>0 a,s,I) . (k + 1)) . (intloc 0) = 1 & (
f . ((StepWhile>0 a,s,I) . k) = 0 implies
((StepWhile>0 a,s,I) . k) . a <= 0 ) & (
((StepWhile>0 a,s,I) . k) . a <= 0 implies
f . ((StepWhile>0 a,s,I) . k) = 0 ) ) holds
(
while>0 a,
I is_halting_onInit s &
while>0 a,
I is_closed_onInit s )
theorem Th29: :: SCMISORT:29
theorem Th30: :: SCMISORT:30
theorem Th31: :: SCMISORT:31
theorem Th32: :: SCMISORT:32
theorem Th33: :: SCMISORT:33
theorem Th34: :: SCMISORT:34
theorem Th35: :: SCMISORT:35
theorem Th36: :: SCMISORT:36
theorem Th37: :: SCMISORT:37
set a0 = intloc 0;
set a1 = intloc 1;
set a2 = intloc 2;
set a3 = intloc 3;
set a4 = intloc 4;
set a5 = intloc 5;
set a6 = intloc 6;
set initializeWorkMem = (((((intloc 2) := (intloc 0)) ';' ((intloc 3) := (intloc 0))) ';' ((intloc 4) := (intloc 0))) ';' ((intloc 5) := (intloc 0))) ';' ((intloc 6) := (intloc 0));
definition
let f be
FinSeq-Location ;
func insert-sort c1 -> Macro-Instruction equals :: SCMISORT:def 2
((((((((intloc 2) := (intloc 0)) ';' ((intloc 3) := (intloc 0))) ';' ((intloc 4) := (intloc 0))) ';' ((intloc 5) := (intloc 0))) ';' ((intloc 6) := (intloc 0))) ';' ((intloc 1) :=len a0)) ';' (SubFrom (intloc 1),(intloc 0))) ';' (Times (intloc 1),(((((((((intloc 2) :=len a0) ';' (SubFrom (intloc 2),(intloc 1))) ';' ((intloc 3) := (intloc 2))) ';' (AddTo (intloc 3),(intloc 0))) ';' ((intloc 6) := a0,(intloc 3))) ';' (SubFrom (intloc 4),(intloc 4))) ';' (while>0 (intloc 2),((((intloc 5) := a0,(intloc 2)) ';' (SubFrom (intloc 5),(intloc 6))) ';' (if>0 (intloc 5),(Macro (SubFrom (intloc 2),(intloc 2))),((AddTo (intloc 4),(intloc 0)) ';' (SubFrom (intloc 2),(intloc 0))))))) ';' (Times (intloc 4),(((((((intloc 2) := (intloc 3)) ';' (SubFrom (intloc 3),(intloc 0))) ';' ((intloc 5) := a0,(intloc 2))) ';' ((intloc 6) := a0,(intloc 3))) ';' (a0,(intloc 2) := (intloc 6))) ';' (a0,(intloc 3) := (intloc 5))))));
coherence
((((((((intloc 2) := (intloc 0)) ';' ((intloc 3) := (intloc 0))) ';' ((intloc 4) := (intloc 0))) ';' ((intloc 5) := (intloc 0))) ';' ((intloc 6) := (intloc 0))) ';' ((intloc 1) :=len f)) ';' (SubFrom (intloc 1),(intloc 0))) ';' (Times (intloc 1),(((((((((intloc 2) :=len f) ';' (SubFrom (intloc 2),(intloc 1))) ';' ((intloc 3) := (intloc 2))) ';' (AddTo (intloc 3),(intloc 0))) ';' ((intloc 6) := f,(intloc 3))) ';' (SubFrom (intloc 4),(intloc 4))) ';' (while>0 (intloc 2),((((intloc 5) := f,(intloc 2)) ';' (SubFrom (intloc 5),(intloc 6))) ';' (if>0 (intloc 5),(Macro (SubFrom (intloc 2),(intloc 2))),((AddTo (intloc 4),(intloc 0)) ';' (SubFrom (intloc 2),(intloc 0))))))) ';' (Times (intloc 4),(((((((intloc 2) := (intloc 3)) ';' (SubFrom (intloc 3),(intloc 0))) ';' ((intloc 5) := f,(intloc 2))) ';' ((intloc 6) := f,(intloc 3))) ';' (f,(intloc 2) := (intloc 6))) ';' (f,(intloc 3) := (intloc 5)))))) is Macro-Instruction
;
end;
:: deftheorem Def2 defines insert-sort SCMISORT:def 2 :
for
f being
FinSeq-Location holds
insert-sort f = ((((((((intloc 2) := (intloc 0)) ';' ((intloc 3) := (intloc 0))) ';' ((intloc 4) := (intloc 0))) ';' ((intloc 5) := (intloc 0))) ';' ((intloc 6) := (intloc 0))) ';' ((intloc 1) :=len f)) ';' (SubFrom (intloc 1),(intloc 0))) ';' (Times (intloc 1),(((((((((intloc 2) :=len f) ';' (SubFrom (intloc 2),(intloc 1))) ';' ((intloc 3) := (intloc 2))) ';' (AddTo (intloc 3),(intloc 0))) ';' ((intloc 6) := f,(intloc 3))) ';' (SubFrom (intloc 4),(intloc 4))) ';' (while>0 (intloc 2),((((intloc 5) := f,(intloc 2)) ';' (SubFrom (intloc 5),(intloc 6))) ';' (if>0 (intloc 5),(Macro (SubFrom (intloc 2),(intloc 2))),((AddTo (intloc 4),(intloc 0)) ';' (SubFrom (intloc 2),(intloc 0))))))) ';' (Times (intloc 4),(((((((intloc 2) := (intloc 3)) ';' (SubFrom (intloc 3),(intloc 0))) ';' ((intloc 5) := f,(intloc 2))) ';' ((intloc 6) := f,(intloc 3))) ';' (f,(intloc 2) := (intloc 6))) ';' (f,(intloc 3) := (intloc 5))))));
:: deftheorem Def3 defines Insert-Sort-Algorithm SCMISORT:def 3 :
theorem Th38: :: SCMISORT:38
theorem Th39: :: SCMISORT:39
theorem Th40: :: SCMISORT:40
theorem Th41: :: SCMISORT:41
theorem Th42: :: SCMISORT:42
theorem Th43: :: SCMISORT:43
Lemma259:
for s being State of SCM+FSA st Insert-Sort-Algorithm c= s holds
( s . (insloc 0) = (intloc 2) := (intloc 0) & s . (insloc 1) = goto (insloc 2) & s . (insloc 2) = (intloc 3) := (intloc 0) & s . (insloc 3) = goto (insloc 4) & s . (insloc 4) = (intloc 4) := (intloc 0) & s . (insloc 5) = goto (insloc 6) & s . (insloc 6) = (intloc 5) := (intloc 0) & s . (insloc 7) = goto (insloc 8) & s . (insloc 8) = (intloc 6) := (intloc 0) & s . (insloc 9) = goto (insloc 10) & s . (insloc 10) = (intloc 1) :=len (fsloc 0) & s . (insloc 11) = goto (insloc 12) )
set f0 = fsloc 0;
set b1 = intloc (0 + 1);
set b2 = intloc (1 + 1);
set b3 = intloc (2 + 1);
set b4 = intloc (3 + 1);
set b5 = intloc (4 + 1);
set b6 = intloc (5 + 1);
set i1 = (intloc (1 + 1)) := (intloc (2 + 1));
set i2 = SubFrom (intloc (2 + 1)),(intloc 0);
set i3 = (intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1));
set i4 = (intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1));
set i5 = (fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1));
set i6 = (fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1));
set body3 = ((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)));
set w2 = (intloc (1 + 1)) := (intloc 0);
set w3 = (intloc (2 + 1)) := (intloc 0);
set w4 = (intloc (3 + 1)) := (intloc 0);
set w5 = (intloc (4 + 1)) := (intloc 0);
set w6 = (intloc (5 + 1)) := (intloc 0);
set T3 = Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))));
set m0 = SubFrom (intloc (1 + 1)),(intloc (1 + 1));
set m1 = Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)));
set m2 = AddTo (intloc (3 + 1)),(intloc 0);
set m3 = SubFrom (intloc (1 + 1)),(intloc 0);
set IF = if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)));
set n1 = (intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1));
set n2 = SubFrom (intloc (4 + 1)),(intloc (5 + 1));
set body2 = (((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))));
set t1 = (intloc (1 + 1)) :=len (fsloc 0);
set t2 = SubFrom (intloc (1 + 1)),(intloc (0 + 1));
set t3 = (intloc (2 + 1)) := (intloc (1 + 1));
set t4 = AddTo (intloc (2 + 1)),(intloc 0);
set t5 = (intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1));
set t6 = SubFrom (intloc (3 + 1)),(intloc (3 + 1));
set Wg = while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))));
set t16 = ((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)));
set body1 = ((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)))));
set WM = (((((intloc 2) := (intloc 0)) ';' ((intloc 3) := (intloc 0))) ';' ((intloc 4) := (intloc 0))) ';' ((intloc 5) := (intloc 0))) ';' ((intloc 6) := (intloc 0));
set j1 = (intloc (0 + 1)) :=len (fsloc 0);
set j2 = SubFrom (intloc (0 + 1)),(intloc 0);
Lemma290:
for s being State of SCM+FSA st Insert-Sort-Algorithm c= s & s starts_at insloc 0 holds
( ( for k being Element of NAT st k > 0 & k < 12 holds
( ((Computation s) . k) . (IC SCM+FSA ) = insloc k & ((Computation s) . k) . (intloc 0) = s . (intloc 0) & ((Computation s) . k) . (fsloc 0) = s . (fsloc 0) ) ) & ((Computation s) . 11) . (intloc 1) = len (s . (fsloc 0)) & ((Computation s) . 11) . (intloc 2) = s . (intloc 0) & ((Computation s) . 11) . (intloc 3) = s . (intloc 0) & ((Computation s) . 11) . (intloc 4) = s . (intloc 0) & ((Computation s) . 11) . (intloc 5) = s . (intloc 0) & ((Computation s) . 11) . (intloc 6) = s . (intloc 0) )
Lemma328:
for s being State of SCM+FSA holds
( ( s . (intloc (4 + 1)) > 0 implies (IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . (intloc (1 + 1)) = 0 ) & ( s . (intloc (4 + 1)) <= 0 implies (IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . (intloc (1 + 1)) = (s . (intloc (1 + 1))) - 1 ) )
Lemma329:
for s being State of SCM+FSA holds
( (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),s) . (intloc (1 + 1)) < s . (intloc (1 + 1)) or (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),s) . (intloc (1 + 1)) <= 0 )
then Lemma330:
while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))) is good InitHalting Macro-Instruction
by ;
Lemma331:
((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))) does_not_destroy intloc (3 + 1)
Lemma332:
((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))) does_not_destroy intloc (0 + 1)
Lemma333:
(((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))) does_not_destroy intloc (0 + 1)
Lemma334:
((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))) does_not_destroy intloc (0 + 1)
Lemma335:
Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)))) is good InitHalting Macro-Instruction
Lemma336:
((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))) is good InitHalting Macro-Instruction
Lemma339:
Times (intloc (0 + 1)),(((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)))))) is good InitHalting Macro-Instruction
theorem Th44: :: SCMISORT:44
Lemma342:
for s being State of SCM+FSA holds (IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . (fsloc 0) = s . (fsloc 0)
Lemma343:
for s being State of SCM+FSA holds
( ( s . (intloc (4 + 1)) > 0 implies (IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . (intloc (3 + 1)) = s . (intloc (3 + 1)) ) & ( s . (intloc (4 + 1)) <= 0 implies (IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . (intloc (3 + 1)) = (s . (intloc (3 + 1))) + 1 ) )
Lemma344:
for a being read-write Int-Location
for s being State of SCM+FSA st a <> intloc (3 + 1) & a <> intloc (1 + 1) holds
(IExec (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))),s) . a = s . a
Lemma345:
for t being State of SCM+FSA st t . (intloc (1 + 1)) >= 1 & t . (intloc (1 + 1)) <= len (t . (fsloc 0)) holds
( (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (2 + 1)) = t . (intloc (2 + 1)) & (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (5 + 1)) = t . (intloc (5 + 1)) & (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (fsloc 0) = t . (fsloc 0) & ex x1 being Integer st
( x1 = (t . (fsloc 0)) . (t . (intloc (1 + 1))) & ( x1 - (t . (intloc (5 + 1))) > 0 implies ( (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (1 + 1)) = 0 & (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (3 + 1)) = t . (intloc (3 + 1)) ) ) & ( x1 - (t . (intloc (5 + 1))) <= 0 implies ( (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (1 + 1)) = (t . (intloc (1 + 1))) - 1 & (IExec ((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))),t) . (intloc (3 + 1)) = (t . (intloc (3 + 1))) + 1 ) ) ) )
Lemma347:
for k being Element of NAT
for s being State of SCM+FSA st s . (intloc (1 + 1)) = k & s . (intloc (1 + 1)) <= len (s . (fsloc 0)) holds
( s . (fsloc 0) = (IExec (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))))),s) . (fsloc 0) & s . (intloc (5 + 1)) = (IExec (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))))),s) . (intloc (5 + 1)) & s . (intloc (2 + 1)) = (IExec (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))))),s) . (intloc (2 + 1)) & ( k = 0 or ex n being Element of NAT ex x1 being Integer st
( n = ((IExec (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0)))))),s) . (intloc (3 + 1))) - (s . (intloc (3 + 1))) & n <= k & ( k - n >= 1 implies ( x1 = (s . (fsloc 0)) . (k - n) & x1 >= s . (intloc (5 + 1)) ) ) & ( for i being Element of NAT st i > k - n & i < k + 1 holds
ex x2 being Integer st
( x2 = (s . (fsloc 0)) . i & x2 <= s . (intloc (5 + 1)) ) ) ) ) )
Lemma353:
for s being State of SCM+FSA holds
( (IExec (((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)))),s) . (intloc (2 + 1)) = (s . (intloc (2 + 1))) - 1 & (IExec (((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1)))),s) . (fsloc 0) = ((s . (fsloc 0)) +* (abs (s . (intloc (2 + 1)))),((s . (fsloc 0)) /. (abs ((s . (intloc (2 + 1))) - 1)))) +* (abs ((s . (intloc (2 + 1))) - 1)),((s . (fsloc 0)) /. (abs (s . (intloc (2 + 1))))) )
Lemma355:
for k being Element of NAT
for s being State of SCM+FSA st s . (intloc (3 + 1)) = k & k < s . (intloc (2 + 1)) & s . (intloc (2 + 1)) <= len (s . (fsloc 0)) holds
( s . (fsloc 0),(IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (fsloc 0) are_fiberwise_equipotent & (IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (intloc (2 + 1)) = (s . (intloc (2 + 1))) - k & ((IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (fsloc 0)) . ((s . (intloc (2 + 1))) - k) = (s . (fsloc 0)) . (s . (intloc (2 + 1))) & ( for i being Element of NAT st (s . (intloc (2 + 1))) - k < i & i <= s . (intloc (2 + 1)) holds
((IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (fsloc 0)) . i = (s . (fsloc 0)) . (i - 1) ) & ( for i being Element of NAT st s . (intloc (2 + 1)) < i & i <= len (s . (fsloc 0)) holds
((IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (fsloc 0)) . i = (s . (fsloc 0)) . i ) & ( for i being Element of NAT st 1 <= i & i < (s . (intloc (2 + 1))) - k holds
((IExec (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))),s) . (fsloc 0)) . i = (s . (fsloc 0)) . i ) )
Lemma360:
for s being State of SCM+FSA holds
( (IExec (((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))),s) . (intloc (1 + 1)) = (len (s . (fsloc 0))) - (s . (intloc (0 + 1))) & (IExec (((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))),s) . (intloc (2 + 1)) = ((len (s . (fsloc 0))) - (s . (intloc (0 + 1)))) + 1 & (IExec (((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))),s) . (fsloc 0) = s . (fsloc 0) & (IExec (((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))),s) . (intloc (3 + 1)) = 0 & (IExec (((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))),s) . (intloc (5 + 1)) = (s . (fsloc 0)) /. (abs (((len (s . (fsloc 0))) - (s . (intloc (0 + 1)))) + 1)) )
set T1 = Times (intloc (0 + 1)),(((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))));
Lemma361:
for s being State of SCM+FSA st s . (intloc (0 + 1)) = (len (s . (fsloc 0))) - 1 holds
( s . (fsloc 0),(IExec (Times (intloc (0 + 1)),(((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))))),s) . (fsloc 0) are_fiberwise_equipotent & ( for i, j being Element of NAT st i >= 1 & j <= len (s . (fsloc 0)) & i < j holds
for x1, x2 being Integer st x1 = ((IExec (Times (intloc (0 + 1)),(((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))))),s) . (fsloc 0)) . i & x2 = ((IExec (Times (intloc (0 + 1)),(((((((((intloc (1 + 1)) :=len (fsloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc (0 + 1)))) ';' ((intloc (2 + 1)) := (intloc (1 + 1)))) ';' (AddTo (intloc (2 + 1)),(intloc 0))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' (SubFrom (intloc (3 + 1)),(intloc (3 + 1)))) ';' (while>0 (intloc (1 + 1)),((((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1))) ';' (SubFrom (intloc (4 + 1)),(intloc (5 + 1)))) ';' (if>0 (intloc (4 + 1)),(Macro (SubFrom (intloc (1 + 1)),(intloc (1 + 1)))),((AddTo (intloc (3 + 1)),(intloc 0)) ';' (SubFrom (intloc (1 + 1)),(intloc 0))))))) ';' (Times (intloc (3 + 1)),(((((((intloc (1 + 1)) := (intloc (2 + 1))) ';' (SubFrom (intloc (2 + 1)),(intloc 0))) ';' ((intloc (4 + 1)) := (fsloc 0),(intloc (1 + 1)))) ';' ((intloc (5 + 1)) := (fsloc 0),(intloc (2 + 1)))) ';' ((fsloc 0),(intloc (1 + 1)) := (intloc (5 + 1)))) ';' ((fsloc 0),(intloc (2 + 1)) := (intloc (4 + 1))))))),s) . (fsloc 0)) . j holds
x1 >= x2 ) )
theorem Th45: :: SCMISORT:45
theorem Th46: :: SCMISORT:46
theorem Th47: :: SCMISORT:47
theorem Th48: :: SCMISORT:48
theorem Th49: :: SCMISORT:49