:: SCMRING3 semantic presentation

registration
cluster INT -> infinite ;
coherence
not INT is finite
by FINSET_1:13, NUMBERS:17;
end;

registration
cluster INT.Ring -> infinite good ;
coherence
( not INT.Ring is finite & INT.Ring is good )
proof end;
end;

registration
cluster strict infinite 1-sorted ;
existence
ex b1 being 1-sorted st
( b1 is strict & not b1 is finite )
proof end;
end;

registration
cluster infinite strict good L9();
existence
ex b1 being Ring st
( b1 is strict & not b1 is finite & b1 is good )
proof end;
end;

theorem Th1: :: SCMRING3:1
for b1 being good Ring
for b2 being Data-Location of b1 holds ObjectKind b2 = the carrier of b1
proof end;

definition
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
let c4, c5 be Element of c1;
redefine func --> as c2,c3 --> c4,c5 -> FinPartState of SCM a1;
coherence
c2,c3 --> c4,c5 is FinPartState of SCM c1
proof end;
end;

theorem Th2: :: SCMRING3:2
for b1 being good Ring
for b2 being Data-Location of b1 holds not b2 in the Instruction-Locations of (SCM b1)
proof end;

theorem Th3: :: SCMRING3:3
for b1 being good Ring
for b2 being Data-Location of b1 holds b2 <> IC (SCM b1)
proof end;

theorem Th4: :: SCMRING3:4
for b1 being good Ring holds SCM-Data-Loc <> the Instruction-Locations of (SCM b1)
proof end;

theorem Th5: :: SCMRING3:5
for b1 being good Ring
for b2 being Object of (SCM b1) holds
( b2 = IC (SCM b1) or b2 in the Instruction-Locations of (SCM b1) or b2 is Data-Location of b1 )
proof end;

theorem Th6: :: SCMRING3:6
for b1 being good Ring
for b2, b3 being Instruction-Location of (SCM b1) st b2 <> b3 holds
Next b2 <> Next b3
proof end;

theorem Th7: :: SCMRING3:7
for b1 being good Ring
for b2 being Data-Location of b1
for b3, b4 being State of (SCM b1) st b3,b4 equal_outside the Instruction-Locations of (SCM b1) holds
b3 . b2 = b4 . b2
proof end;

theorem Th8: :: SCMRING3:8
for b1 being good Ring holds InsCode (halt (SCM b1)) = 0
proof end;

theorem Th9: :: SCMRING3:9
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds InsCode (b2 := b3) = 1
proof end;

theorem Th10: :: SCMRING3:10
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds InsCode (AddTo b2,b3) = 2
proof end;

theorem Th11: :: SCMRING3:11
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds InsCode (SubFrom b2,b3) = 3
proof end;

theorem Th12: :: SCMRING3:12
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds InsCode (MultBy b2,b3) = 4
proof end;

theorem Th13: :: SCMRING3:13
for b1 being good Ring
for b2 being Element of b1
for b3 being Data-Location of b1 holds InsCode (b3 := b2) = 5
proof end;

theorem Th14: :: SCMRING3:14
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds InsCode (goto b2) = 6
proof end;

theorem Th15: :: SCMRING3:15
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1) holds InsCode (b2 =0_goto b3) = 7
proof end;

theorem Th16: :: SCMRING3:16
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 0 holds
b2 = halt (SCM b1)
proof end;

theorem Th17: :: SCMRING3:17
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 1 holds
ex b3, b4 being Data-Location of b1 st b2 = b3 := b4
proof end;

theorem Th18: :: SCMRING3:18
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 2 holds
ex b3, b4 being Data-Location of b1 st b2 = AddTo b3,b4
proof end;

theorem Th19: :: SCMRING3:19
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 3 holds
ex b3, b4 being Data-Location of b1 st b2 = SubFrom b3,b4
proof end;

theorem Th20: :: SCMRING3:20
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 4 holds
ex b3, b4 being Data-Location of b1 st b2 = MultBy b3,b4
proof end;

theorem Th21: :: SCMRING3:21
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 5 holds
ex b3 being Data-Location of b1ex b4 being Element of b1 st b2 = b3 := b4
proof end;

