:: AMI_7 semantic presentation

theorem Th1: :: AMI_7:1
for b1, b2, b3 being set st b1 <> b2 & b1 <> b3 holds
{b1,b2,b3} \ {b1} = {b2,b3}
proof end;

theorem Th2: :: AMI_7:2
for b1 being with_non-empty_elements set
for b2 being non empty non void AMI-Struct of b1
for b3 being State of b2
for b4 being Object of b2 holds b3 . b4 in ObjectKind b4
proof end;

theorem Th3: :: AMI_7:3
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 being State of b2
for b4 being Instruction-Location of b2
for b5 being Element of ObjectKind (IC b2) holds (b3 +* (IC b2),b5) . b4 = b3 . b4
proof end;

definition
let c1 be with_non-empty_elements set ;
let c2 be non empty non void IC-Ins-separated definite AMI-Struct of c1;
let c3 be State of c2;
let c4 be Object of c2;
let c5 be Element of ObjectKind c4;
redefine func +* as c3 +* c4,c5 -> State of a2;
coherence
c3 +* c4,c5 is State of c2
proof end;
end;

theorem Th4: :: AMI_7:4
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated steady-programmed definite AMI-Struct of b1
for b3 being State of b2
for b4 being Object of b2
for b5 being Instruction-Location of b2
for b6 being Instruction of b2
for b7 being Element of ObjectKind b4 st b5 <> b4 holds
(Exec b6,b3) . b5 = (Exec b6,(b3 +* b4,b7)) . b5
proof end;

theorem Th5: :: AMI_7:5
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being State of b2
for b4 being Object of b2
for b5 being Element of ObjectKind b4 st b4 <> IC b2 holds
IC b3 = IC (b3 +* b4,b5) by FUNCT_7:34;

theorem Th6: :: AMI_7:6
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite standard AMI-Struct of b1
for b3 being Instruction of b2
for b4 being State of b2
for b5 being Object of b2
for b6 being Element of ObjectKind b5 st b3 is sequential & b5 <> IC b2 holds
IC (Exec b3,b4) = IC (Exec b3,(b4 +* b5,b6))
proof end;

theorem Th7: :: AMI_7:7
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite standard AMI-Struct of b1
for b3 being Instruction of b2
for b4 being State of b2
for b5 being Object of b2
for b6 being Element of ObjectKind b5 st b3 is sequential & b5 <> IC b2 holds
IC (Exec b3,(b4 +* b5,b6)) = IC ((Exec b3,b4) +* b5,b6)
proof end;

theorem Th8: :: AMI_7:8
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated steady-programmed definite standard AMI-Struct of b1
for b3 being Instruction of b2
for b4 being State of b2
for b5 being Object of b2
for b6 being Element of ObjectKind b5
for b7 being Instruction-Location of b2 holds (Exec b3,(b4 +* b5,b6)) . b7 = ((Exec b3,b4) +* b5,b6) . b7
proof end;

definition
let c1 be set ;
let c2 be AMI-Struct of c1;
attr a2 is with_non_trivial_Instructions means :Def1: :: AMI_7:def 1
not the Instructions of a2 is trivial;
end;

:: deftheorem Def1 defines with_non_trivial_Instructions AMI_7:def 1 :
for b1 being set
for b2 being AMI-Struct of b1 holds
( b2 is with_non_trivial_Instructions iff not the Instructions of b2 is trivial );

definition
let c1 be set ;
let c2 be non empty AMI-Struct of c1;
attr a2 is with_non_trivial_ObjectKinds means :Def2: :: AMI_7:def 2
for b1 being Object of a2 holds not ObjectKind b1 is trivial;
end;

:: deftheorem Def2 defines with_non_trivial_ObjectKinds AMI_7:def 2 :
for b1 being set
for b2 being non empty AMI-Struct of b1 holds
( b2 is with_non_trivial_ObjectKinds iff for b3 being Object of b2 holds not ObjectKind b3 is trivial );

