Article SCMFSA8B, MML version 4.99.1005
:: SCMFSA8B:th 1
theorem
for b1 being Element of product the Object-Kind of SCM+FSA holds
IC SCM+FSA in proj1 b1;
:: SCMFSA8B:th 2
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being Instruction-Location of SCM+FSA holds
b2 in proj1 b1;
:: SCMFSA8B:th 3
theorem
for b1 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b2 being Element of product the Object-Kind of SCM+FSA
st b1 is_closed_on b2
holds insloc 0 in proj1 b1;
:: SCMFSA8B:th 4
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being Instruction-Location of SCM+FSA holds
(b1 +* Start-At b2) +* Start-At b3 = b1 +* Start-At b3;
:: SCMFSA8B:th 5
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
(Initialize b1) | (Int-Locations \/ FinSeq-Locations) = (b1 +* Initialized b2) | (Int-Locations \/ FinSeq-Locations);
:: SCMFSA8B:th 6
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
st b1 | (Int-Locations \/ FinSeq-Locations) = b2 | (Int-Locations \/ FinSeq-Locations) &
b3 is_closed_on b1
holds b3 is_closed_on b2;
:: SCMFSA8B:th 7
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
st b1 | (Int-Locations \/ FinSeq-Locations) = b2 | (Int-Locations \/ FinSeq-Locations)
holds b1 +* (b3 +* Start-At insloc 0),b2 +* (b4 +* Start-At insloc 0) equal_outside NAT;
:: SCMFSA8B:th 8
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
st b1 | (Int-Locations \/ FinSeq-Locations) = b2 | (Int-Locations \/ FinSeq-Locations) &
b3 is_closed_on b1 &
b3 is_halting_on b1
holds b3 is_closed_on b2 & b3 is_halting_on b2;
:: SCMFSA8B:th 9
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
b2 is_closed_on Initialize b1
iff
b2 is_closed_on b1 +* Initialized b3;
:: SCMFSA8B:th 10
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being Instruction-Location of SCM+FSA holds
b2 is_closed_on b1
iff
b2 is_closed_on b1 +* (b2 +* Start-At b4);
:: SCMFSA8B:th 11
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
st b3 +* Start-At insloc 0 c= b1 & b3 is_closed_on b1
for b4 being Element of NAT
st ProgramPart Relocated(b3,b4) c= b2 &
IC b2 = insloc b4 &
b1 | (Int-Locations \/ FinSeq-Locations) = b2 | (Int-Locations \/ FinSeq-Locations)
for b5 being Element of NAT holds
(IC Computation(b1,b5)) + b4 = IC Computation(b2,b5) &
IncAddr(CurInstr Computation(b1,b5),b4) = CurInstr Computation(b2,b5) &
(Computation(b1,b5)) | (Int-Locations \/ FinSeq-Locations) = (Computation(b2,b5)) | (Int-Locations \/ FinSeq-Locations);
:: SCMFSA8B:th 12
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being parahalting keeping_0 Element of the Instructions of SCM+FSA
for b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being Int-Location holds
(IExec(b2 ';' b3,b1)) . b4 = (IExec(b3,Exec(b2,Initialize b1))) . b4;
:: SCMFSA8B:th 13
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being parahalting keeping_0 Element of the Instructions of SCM+FSA
for b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being FinSeq-Location holds
(IExec(b2 ';' b3,b1)) . b4 = (IExec(b3,Exec(b2,Initialize b1))) . b4;
:: SCMFSA8B:funcnot 1 => SCMFSA8B:func 1
definition
let a1 be Int-Location;
let a2, a3 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
func if=0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCM+FSA equals
((((a1 =0_goto insloc ((card a3) + 3)) ';' a3) ';' Goto insloc ((card a2) + 1)) ';' a2) ';' SCM+FSA-Stop;
end;
:: SCMFSA8B:def 1
theorem
for b1 being Int-Location
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
if=0(b1,b2,b3) = ((((b1 =0_goto insloc ((card b3) + 3)) ';' b3) ';' Goto insloc ((card b2) + 1)) ';' b2) ';' SCM+FSA-Stop;
:: SCMFSA8B:funcnot 2 => SCMFSA8B:func 2
definition
let a1 be Int-Location;
let a2, a3 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
func if>0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCM+FSA equals
((((a1 >0_goto insloc ((card a3) + 3)) ';' a3) ';' Goto insloc ((card a2) + 1)) ';' a2) ';' SCM+FSA-Stop;
end;
:: SCMFSA8B:def 2
theorem
for b1 being Int-Location
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
if>0(b1,b2,b3) = ((((b1 >0_goto insloc ((card b3) + 3)) ';' b3) ';' Goto insloc ((card b2) + 1)) ';' b2) ';' SCM+FSA-Stop;
:: SCMFSA8B:funcnot 3 => SCMFSA8B:func 3
definition
let a1 be Int-Location;
let a2, a3 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
func if<0(A1,A2,A3) -> finite programmed initial Element of sproduct the Object-Kind of SCM+FSA equals
if=0(a1,a3,if>0(a1,a3,a2));
end;
:: SCMFSA8B:def 3
theorem
for b1 being Int-Location
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
if<0(b1,b2,b3) = if=0(b1,b3,if>0(b1,b3,b2));
:: SCMFSA8B:th 14
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being Int-Location holds
card if=0(b3,b1,b2) = ((card b1) + card b2) + 4;
:: SCMFSA8B:th 15
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being Int-Location holds
card if>0(b3,b1,b2) = ((card b1) + card b2) + 4;
:: SCMFSA8B:th 16
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 = 0 & b2 is_closed_on b1 & b2 is_halting_on b1
holds if=0(b4,b2,b3) is_closed_on b1 & if=0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 17
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 = 0 & b2 is_closed_on Initialize b1 & b2 is_halting_on Initialize b1
holds IExec(if=0(b4,b2,b3),b1) = (IExec(b2,b1)) +* Start-At insloc (((card b2) + card b3) + 3);
:: SCMFSA8B:th 18
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 <> 0 & b3 is_closed_on b1 & b3 is_halting_on b1
holds if=0(b4,b2,b3) is_closed_on b1 & if=0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 19
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being read-write Int-Location
for b4 being Element of product the Object-Kind of SCM+FSA
st b4 . b3 <> 0 & b2 is_closed_on Initialize b4 & b2 is_halting_on Initialize b4
holds IExec(if=0(b3,b1,b2),b4) = (IExec(b2,b4)) +* Start-At insloc (((card b1) + card b2) + 3);
:: SCMFSA8B:th 20
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location holds
if=0(b4,b2,b3) is parahalting &
(b1 . b4 = 0 implies IExec(if=0(b4,b2,b3),b1) = (IExec(b2,b1)) +* Start-At insloc (((card b2) + card b3) + 3)) &
(b1 . b4 = 0 or IExec(if=0(b4,b2,b3),b1) = (IExec(b3,b1)) +* Start-At insloc (((card b2) + card b3) + 3));
:: SCMFSA8B:th 21
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location holds
IC IExec(if=0(b4,b2,b3),b1) = insloc (((card b2) + card b3) + 3) &
(b1 . b4 = 0 implies (for b5 being Int-Location holds
(IExec(if=0(b4,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5) &
(for b5 being FinSeq-Location holds
(IExec(if=0(b4,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5)) &
(b1 . b4 = 0 or (for b5 being Int-Location holds
(IExec(if=0(b4,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5) &
(for b5 being FinSeq-Location holds
(IExec(if=0(b4,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5));
:: SCMFSA8B:th 22
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st 0 < b1 . b4 & b2 is_closed_on b1 & b2 is_halting_on b1
holds if>0(b4,b2,b3) is_closed_on b1 & if>0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 23
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being read-write Int-Location
for b4 being Element of product the Object-Kind of SCM+FSA
st 0 < b4 . b3 & b1 is_closed_on Initialize b4 & b1 is_halting_on Initialize b4
holds IExec(if>0(b3,b1,b2),b4) = (IExec(b1,b4)) +* Start-At insloc (((card b1) + card b2) + 3);
:: SCMFSA8B:th 24
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 <= 0 & b3 is_closed_on b1 & b3 is_halting_on b1
holds if>0(b4,b2,b3) is_closed_on b1 & if>0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 25
theorem
for b1, b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being read-write Int-Location
for b4 being Element of product the Object-Kind of SCM+FSA
st b4 . b3 <= 0 & b2 is_closed_on Initialize b4 & b2 is_halting_on Initialize b4
holds IExec(if>0(b3,b1,b2),b4) = (IExec(b2,b4)) +* Start-At insloc (((card b1) + card b2) + 3);
:: SCMFSA8B:th 26
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location holds
if>0(b4,b2,b3) is parahalting &
(b1 . b4 <= 0 or IExec(if>0(b4,b2,b3),b1) = (IExec(b2,b1)) +* Start-At insloc (((card b2) + card b3) + 3)) &
(b1 . b4 <= 0 implies IExec(if>0(b4,b2,b3),b1) = (IExec(b3,b1)) +* Start-At insloc (((card b2) + card b3) + 3));
:: SCMFSA8B:th 27
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location holds
IC IExec(if>0(b4,b2,b3),b1) = insloc (((card b2) + card b3) + 3) &
(b1 . b4 <= 0 or (for b5 being Int-Location holds
(IExec(if>0(b4,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5) &
(for b5 being FinSeq-Location holds
(IExec(if>0(b4,b2,b3),b1)) . b5 = (IExec(b2,b1)) . b5)) &
(b1 . b4 <= 0 implies (for b5 being Int-Location holds
(IExec(if>0(b4,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5) &
(for b5 being FinSeq-Location holds
(IExec(if>0(b4,b2,b3),b1)) . b5 = (IExec(b3,b1)) . b5));
:: SCMFSA8B:th 28
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 < 0 & b2 is_closed_on b1 & b2 is_halting_on b1
holds if<0(b4,b2,b3) is_closed_on b1 & if<0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 29
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 < 0 & b2 is_closed_on Initialize b1 & b2 is_halting_on Initialize b1
holds IExec(if<0(b4,b2,b3),b1) = (IExec(b2,b1)) +* Start-At insloc ((((card b2) + card b3) + card b3) + 7);
:: SCMFSA8B:th 30
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 = 0 & b3 is_closed_on b1 & b3 is_halting_on b1
holds if<0(b4,b2,b3) is_closed_on b1 & if<0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 31
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st b1 . b4 = 0 & b3 is_closed_on Initialize b1 & b3 is_halting_on Initialize b1
holds IExec(if<0(b4,b2,b3),b1) = (IExec(b3,b1)) +* Start-At insloc ((((card b2) + card b3) + card b3) + 7);
:: SCMFSA8B:th 32
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st 0 < b1 . b4 & b3 is_closed_on b1 & b3 is_halting_on b1
holds if<0(b4,b2,b3) is_closed_on b1 & if<0(b4,b2,b3) is_halting_on b1;
:: SCMFSA8B:th 33
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location
st 0 < b1 . b4 & b3 is_closed_on Initialize b1 & b3 is_halting_on Initialize b1
holds IExec(if<0(b4,b2,b3),b1) = (IExec(b3,b1)) +* Start-At insloc ((((card b2) + card b3) + card b3) + 7);
:: SCMFSA8B:th 34
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4 being read-write Int-Location holds
if<0(b4,b2,b3) is parahalting &
(0 <= b1 . b4 or IExec(if<0(b4,b2,b3),b1) = (IExec(b2,b1)) +* Start-At insloc ((((card b2) + card b3) + card b3) + 7)) &
(0 <= b1 . b4 implies IExec(if<0(b4,b2,b3),b1) = (IExec(b3,b1)) +* Start-At insloc ((((card b2) + card b3) + card b3) + 7));
:: SCMFSA8B:funcreg 1
registration
let a1, a2 be finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA;
let a3 be read-write Int-Location;
cluster if=0(a3,a1,a2) -> finite programmed initial parahalting;
end;
:: SCMFSA8B:funcreg 2
registration
let a1, a2 be finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA;
let a3 be read-write Int-Location;
cluster if>0(a3,a1,a2) -> finite programmed initial parahalting;
end;
:: SCMFSA8B:funcnot 4 => SCMFSA8B:func 4
definition
let a1, a2 be Int-Location;
let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
func if=0(A1,A2,A3,A4) -> finite programmed initial Element of sproduct the Object-Kind of SCM+FSA equals
(SubFrom(a1,a2)) ';' if=0(a1,a3,a4);
end;
:: SCMFSA8B:def 4
theorem
for b1, b2 being Int-Location
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
if=0(b1,b2,b3,b4) = (SubFrom(b1,b2)) ';' if=0(b1,b3,b4);
:: SCMFSA8B:funcnot 5 => SCMFSA8B:func 5
definition
let a1, a2 be Int-Location;
let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
func if>0(A1,A2,A3,A4) -> finite programmed initial Element of sproduct the Object-Kind of SCM+FSA equals
(SubFrom(a1,a2)) ';' if>0(a1,a3,a4);
end;
:: SCMFSA8B:def 5
theorem
for b1, b2 being Int-Location
for b3, b4 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
if>0(b1,b2,b3,b4) = (SubFrom(b1,b2)) ';' if>0(b1,b3,b4);
:: SCMFSA8B:funcnot 6 => SCMFSA8B:func 5
notation
let a1, a2 be Int-Location;
let a3, a4 be finite programmed initial Element of sproduct the Object-Kind of SCM+FSA;
synonym if<0(a2,a1,a3,a4) for if>0(a1,a2,a3,a4);
end;
:: SCMFSA8B:funcreg 3
registration
let a1, a2 be finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA;
let a3, a4 be read-write Int-Location;
cluster if=0(a3,a4,a1,a2) -> finite programmed initial parahalting;
end;
:: SCMFSA8B:funcreg 4
registration
let a1, a2 be finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA;
let a3, a4 be read-write Int-Location;
cluster if>0(a3,a4,a1,a2) -> finite programmed initial parahalting;
end;
:: SCMFSA8B:th 35
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA holds
(Result (b1 +* Initialized b2)) | (Int-Locations \/ FinSeq-Locations) = (IExec(b2,b1)) | (Int-Locations \/ FinSeq-Locations);
:: SCMFSA8B:th 36
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b3 being Int-Location holds
Result (b1 +* Initialized b2),IExec(b2,b1) equal_outside NAT;
:: SCMFSA8B:th 37
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being Element of the Instructions of SCM+FSA
for b4 being Int-Location
st (for b5 being Int-Location
st b4 <> b5
holds b1 . b5 = b2 . b5) &
(for b5 being FinSeq-Location holds
b1 . b5 = b2 . b5) &
b3 does_not_refer b4 &
IC b1 = IC b2
holds (for b5 being Int-Location
st b4 <> b5
holds (Exec(b3,b1)) . b5 = (Exec(b3,b2)) . b5) &
(for b5 being FinSeq-Location holds
(Exec(b3,b1)) . b5 = (Exec(b3,b2)) . b5) &
IC Exec(b3,b1) = IC Exec(b3,b2);
:: SCMFSA8B:th 38
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being Int-Location
st b3 does_not_refer b4 &
(for b5 being Int-Location
st b4 <> b5
holds b1 . b5 = b2 . b5) &
(for b5 being FinSeq-Location holds
b1 . b5 = b2 . b5) &
b3 is_closed_on b1 &
b3 is_halting_on b1
for b5 being Element of NAT holds
(for b6 being Int-Location
st b4 <> b6
holds (Computation(b1 +* (b3 +* Start-At insloc 0),b5)) . b6 = (Computation(b2 +* (b3 +* Start-At insloc 0),b5)) . b6) &
(for b6 being FinSeq-Location holds
(Computation(b1 +* (b3 +* Start-At insloc 0),b5)) . b6 = (Computation(b2 +* (b3 +* Start-At insloc 0),b5)) . b6) &
IC Computation(b1 +* (b3 +* Start-At insloc 0),b5) = IC Computation(b2 +* (b3 +* Start-At insloc 0),b5) &
CurInstr Computation(b1 +* (b3 +* Start-At insloc 0),b5) = CurInstr Computation(b2 +* (b3 +* Start-At insloc 0),b5);
:: SCMFSA8B:th 39
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being Instruction-Location of SCM+FSA holds
b2 is_closed_on b1 & b2 is_halting_on b1
iff
b2 is_closed_on b1 +* (b2 +* Start-At b4) & b2 is_halting_on b1 +* (b2 +* Start-At b4);
:: SCMFSA8B:th 40
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being Int-Location
st b3 does_not_refer b4 &
(for b5 being Int-Location
st b4 <> b5
holds b1 . b5 = b2 . b5) &
(for b5 being FinSeq-Location holds
b1 . b5 = b2 . b5) &
b3 is_closed_on b1 &
b3 is_halting_on b1
holds b3 is_closed_on b2 & b3 is_halting_on b2;
:: SCMFSA8B:th 41
theorem
for b1, b2 being Element of product the Object-Kind of SCM+FSA
for b3 being finite programmed initial Element of sproduct the Object-Kind of SCM+FSA
for b4 being Int-Location
st (for b5 being read-write Int-Location
st b4 <> b5
holds b1 . b5 = b2 . b5) &
(for b5 being FinSeq-Location holds
b1 . b5 = b2 . b5) &
b3 does_not_refer b4 &
b3 is_closed_on Initialize b1 &
b3 is_halting_on Initialize b1
holds (for b5 being Int-Location
st b4 <> b5
holds (IExec(b3,b1)) . b5 = (IExec(b3,b2)) . b5) &
(for b5 being FinSeq-Location holds
(IExec(b3,b1)) . b5 = (IExec(b3,b2)) . b5) &
IC IExec(b3,b1) = IC IExec(b3,b2);
:: SCMFSA8B:th 42
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4, b5 being read-write Int-Location
st b2 does_not_refer b4 & b3 does_not_refer b4
holds IC IExec(if=0(b4,b5,b2,b3),b1) = insloc (((card b2) + card b3) + 5) &
(b1 . b4 = b1 . b5 implies (for b6 being Int-Location
st b4 <> b6
holds (IExec(if=0(b4,b5,b2,b3),b1)) . b6 = (IExec(b2,b1)) . b6) &
(for b6 being FinSeq-Location holds
(IExec(if=0(b4,b5,b2,b3),b1)) . b6 = (IExec(b2,b1)) . b6)) &
(b1 . b4 = b1 . b5 or (for b6 being Int-Location
st b4 <> b6
holds (IExec(if=0(b4,b5,b2,b3),b1)) . b6 = (IExec(b3,b1)) . b6) &
(for b6 being FinSeq-Location holds
(IExec(if=0(b4,b5,b2,b3),b1)) . b6 = (IExec(b3,b1)) . b6));
:: SCMFSA8B:th 43
theorem
for b1 being Element of product the Object-Kind of SCM+FSA
for b2, b3 being finite programmed initial parahalting Element of sproduct the Object-Kind of SCM+FSA
for b4, b5 being read-write Int-Location
st b2 does_not_refer b4 & b3 does_not_refer b4
holds IC IExec(if>0(b4,b5,b2,b3),b1) = insloc (((card b2) + card b3) + 5) &
(b1 . b4 <= b1 . b5 or (for b6 being Int-Location
st b4 <> b6
holds (IExec(if>0(b4,b5,b2,b3),b1)) . b6 = (IExec(b2,b1)) . b6) &
(for b6 being FinSeq-Location holds
(IExec(if>0(b4,b5,b2,b3),b1)) . b6 = (IExec(b2,b1)) . b6)) &
(b1 . b4 <= b1 . b5 implies (for b6 being Int-Location
st b4 <> b6
holds (IExec(if>0(b4,b5,b2,b3),b1)) . b6 = (IExec(b3,b1)) . b6) &
(for b6 being FinSeq-Location holds
(IExec(if>0(b4,b5,b2,b3),b1)) . b6 = (IExec(b3,b1)) . b6));