theorem Th22: :: SCMRING3:22
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 6 holds
ex b3 being Instruction-Location of (SCM b1) st b2 = goto b3
proof end;

theorem Th23: :: SCMRING3:23
for b1 being good Ring
for b2 being Instruction of (SCM b1) st InsCode b2 = 7 holds
ex b3 being Data-Location of b1ex b4 being Instruction-Location of (SCM b1) st b2 = b3 =0_goto b4
proof end;

Lemma24: for b1, b2 being set st b1 in dom <*b2*> holds
b1 = 1
proof end;

Lemma25: for b1, b2, b3 being set holds
( not b1 in dom <*b2,b3*> or b1 = 1 or b1 = 2 )
proof end;

Lemma26: for b1 being good Ring
for b2 being InsType of (SCM b1) holds
( b2 = 0 or b2 = 1 or b2 = 2 or b2 = 3 or b2 = 4 or b2 = 5 or b2 = 6 or b2 = 7 )
proof end;

theorem Th24: :: SCMRING3:24
for b1 being good Ring holds AddressPart (halt (SCM b1)) = {}
proof end;

theorem Th25: :: SCMRING3:25
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds AddressPart (b2 := b3) = <*b2,b3*> by MCART_1:def 2;

theorem Th26: :: SCMRING3:26
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds AddressPart (AddTo b2,b3) = <*b2,b3*> by MCART_1:def 2;

theorem Th27: :: SCMRING3:27
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds AddressPart (SubFrom b2,b3) = <*b2,b3*> by MCART_1:def 2;

theorem Th28: :: SCMRING3:28
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds AddressPart (MultBy b2,b3) = <*b2,b3*> by MCART_1:def 2;

theorem Th29: :: SCMRING3:29
for b1 being good Ring
for b2 being Element of b1
for b3 being Data-Location of b1 holds AddressPart (b3 := b2) = <*b3,b2*> by MCART_1:def 2;

theorem Th30: :: SCMRING3:30
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds AddressPart (goto b2) = <*b2*> by MCART_1:def 2;

theorem Th31: :: SCMRING3:31
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1) holds AddressPart (b2 =0_goto b3) = <*b3,b2*> by MCART_1:def 2;

theorem Th32: :: SCMRING3:32
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 0 holds
AddressParts b2 = {0}
proof end;

registration
let c1 be good Ring;
let c2 be InsType of (SCM c1);
cluster AddressParts a2 -> non empty ;
coherence
not AddressParts c2 is empty
proof end;
end;

theorem Th33: :: SCMRING3:33
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 1 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th34: :: SCMRING3:34
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 2 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th35: :: SCMRING3:35
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 3 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th36: :: SCMRING3:36
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 4 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th37: :: SCMRING3:37
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 5 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th38: :: SCMRING3:38
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 6 holds
dom (PA (AddressParts b2)) = {1}
proof end;

theorem Th39: :: SCMRING3:39
for b1 being good Ring
for b2 being InsType of (SCM b1) st b2 = 7 holds
dom (PA (AddressParts b2)) = {1,2}
proof end;

theorem Th40: :: SCMRING3:40
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (b2 := b3)))) . 1 = SCM-Data-Loc
proof end;

theorem Th41: :: SCMRING3:41
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (b2 := b3)))) . 2 = SCM-Data-Loc
proof end;

theorem Th42: :: SCMRING3:42
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (AddTo b2,b3)))) . 1 = SCM-Data-Loc
proof end;

theorem Th43: :: SCMRING3:43
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (AddTo b2,b3)))) . 2 = SCM-Data-Loc
proof end;

theorem Th44: :: SCMRING3:44
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (SubFrom b2,b3)))) . 1 = SCM-Data-Loc
proof end;

theorem Th45: :: SCMRING3:45
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (SubFrom b2,b3)))) . 2 = SCM-Data-Loc
proof end;

theorem Th46: :: SCMRING3:46
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (MultBy b2,b3)))) . 1 = SCM-Data-Loc
proof end;