registration
let c1 be with_non-empty_elements set ;
cluster STC a1 -> with_non_trivial_ObjectKinds ;
coherence
STC c1 is with_non_trivial_ObjectKinds
proof end;
end;

registration
let c1 be with_non-empty_elements set ;
cluster non empty non void halting IC-Ins-separated steady-programmed definite realistic programmable standard with_explicit_jumps without_implicit_jumps regular IC-good Exec-preserving with_non_trivial_Instructions with_non_trivial_ObjectKinds AMI-Struct of a1;
existence
ex b1 being non empty non void IC-Ins-separated definite standard regular AMI-Struct of c1 st
( b1 is halting & b1 is realistic & b1 is steady-programmed & b1 is programmable & b1 is with_explicit_jumps & b1 is without_implicit_jumps & b1 is IC-good & b1 is Exec-preserving & b1 is with_non_trivial_ObjectKinds & b1 is with_non_trivial_Instructions )
proof end;
end;

registration
let c1 be with_non-empty_elements set ;
cluster non empty non void definite with_non_trivial_ObjectKinds -> non empty non void definite with_non_trivial_Instructions AMI-Struct of a1;
coherence
for b1 being non empty non void definite AMI-Struct of c1 st b1 is with_non_trivial_ObjectKinds holds
b1 is with_non_trivial_Instructions
proof end;
end;

registration
let c1 be with_non-empty_elements set ;
cluster non empty IC-Ins-separated with_non_trivial_ObjectKinds -> non empty IC-Ins-separated with-non-trivial-Instruction-Locations AMI-Struct of a1;
coherence
for b1 being non empty IC-Ins-separated AMI-Struct of c1 st b1 is with_non_trivial_ObjectKinds holds
b1 is with-non-trivial-Instruction-Locations
proof end;
end;

registration
let c1 be with_non-empty_elements set ;
let c2 be non empty with_non_trivial_ObjectKinds AMI-Struct of c1;
let c3 be Object of c2;
cluster ObjectKind a3 -> non trivial ;
coherence
not ObjectKind c3 is trivial
by Def2;
end;

registration
let c1 be with_non-empty_elements set ;
let c2 be with_non_trivial_Instructions AMI-Struct of c1;
cluster the Instructions of a2 -> non trivial ;
coherence
not the Instructions of c2 is trivial
by Def1;
end;

registration
let c1 be with_non-empty_elements set ;
let c2 be non empty IC-Ins-separated with-non-trivial-Instruction-Locations AMI-Struct of c1;
cluster ObjectKind (IC a2) -> non trivial ;
coherence
not ObjectKind (IC c2) is trivial
by AMI_1:def 11;
end;