theorem Th47: :: SCMRING3:47
for b1 being good Ring
for b2, b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (MultBy b2,b3)))) . 2 = SCM-Data-Loc
proof end;

theorem Th48: :: SCMRING3:48
for b1 being good Ring
for b2 being Element of b1
for b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (b3 := b2)))) . 1 = SCM-Data-Loc
proof end;

theorem Th49: :: SCMRING3:49
for b1 being good Ring
for b2 being Element of b1
for b3 being Data-Location of b1 holds (PA (AddressParts (InsCode (b3 := b2)))) . 2 = the carrier of b1
proof end;

theorem Th50: :: SCMRING3:50
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds (PA (AddressParts (InsCode (goto b2)))) . 1 = the Instruction-Locations of (SCM b1)
proof end;

theorem Th51: :: SCMRING3:51
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1) holds (PA (AddressParts (InsCode (b2 =0_goto b3)))) . 1 = the Instruction-Locations of (SCM b1)
proof end;

theorem Th52: :: SCMRING3:52
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1) holds (PA (AddressParts (InsCode (b2 =0_goto b3)))) . 2 = SCM-Data-Loc
proof end;

Lemma56: for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite realistic AMI-Struct of b1
for b3, b4 being State of b2
for b5 being Instruction-Location of b2
for b6 being Element of ObjectKind (IC b2)
for b7 being Element of ObjectKind b5 st b6 = b5 & b4 = b3 +* ((IC b2),b5 --> b6,b7) holds
( b4 . b5 = b7 & IC b4 = b5 & IC (Following b4) = (Exec (b4 . (IC b4)),b4) . (IC b2) )
proof end;

Lemma57: for b1 being good Ring
for b2 being Instruction-Location of (SCM b1)
for b3 being Instruction of (SCM b1) st ( for b4 being State of (SCM b1) st IC b4 = b2 & b4 . b2 = b3 holds
(Exec b3,b4) . (IC (SCM b1)) = Next (IC b4) ) holds
NIC b3,b2 = {(Next b2)}
proof end;

Lemma58: for b1 being good Ring
for b2 being Instruction of (SCM b1) st ( for b3 being Instruction-Location of (SCM b1) holds NIC b2,b3 = {(Next b3)} ) holds
JUMP b2 is empty
proof end;

theorem Th53: :: SCMRING3:53
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds NIC (halt (SCM b1)),b2 = {b2}
proof end;

registration
let c1 be good Ring;
cluster JUMP (halt (SCM a1)) -> empty ;
coherence
JUMP (halt (SCM c1)) is empty
proof end;
end;

theorem Th54: :: SCMRING3:54
for b1 being good Ring
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of (SCM b1) holds NIC (b2 := b3),b4 = {(Next b4)}
proof end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster JUMP (a2 := a3) -> empty ;
coherence
JUMP (c2 := c3) is empty
proof end;
end;

theorem Th55: :: SCMRING3:55
for b1 being good Ring
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of (SCM b1) holds NIC (AddTo b2,b3),b4 = {(Next b4)}
proof end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster JUMP (AddTo a2,a3) -> empty ;
coherence
JUMP (AddTo c2,c3) is empty
proof end;
end;

theorem Th56: :: SCMRING3:56
for b1 being good Ring
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of (SCM b1) holds NIC (SubFrom b2,b3),b4 = {(Next b4)}
proof end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster JUMP (SubFrom a2,a3) -> empty ;
coherence
JUMP (SubFrom c2,c3) is empty
proof end;
end;

theorem Th57: :: SCMRING3:57
for b1 being good Ring
for b2, b3 being Data-Location of b1
for b4 being Instruction-Location of (SCM b1) holds NIC (MultBy b2,b3),b4 = {(Next b4)}
proof end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster JUMP (MultBy a2,a3) -> empty ;
coherence
JUMP (MultBy c2,c3) is empty
proof end;
end;

theorem Th58: :: SCMRING3:58
for b1 being good Ring
for b2 being Element of b1
for b3 being Data-Location of b1
for b4 being Instruction-Location of (SCM b1) holds NIC (b3 := b2),b4 = {(Next b4)}
proof end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Element of c1;
cluster JUMP (a2 := a3) -> empty ;
coherence
JUMP (c2 := c3) is empty
proof end;
end;