definition
let c1 be with_non-empty_elements set ;
let c2 be non empty non void AMI-Struct of c1;
let c3 be Instruction of c2;
func Output c3 -> Subset of a2 means :Def3: :: AMI_7:def 3
for b1 being Object of a2 holds
( b1 in a4 iff ex b2 being State of a2 st b2 . b1 <> (Exec a3,b2) . b1 );
existence
ex b1 being Subset of c2 st
for b2 being Object of c2 holds
( b2 in b1 iff ex b3 being State of c2 st b3 . b2 <> (Exec c3,b3) . b2 )
proof end;
uniqueness
for b1, b2 being Subset of c2 st ( for b3 being Object of c2 holds
( b3 in b1 iff ex b4 being State of c2 st b4 . b3 <> (Exec c3,b4) . b3 ) ) & ( for b3 being Object of c2 holds
( b3 in b2 iff ex b4 being State of c2 st b4 . b3 <> (Exec c3,b4) . b3 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines Output AMI_7:def 3 :
for b1 being with_non-empty_elements set
for b2 being non empty non void AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Subset of b2 holds
( b4 = Output b3 iff for b5 being Object of b2 holds
( b5 in b4 iff ex b6 being State of b2 st b6 . b5 <> (Exec b3,b6) . b5 ) );

definition
let c1 be with_non-empty_elements set ;
let c2 be non empty non void IC-Ins-separated definite AMI-Struct of c1;
let c3 be Instruction of c2;
func Out_\_Inp c3 -> Subset of a2 means :Def4: :: AMI_7:def 4
for b1 being Object of a2 holds
( b1 in a4 iff for b2 being State of a2
for b3 being Element of ObjectKind b1 holds Exec a3,b2 = Exec a3,(b2 +* b1,b3) );
existence
ex b1 being Subset of c2 st
for b2 being Object of c2 holds
( b2 in b1 iff for b3 being State of c2
for b4 being Element of ObjectKind b2 holds Exec c3,b3 = Exec c3,(b3 +* b2,b4) )
proof end;
uniqueness
for b1, b2 being Subset of c2 st ( for b3 being Object of c2 holds
( b3 in b1 iff for b4 being State of c2
for b5 being Element of ObjectKind b3 holds Exec c3,b4 = Exec c3,(b4 +* b3,b5) ) ) & ( for b3 being Object of c2 holds
( b3 in b2 iff for b4 being State of c2
for b5 being Element of ObjectKind b3 holds Exec c3,b4 = Exec c3,(b4 +* b3,b5) ) ) holds
b1 = b2
proof end;
func Out_U_Inp c3 -> Subset of a2 means :Def5: :: AMI_7:def 5
for b1 being Object of a2 holds
( b1 in a4 iff ex b2 being State of a2ex b3 being Element of ObjectKind b1 st Exec a3,(b2 +* b1,b3) <> (Exec a3,b2) +* b1,b3 );
existence
ex b1 being Subset of c2 st
for b2 being Object of c2 holds
( b2 in b1 iff ex b3 being State of c2ex b4 being Element of ObjectKind b2 st Exec c3,(b3 +* b2,b4) <> (Exec c3,b3) +* b2,b4 )
proof end;
uniqueness
for b1, b2 being Subset of c2 st ( for b3 being Object of c2 holds
( b3 in b1 iff ex b4 being State of c2ex b5 being Element of ObjectKind b3 st Exec c3,(b4 +* b3,b5) <> (Exec c3,b4) +* b3,b5 ) ) & ( for b3 being Object of c2 holds
( b3 in b2 iff ex b4 being State of c2ex b5 being Element of ObjectKind b3 st Exec c3,(b4 +* b3,b5) <> (Exec c3,b4) +* b3,b5 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def4 defines Out_\_Inp AMI_7:def 4 :
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Subset of b2 holds
( b4 = Out_\_Inp b3 iff for b5 being Object of b2 holds
( b5 in b4 iff for b6 being State of b2
for b7 being Element of ObjectKind b5 holds Exec b3,b6 = Exec b3,(b6 +* b5,b7) ) );

:: deftheorem Def5 defines Out_U_Inp AMI_7:def 5 :
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Subset of b2 holds
( b4 = Out_U_Inp b3 iff for b5 being Object of b2 holds
( b5 in b4 iff ex b6 being State of b2ex b7 being Element of ObjectKind b5 st Exec b3,(b6 +* b5,b7) <> (Exec b3,b6) +* b5,b7 ) );

definition
let c1 be with_non-empty_elements set ;
let c2 be non empty non void IC-Ins-separated definite AMI-Struct of c1;
let c3 be Instruction of c2;
func Input c3 -> Subset of a2 equals :: AMI_7:def 6
(Out_U_Inp a3) \ (Out_\_Inp a3);
coherence
(Out_U_Inp c3) \ (Out_\_Inp c3) is Subset of c2
;
end;

:: deftheorem Def6 defines Input AMI_7:def 6 :
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 holds Input b3 = (Out_U_Inp b3) \ (Out_\_Inp b3);

theorem Th9: :: AMI_7:9
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 holds Out_\_Inp b3 misses Input b3 by XBOOLE_1:85;

theorem Th10: :: AMI_7:10
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite with_non_trivial_ObjectKinds AMI-Struct of b1
for b3 being Instruction of b2 holds Out_\_Inp b3 c= Output b3
proof end;

theorem Th11: :: AMI_7:11
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 holds Output b3 c= Out_U_Inp b3
proof end;

theorem Th12: :: AMI_7:12
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 holds Input b3 c= Out_U_Inp b3 by XBOOLE_1:36;

theorem Th13: :: AMI_7:13
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite with_non_trivial_ObjectKinds AMI-Struct of b1
for b3 being Instruction of b2 holds Out_\_Inp b3 = (Output b3) \ (Input b3)
proof end;

theorem Th14: :: AMI_7:14
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite with_non_trivial_ObjectKinds AMI-Struct of b1
for b3 being Instruction of b2 holds Out_U_Inp b3 = (Output b3) \/ (Input b3)
proof end;

theorem Th15: :: AMI_7:15
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Object of b2 st ObjectKind b4 is trivial holds
not b4 in Out_U_Inp b3
proof end;

theorem Th16: :: AMI_7:16
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Object of b2 st ObjectKind b4 is trivial holds
not b4 in Input b3
proof end;

theorem Th17: :: AMI_7:17
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Object of b2 st ObjectKind b4 is trivial holds
not b4 in Output b3
proof end;

theorem Th18: :: AMI_7:18
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 holds
( b3 is halting iff Output b3 is empty )
proof end;

theorem Th19: :: AMI_7:19
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite with_non_trivial_ObjectKinds AMI-Struct of b1
for b3 being Instruction of b2 st b3 is halting holds
Out_\_Inp b3 is empty
proof end;

theorem Th20: :: AMI_7:20
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 st b3 is halting holds
Out_U_Inp b3 is empty
proof end;

theorem Th21: :: AMI_7:21
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 st b3 is halting holds
Input b3 is empty
proof end;

registration
let c1 be with_non-empty_elements set ;
let c2 be non empty non void halting IC-Ins-separated definite AMI-Struct of c1;
let c3 be halting Instruction of c2;
cluster Input a3 -> empty ;
coherence
Input c3 is empty
by Th21;
cluster Output a3 -> empty ;
coherence
Output c3 is empty
by Th18;
cluster Out_U_Inp a3 -> empty ;
coherence
Out_U_Inp c3 is empty
by Th20;
end;

registration
let c1 be with_non-empty_elements set ;
let c2 be non empty non void halting IC-Ins-separated definite with_non_trivial_ObjectKinds AMI-Struct of c1;
let c3 be halting Instruction of c2;
cluster Out_\_Inp a3 -> empty ;
coherence
Out_\_Inp c3 is empty
by Th19;
end;

theorem Th22: :: AMI_7:22
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated steady-programmed definite with_non_trivial_Instructions AMI-Struct of b1
for b3 being Instruction-Location of b2
for b4 being Instruction of b2 holds not b3 in Out_\_Inp b4
proof end;

theorem Th23: :: AMI_7:23
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite standard AMI-Struct of b1
for b3 being Instruction of b2 st b3 is sequential holds
not IC b2 in Out_\_Inp b3
proof end;

theorem Th24: :: AMI_7:24
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 st ex b4 being State of b2 st (Exec b3,b4) . (IC b2) <> IC b4 holds
IC b2 in Output b3 by Def3;

theorem Th25: :: AMI_7:25
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite standard AMI-Struct of b1
for b3 being Instruction of b2 st b3 is sequential holds
IC b2 in Output b3
proof end;

theorem Th26: :: AMI_7:26
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2 st ex b4 being State of b2 st (Exec b3,b4) . (IC b2) <> IC b4 holds
IC b2 in Out_U_Inp b3
proof end;

theorem Th27: :: AMI_7:27
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite standard AMI-Struct of b1
for b3 being Instruction of b2 st b3 is sequential holds
IC b2 in Out_U_Inp b3
proof end;

theorem Th28: :: AMI_7:28
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction-Location of b2
for b4 being Instruction of b2 st ( for b5 being State of b2
for b6 being programmed FinPartState of b2 holds Exec b4,(b5 +* b6) = (Exec b4,b5) +* b6 ) holds
not b3 in Out_U_Inp b4
proof end;

theorem Th29: :: AMI_7:29
for b1 being with_non-empty_elements set
for b2 being non empty non void IC-Ins-separated definite AMI-Struct of b1
for b3 being Instruction of b2
for b4 being Object of b2 st b3 is jump-only & b4 in Output b3 holds
b4 = IC b2
proof end;

theorem Th30: :: AMI_7:30
for b1 being Data-Location
for b2 being State of SCM
for b3 being Element of ObjectKind (IC SCM ) holds (b2 +* (IC SCM ),b3) . b1 = b2 . b1
proof end;

theorem Th31: :: AMI_7:31
for b1 being Instruction-Location of SCM holds b1 <> Next b1
proof end;

definition
let c1 be State of SCM ;
let c2 be Data-Location ;
let c3 be Integer;
redefine func +* as c1 +* c2,c3 -> State of SCM ;
coherence
c1 +* c2,c3 is State of SCM
proof end;
end;

consider c1 being State of SCM ;

Lemma31: dom c1 = the carrier of SCM
by AMI_3:36;

Lemma32: for b1 being Data-Location
for b2 being Integer holds b2 is Element of ObjectKind b1
proof end;

registration
cluster SCM -> with_non_trivial_Instructions with_non_trivial_ObjectKinds ;
coherence
SCM is with_non_trivial_ObjectKinds
proof end;
end;

theorem Th32: :: AMI_7:32
for b1 being Data-Location holds Out_\_Inp (b1 := b1) = {}
proof end;

theorem Th33: :: AMI_7:33
for b1, b2 being Data-Location st b1 <> b2 holds
Out_\_Inp (b1 := b2) = {b1}
proof end;

theorem Th34: :: AMI_7:34
for b1, b2 being Data-Location holds Out_\_Inp (AddTo b1,b2) = {}
proof end;

theorem Th35: :: AMI_7:35
for b1 being Data-Location holds Out_\_Inp (SubFrom b1,b1) = {b1}
proof end;

theorem Th36: :: AMI_7:36
for b1, b2 being Data-Location st b1 <> b2 holds
Out_\_Inp (SubFrom b1,b2) = {}
proof end;

theorem Th37: :: AMI_7:37
for b1, b2 being Data-Location holds Out_\_Inp (MultBy b1,b2) = {}
proof end;

theorem Th38: :: AMI_7:38
for b1 being Data-Location holds Out_\_Inp (Divide b1,b1) = {b1}
proof end;

theorem Th39: :: AMI_7:39
for b1, b2 being Data-Location st b1 <> b2 holds
Out_\_Inp (Divide b1,b2) = {}
proof end;

theorem Th40: :: AMI_7:40
for b1 being Instruction-Location of SCM holds Out_\_Inp (goto b1) = {(IC SCM )}
proof end;

consider c2 being State of SCM ;

Lemma42: dom c2 = the carrier of SCM
by AMI_3:36;

theorem Th41: :: AMI_7:41
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Out_\_Inp (b1 =0_goto b2) = {}
proof end;

theorem Th42: :: AMI_7:42
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Out_\_Inp (b1 >0_goto b2) = {}
proof end;

theorem Th43: :: AMI_7:43
for b1 being Data-Location holds Output (b1 := b1) = {(IC SCM )}
proof end;

theorem Th44: :: AMI_7:44
for b1, b2 being Data-Location st b1 <> b2 holds
Output (b1 := b2) = {b1,(IC SCM )}
proof end;

theorem Th45: :: AMI_7:45
for b1, b2 being Data-Location holds Output (AddTo b1,b2) = {b1,(IC SCM )}
proof end;

theorem Th46: :: AMI_7:46
for b1, b2 being Data-Location holds Output (SubFrom b1,b2) = {b1,(IC SCM )}
proof end;

theorem Th47: :: AMI_7:47
for b1, b2 being Data-Location holds Output (MultBy b1,b2) = {b1,(IC SCM )}
proof end;

theorem Th48: :: AMI_7:48
for b1, b2 being Data-Location holds Output (Divide b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th49: :: AMI_7:49
for b1 being Instruction-Location of SCM holds Output (goto b1) = {(IC SCM )}
proof end;

theorem Th50: :: AMI_7:50
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Output (b1 =0_goto b2) = {(IC SCM )}
proof end;

theorem Th51: :: AMI_7:51
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Output (b1 >0_goto b2) = {(IC SCM )}
proof end;

theorem Th52: :: AMI_7:52
for b1 being Instruction-Location of SCM
for b2 being Instruction of SCM holds not b1 in Out_U_Inp b2
proof end;

theorem Th53: :: AMI_7:53
for b1 being Data-Location holds Out_U_Inp (b1 := b1) = {(IC SCM )}
proof end;

theorem Th54: :: AMI_7:54
for b1, b2 being Data-Location st b1 <> b2 holds
Out_U_Inp (b1 := b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th55: :: AMI_7:55
for b1, b2 being Data-Location holds Out_U_Inp (AddTo b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th56: :: AMI_7:56
for b1, b2 being Data-Location holds Out_U_Inp (SubFrom b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th57: :: AMI_7:57
for b1, b2 being Data-Location holds Out_U_Inp (MultBy b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th58: :: AMI_7:58
for b1, b2 being Data-Location holds Out_U_Inp (Divide b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th59: :: AMI_7:59
for b1 being Instruction-Location of SCM holds Out_U_Inp (goto b1) = {(IC SCM )}
proof end;

theorem Th60: :: AMI_7:60
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Out_U_Inp (b1 =0_goto b2) = {b1,(IC SCM )}
proof end;

theorem Th61: :: AMI_7:61
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Out_U_Inp (b1 >0_goto b2) = {b1,(IC SCM )}
proof end;

theorem Th62: :: AMI_7:62
for b1 being Data-Location holds Input (b1 := b1) = {(IC SCM )}
proof end;

theorem Th63: :: AMI_7:63
for b1, b2 being Data-Location st b1 <> b2 holds
Input (b1 := b2) = {b2,(IC SCM )}
proof end;

theorem Th64: :: AMI_7:64
for b1, b2 being Data-Location holds Input (AddTo b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th65: :: AMI_7:65
for b1 being Data-Location holds Input (SubFrom b1,b1) = {(IC SCM )}
proof end;

theorem Th66: :: AMI_7:66
for b1, b2 being Data-Location st b1 <> b2 holds
Input (SubFrom b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th67: :: AMI_7:67
for b1, b2 being Data-Location holds Input (MultBy b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th68: :: AMI_7:68
for b1 being Data-Location holds Input (Divide b1,b1) = {(IC SCM )}
proof end;

theorem Th69: :: AMI_7:69
for b1, b2 being Data-Location st b1 <> b2 holds
Input (Divide b1,b2) = {b1,b2,(IC SCM )}
proof end;

theorem Th70: :: AMI_7:70
for b1 being Instruction-Location of SCM holds Input (goto b1) = {}
proof end;

theorem Th71: :: AMI_7:71
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Input (b1 =0_goto b2) = {b1,(IC SCM )}
proof end;

theorem Th72: :: AMI_7:72
for b1 being Data-Location
for b2 being Instruction-Location of SCM holds Input (b1 >0_goto b2) = {b1,(IC SCM )}
proof end;