theorem Th59: :: SCMRING3:59
for b1 being good Ring
for b2, b3 being Instruction-Location of (SCM b1) holds NIC (goto b2),b3 = {b2}
proof end;

theorem Th60: :: SCMRING3:60
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds JUMP (goto b2) = {b2}
proof end;

registration
let c1 be good Ring;
let c2 be Instruction-Location of (SCM c1);
cluster JUMP (goto a2) -> non empty trivial ;
coherence
( not JUMP (goto c2) is empty & JUMP (goto c2) is trivial )
proof end;
end;

theorem Th61: :: SCMRING3:61
for b1 being good Ring
for b2 being Data-Location of b1
for b3, b4 being Instruction-Location of (SCM b1) holds
( b3 in NIC (b2 =0_goto b3),b4 & NIC (b2 =0_goto b3),b4 c= {b3,(Next b4)} )
proof end;

theorem Th62: :: SCMRING3:62
for b1 being good non trivial Ring
for b2 being Data-Location of b1
for b3, b4 being Instruction-Location of (SCM b1) holds NIC (b2 =0_goto b4),b3 = {b4,(Next b3)}
proof end;

theorem Th63: :: SCMRING3:63
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1) holds JUMP (b2 =0_goto b3) = {b3}
proof end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Instruction-Location of (SCM c1);
cluster JUMP (a2 =0_goto a3) -> non empty trivial ;
coherence
( not JUMP (c2 =0_goto c3) is empty & JUMP (c2 =0_goto c3) is trivial )
proof end;
end;

theorem Th64: :: SCMRING3:64
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds SUCC b2 = {b2,(Next b2)}
proof end;

theorem Th65: :: SCMRING3:65
for b1 being good Ring
for b2 being Function of NAT ,the Instruction-Locations of (SCM b1) st ( for b3 being Nat holds b2 . b3 = il. b3 ) holds
( b2 is bijective & ( for b3 being Nat holds
( b2 . (b3 + 1) in SUCC (b2 . b3) & ( for b4 being Nat st b2 . b4 in SUCC (b2 . b3) holds
b3 <= b4 ) ) ) )
proof end;

registration
let c1 be good Ring;
cluster SCM a1 -> standard ;
coherence
SCM c1 is standard
proof end;
end;

theorem Th66: :: SCMRING3:66
for b1 being good Ring
for b2 being natural number holds il. (SCM b1),b2 = il. b2
proof end;

theorem Th67: :: SCMRING3:67
for b1 being good Ring
for b2 being natural number holds Next (il. (SCM b1),b2) = il. (SCM b1),(b2 + 1)
proof end;

theorem Th68: :: SCMRING3:68
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1) holds Next b2 = NextLoc b2
proof end;

definition
let c1 be good Ring;
let c2 be Nat;
func dl. c1,c2 -> Data-Location of a1 equals :: SCMRING3:def 1
dl. a2;
coherence
dl. c2 is Data-Location of c1
proof end;
end;

:: deftheorem Def1 defines dl. SCMRING3:def 1 :
for b1 being good Ring
for b2 being Nat holds dl. b1,b2 = dl. b2;

registration
let c1 be good Ring;
cluster InsCode (halt (SCM a1)) -> jump-only ;
coherence
InsCode (halt (SCM c1)) is jump-only
proof end;
end;

registration
let c1 be good Ring;
cluster halt (SCM a1) -> jump-only ;
coherence
halt (SCM c1) is jump-only
proof end;
end;

registration
let c1 be good Ring;
let c2 be Instruction-Location of (SCM c1);
cluster InsCode (goto a2) -> jump-only ;
coherence
InsCode (goto c2) is jump-only
proof end;
end;

registration
let c1 be good Ring;
let c2 be Instruction-Location of (SCM c1);
cluster goto a2 -> jump-only ;
coherence
goto c2 is jump-only
proof end;
end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Instruction-Location of (SCM c1);
cluster InsCode (a2 =0_goto a3) -> jump-only ;
coherence
InsCode (c2 =0_goto c3) is jump-only
proof end;
end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Instruction-Location of (SCM c1);
cluster a2 =0_goto a3 -> jump-only ;
coherence
c2 =0_goto c3 is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster InsCode (a2 := a3) -> non jump-only ;
coherence
not InsCode (c2 := c3) is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster a2 := a3 -> non jump-only ;
coherence
not c2 := c3 is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster InsCode (AddTo a2,a3) -> non jump-only ;
coherence
not InsCode (AddTo c2,c3) is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster AddTo a2,a3 -> non jump-only ;
coherence
not AddTo c2,c3 is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster InsCode (SubFrom a2,a3) -> non jump-only ;
coherence
not InsCode (SubFrom c2,c3) is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster SubFrom a2,a3 -> non jump-only ;
coherence
not SubFrom c2,c3 is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster InsCode (MultBy a2,a3) -> non jump-only ;
coherence
not InsCode (MultBy c2,c3) is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2, c3 be Data-Location of c1;
cluster MultBy a2,a3 -> non jump-only ;
coherence
not MultBy c2,c3 is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2 be Data-Location of c1;
let c3 be Element of c1;
cluster InsCode (a2 := a3) -> non jump-only ;
coherence
not InsCode (c2 := c3) is jump-only
proof end;
end;

registration
let c1 be good non trivial Ring;
let c2 be Data-Location of c1;
let c3 be Element of c1;
cluster a2 := a3 -> non jump-only ;
coherence
not c2 := c3 is jump-only
proof end;
end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster a2 := a3 -> sequential ;
coherence
c2 := c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster AddTo a2,a3 -> sequential ;
coherence
AddTo c2,c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster SubFrom a2,a3 -> sequential ;
coherence
SubFrom c2,c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2, c3 be Data-Location of c1;
cluster MultBy a2,a3 -> sequential ;
coherence
MultBy c2,c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Element of c1;
cluster a2 := a3 -> sequential ;
coherence
c2 := c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2 be Instruction-Location of (SCM c1);
cluster goto a2 -> jump-only non sequential ;
coherence
not goto c2 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Instruction-Location of (SCM c1);
cluster a2 =0_goto a3 -> jump-only non sequential ;
coherence
not c2 =0_goto c3 is sequential
proof end;
end;

registration
let c1 be good Ring;
let c2 be Instruction-Location of (SCM c1);
cluster goto a2 -> jump-only non sequential non ins-loc-free ;
coherence
not goto c2 is ins-loc-free
proof end;
end;

registration
let c1 be good Ring;
let c2 be Data-Location of c1;
let c3 be Instruction-Location of (SCM c1);
cluster a2 =0_goto a3 -> jump-only non sequential non ins-loc-free ;
coherence
not c2 =0_goto c3 is ins-loc-free
proof end;
end;

registration
let c1 be good Ring;
cluster SCM a1 -> standard homogeneous with_explicit_jumps without_implicit_jumps ;
coherence
( SCM c1 is homogeneous & SCM c1 is with_explicit_jumps & SCM c1 is without_implicit_jumps )
proof end;
end;

registration
let c1 be good Ring;
cluster SCM a1 -> standard homogeneous with_explicit_jumps without_implicit_jumps regular ;
coherence
SCM c1 is regular
proof end;
end;

theorem Th69: :: SCMRING3:69
for b1 being good Ring
for b2 being Instruction-Location of (SCM b1)
for b3 being natural number holds IncAddr (goto b2),b3 = goto (il. (SCM b1),((locnum b2) + b3))
proof end;

theorem Th70: :: SCMRING3:70
for b1 being good Ring
for b2 being Data-Location of b1
for b3 being Instruction-Location of (SCM b1)
for b4 being natural number holds IncAddr (b2 =0_goto b3),b4 = b2 =0_goto (il. (SCM b1),((locnum b3) + b4))
proof end;

registration
let c1 be good Ring;
cluster SCM a1 -> standard homogeneous with_explicit_jumps without_implicit_jumps regular IC-good Exec-preserving ;
coherence
( SCM c1 is IC-good & SCM c1 is Exec-preserving )
proof end;
end;