:: SCMFSA_I semantic presentation
begin
definition
func SCM+FSA-Data*-Loc -> set equals :: SCMFSA_I:def 1
INT \ NAT;
coherence
INT \ NAT is set ;
end;
:: deftheorem defines SCM+FSA-Data*-Loc SCMFSA_I:def_1_:_
SCM+FSA-Data*-Loc = INT \ NAT;
registration
cluster SCM+FSA-Data*-Loc -> non empty ;
coherence
not SCM+FSA-Data*-Loc is empty
proof
not INT c= NAT by NUMBERS:17, NUMBERS:27, XBOOLE_0:def_10;
hence not SCM+FSA-Data*-Loc is empty by XBOOLE_1:37; ::_thesis: verum
end;
end;
definition
func SCM+FSA-Instr -> non empty set equals :: SCMFSA_I:def 2
(SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ;
coherence
(SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } is non empty set ;
end;
:: deftheorem defines SCM+FSA-Instr SCMFSA_I:def_2_:_
SCM+FSA-Instr = (SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ;
theorem Th1: :: SCMFSA_I:1
SCM-Instr c= SCM+FSA-Instr
proof
A1: SCM-Instr c= SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } by XBOOLE_1:7;
SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } c= (SCM-Instr \/ { [J1,{},<*c2,f2,b2*>] where J1 is Element of Segm 13, c2, b2 is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : J1 in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by XBOOLE_1:7;
then A2: SCM-Instr c= (SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by A1, XBOOLE_1:1;
thus SCM-Instr c= SCM+FSA-Instr by A2; ::_thesis: verum
end;
Lm1: SCM+FSA-Instr c= [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in SCM+FSA-Instr or x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] )
assume A1: x in SCM+FSA-Instr ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
percases ( x in (SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } or x in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ) by A1;
supposeA2: x in (SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
percases ( x in SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } or x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ) by A2, XBOOLE_0:def_3;
supposeA3: x in SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
percases ( x in SCM-Instr or x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) by A3, XBOOLE_0:def_3;
suppose x in SCM-Instr ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
then A4: x in [:NAT,(NAT *),(proj2 SCM-Instr):] by SCM_INST:8;
proj2 SCM-Instr c= proj2 SCM+FSA-Instr by Th1, XTUPLE_0:9;
then [:NAT,(NAT *),(proj2 SCM-Instr):] c= [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by MCART_1:73;
hence x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by A4; ::_thesis: verum
end;
suppose x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
then consider J being Element of Segm 13, c, b being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc such that
A5: ( x = [J,{},<*c,f,b*>] & J in {9,10} ) ;
A6: {} in NAT * by FINSEQ_1:49;
( J in NAT & <*c,f,b*> in proj2 SCM+FSA-Instr ) by A1, A5, XTUPLE_0:def_13;
hence x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by A5, A6, MCART_1:69; ::_thesis: verum
end;
end;
end;
suppose x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
then consider K being Element of Segm 13, c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that
A7: ( x = [K,{},<*c1,f1*>] & K in {11,12} ) ;
A8: {} in NAT * by FINSEQ_1:49;
( K in NAT & <*c1,f1*> in proj2 SCM+FSA-Instr ) by A1, A7, XTUPLE_0:def_13;
hence x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by A7, A8, MCART_1:69; ::_thesis: verum
end;
end;
end;
suppose x in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ; ::_thesis: x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):]
then consider b1 being Element of SCM-Data-Loc such that
A9: x = [13,{},<*b1*>] ;
A10: {} in NAT * by FINSEQ_1:49;
for K being Element of Segm 13 holds
( K in NAT & <*b1*> in proj2 SCM+FSA-Instr ) by A1, A9, XTUPLE_0:def_13;
hence x in [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by A9, A10, MCART_1:69; ::_thesis: verum
end;
end;
end;
registration
cluster proj2 SCM+FSA-Instr -> FinSequence-membered ;
coherence
proj2 SCM+FSA-Instr is FinSequence-membered
proof
let f be set ; :: according to FINSEQ_1:def_18 ::_thesis: ( not f in proj2 SCM+FSA-Instr or f is set )
assume f in proj2 SCM+FSA-Instr ; ::_thesis: f is set
then consider y being set such that
A1: [y,f] in SCM+FSA-Instr by XTUPLE_0:def_13;
set x = [y,f];
percases ( [y,f] in (SCM-Instr \/ { [J,{},<*c,f2,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } or [y,f] in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ) by A1;
supposeA2: [y,f] in (SCM-Instr \/ { [J,{},<*c,f2,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: f is set
percases ( [y,f] in SCM-Instr \/ { [J,{},<*c,f1,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } or [y,f] in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ) by A2, XBOOLE_0:def_3;
supposeA3: [y,f] in SCM-Instr \/ { [J,{},<*c,f1,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: f is set
percases ( [y,f] in SCM-Instr or [y,f] in { [J,{},<*c,f1,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) by A3, XBOOLE_0:def_3;
suppose [y,f] in SCM-Instr ; ::_thesis: f is set
then f in proj2 SCM-Instr by XTUPLE_0:def_13;
hence f is FinSequence ; ::_thesis: verum
end;
suppose [y,f] in { [J,{},<*c,f1,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: f is set
then consider J being Element of Segm 13, c, b being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that
A4: ( [y,f] = [J,{},<*c,f1,b*>] & J in {9,10} ) ;
f = <*c,f1,b*> by A4, XTUPLE_0:1;
hence f is FinSequence ; ::_thesis: verum
end;
end;
end;
suppose [y,f] in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: f is set
then consider K being Element of Segm 13, c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that
A5: ( [y,f] = [K,{},<*c1,f1*>] & K in {11,12} ) ;
f = <*c1,f1*> by A5, XTUPLE_0:1;
hence f is FinSequence ; ::_thesis: verum
end;
end;
end;
suppose [y,f] in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ; ::_thesis: f is set
then consider b1 being Element of SCM-Data-Loc such that
A6: [y,f] = [13,{},<*b1*>] ;
f = <*b1*> by A6, XTUPLE_0:1;
hence f is FinSequence ; ::_thesis: verum
end;
end;
end;
end;
registration
cluster SCM+FSA-Instr -> non empty standard-ins ;
coherence
( SCM+FSA-Instr is standard-ins & not SCM+FSA-Instr is empty )
proof
thus SCM+FSA-Instr is standard-ins ::_thesis: not SCM+FSA-Instr is empty
proof
consider X being non empty set such that
A1: proj2 SCM+FSA-Instr c= X * by FINSEQ_1:85;
take X ; :: according to COMPOS_0:def_1 ::_thesis: SCM+FSA-Instr c= [:NAT,(NAT *),(X *):]
[:NAT,(NAT *),(proj2 SCM+FSA-Instr):] c= [:NAT,(NAT *),(X *):] by A1, MCART_1:73;
hence SCM+FSA-Instr c= [:NAT,(NAT *),(X *):] by Lm1, XBOOLE_1:1; ::_thesis: verum
end;
thus not SCM+FSA-Instr is empty ; ::_thesis: verum
end;
end;
theorem Th2: :: SCMFSA_I:2
for I being Element of SCM+FSA-Instr st I `1_3 <= 8 holds
I in SCM-Instr
proof
let I be Element of SCM+FSA-Instr ; ::_thesis: ( I `1_3 <= 8 implies I in SCM-Instr )
assume A1: I `1_3 <= 8 ; ::_thesis: I in SCM-Instr
A2: now__::_thesis:_not_I_in__{__[K,{},<*c1,f1*>]_where_K_is_Element_of_Segm_13,_c1_is_Element_of_SCM-Data-Loc_,_f1_is_Element_of_SCM+FSA-Data*-Loc_:_K_in_{11,12}__}_
assume I in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: contradiction
then consider K being Element of Segm 13, c being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc such that
A3: I = [K,{},<*c,f*>] and
A4: K in {11,12} ;
I `1_3 = K by A3, RECDEF_2:def_1;
then ( I `1_3 = 11 or I `1_3 = 12 ) by A4, TARSKI:def_2;
hence contradiction by A1; ::_thesis: verum
end;
A5: now__::_thesis:_not_I_in__{__[J,{},<*c,f,b*>]_where_J_is_Element_of_Segm_13,_c,_b_is_Element_of_SCM-Data-Loc_,_f_is_Element_of_SCM+FSA-Data*-Loc_:_J_in_{9,10}__}_
assume I in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: contradiction
then consider J being Element of Segm 13, c, b being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc such that
A6: I = [J,{},<*c,f,b*>] and
A7: J in {9,10} ;
I `1_3 = J by A6, RECDEF_2:def_1;
then ( I `1_3 = 9 or I `1_3 = 10 ) by A7, TARSKI:def_2;
hence contradiction by A1; ::_thesis: verum
end;
A8: now__::_thesis:_not_I_in__{__[13,{},<*b1*>]_where_b1_is_Element_of_SCM-Data-Loc_:_verum__}_
assume I in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ; ::_thesis: contradiction
then consider b1 being Element of SCM-Data-Loc such that
A9: I = [13,{},<*b1*>] ;
I `1_3 = 13 by A9, RECDEF_2:def_1;
hence contradiction by A1; ::_thesis: verum
end;
( I in SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } or I in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } or I in { [13,{},<*b1*>] where b1 is Element of SCM-Data-Loc : verum } ) by XBOOLE_0:def_3;
hence I in SCM-Instr by A2, A5, A8, XBOOLE_0:def_3; ::_thesis: verum
end;
theorem Th3: :: SCMFSA_I:3
[0,{},{}] in SCM+FSA-Instr by Th1, SCM_INST:1;
theorem Th4: :: SCMFSA_I:4
for x being set
for c, b being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc st x in {9,10} holds
[x,{},<*c,f,b*>] in SCM+FSA-Instr
proof
let x be set ; ::_thesis: for c, b being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc st x in {9,10} holds
[x,{},<*c,f,b*>] in SCM+FSA-Instr
let c, b be Element of SCM-Data-Loc ; ::_thesis: for f being Element of SCM+FSA-Data*-Loc st x in {9,10} holds
[x,{},<*c,f,b*>] in SCM+FSA-Instr
let f be Element of SCM+FSA-Data*-Loc ; ::_thesis: ( x in {9,10} implies [x,{},<*c,f,b*>] in SCM+FSA-Instr )
assume A1: x in {9,10} ; ::_thesis: [x,{},<*c,f,b*>] in SCM+FSA-Instr
then ( x = 9 or x = 10 ) by TARSKI:def_2;
then reconsider x = x as Element of Segm 13 by NAT_1:44;
[x,{},<*c,f,b*>] in { [K,{},<*c1,f1,b1*>] where K is Element of Segm 13, c1, b1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {9,10} } by A1;
then [x,{},<*c,f,b*>] in SCM-Instr \/ { [J,{},<*c1,f1,b1*>] where J is Element of Segm 13, c1, b1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } by XBOOLE_0:def_3;
then [x,{},<*c,f,b*>] in (SCM-Instr \/ { [J,{},<*c1,f1,b1*>] where J is Element of Segm 13, c1, b1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c2,f2*>] where K is Element of Segm 13, c2 is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by XBOOLE_0:def_3;
hence [x,{},<*c,f,b*>] in SCM+FSA-Instr ; ::_thesis: verum
end;
theorem Th5: :: SCMFSA_I:5
for x being set
for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc st x in {11,12} holds
[x,{},<*c,f*>] in SCM+FSA-Instr
proof
let x be set ; ::_thesis: for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc st x in {11,12} holds
[x,{},<*c,f*>] in SCM+FSA-Instr
let c be Element of SCM-Data-Loc ; ::_thesis: for f being Element of SCM+FSA-Data*-Loc st x in {11,12} holds
[x,{},<*c,f*>] in SCM+FSA-Instr
let f be Element of SCM+FSA-Data*-Loc ; ::_thesis: ( x in {11,12} implies [x,{},<*c,f*>] in SCM+FSA-Instr )
assume A1: x in {11,12} ; ::_thesis: [x,{},<*c,f*>] in SCM+FSA-Instr
then ( x = 11 or x = 12 ) by TARSKI:def_2;
then reconsider x = x as Element of Segm 13 by NAT_1:44;
[x,{},<*c,f*>] in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by A1;
then [x,{},<*c,f*>] in (SCM-Instr \/ { [J,{},<*c2,f2,b*>] where J is Element of Segm 13, c2, b is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by XBOOLE_0:def_3;
then [x,{},<*c,f*>] in (SCM-Instr \/ { [J,{},<*c2,f2,b*>] where J is Element of Segm 13, c2, b is Element of SCM-Data-Loc , f2 is Element of SCM+FSA-Data*-Loc : J in {9,10} } ) \/ { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ;
hence [x,{},<*c,f*>] in SCM+FSA-Instr ; ::_thesis: verum
end;
definition
let x be Element of SCM+FSA-Instr ;
given c being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc , b being Element of SCM-Data-Loc , J being Element of Segm 13 such that A1: x = [J,{},<*c,f,b*>] ;
funcx int_addr1 -> Element of SCM-Data-Loc means :: SCMFSA_I:def 3
ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & it = c );
existence
ex b1, c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = c )
proof
take c ; ::_thesis: ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & c = c )
take c ; ::_thesis: ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & c = c )
take f ; ::_thesis: ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & c = c )
take b ; ::_thesis: ( <*c,f,b*> = x `3_3 & c = c )
thus ( <*c,f,b*> = x `3_3 & c = c ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of SCM-Data-Loc st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = c ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = c ) holds
b1 = b2
proof
let a1, a2 be Element of SCM-Data-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a1 = c ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a2 = c ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc , b1 being Element of SCM-Data-Loc such that A2: <*c1,f1,b1*> = x `3_3 and
A3: a1 = c1 ; ::_thesis: ( for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc
for b being Element of SCM-Data-Loc holds
( not <*c,f,b*> = x `3_3 or not a2 = c ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc , f2 being Element of SCM+FSA-Data*-Loc , b2 being Element of SCM-Data-Loc such that A4: ( <*c2,f2,b2*> = x `3_3 & a2 = c2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1,f1,b1*> . 1 by A3, FINSEQ_1:45
.= a2 by A2, A4, FINSEQ_1:45 ; ::_thesis: verum
end;
funcx int_addr2 -> Element of SCM-Data-Loc means :: SCMFSA_I:def 4
ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & it = b );
existence
ex b1, c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = b )
proof
take b ; ::_thesis: ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b = b )
take c ; ::_thesis: ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b = b )
take f ; ::_thesis: ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b = b )
take b ; ::_thesis: ( <*c,f,b*> = x `3_3 & b = b )
thus ( <*c,f,b*> = x `3_3 & b = b ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being Element of SCM-Data-Loc st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = b ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = b ) holds
b1 = b2;
proof
let a1, a2 be Element of SCM-Data-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a1 = b ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a2 = b ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc , b1 being Element of SCM-Data-Loc such that A5: <*c1,f1,b1*> = x `3_3 and
A6: a1 = b1 ; ::_thesis: ( for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc
for b being Element of SCM-Data-Loc holds
( not <*c,f,b*> = x `3_3 or not a2 = b ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc , f2 being Element of SCM+FSA-Data*-Loc , b2 being Element of SCM-Data-Loc such that A7: ( <*c2,f2,b2*> = x `3_3 & a2 = b2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1,f1,b1*> . 3 by A6, FINSEQ_1:45
.= a2 by A5, A7, FINSEQ_1:45 ; ::_thesis: verum
end;
funcx coll_addr1 -> Element of SCM+FSA-Data*-Loc means :: SCMFSA_I:def 5
ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & it = f );
existence
ex b1 being Element of SCM+FSA-Data*-Loc ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = f )
proof
take f ; ::_thesis: ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & f = f )
take c ; ::_thesis: ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & f = f )
take f ; ::_thesis: ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & f = f )
take b ; ::_thesis: ( <*c,f,b*> = x `3_3 & f = f )
thus ( <*c,f,b*> = x `3_3 & f = f ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being Element of SCM+FSA-Data*-Loc st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b1 = f ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = f ) holds
b1 = b2;
proof
let a1, a2 be Element of SCM+FSA-Data*-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a1 = f ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & a2 = f ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc , b1 being Element of SCM-Data-Loc such that A8: <*c1,f1,b1*> = x `3_3 and
A9: a1 = f1 ; ::_thesis: ( for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc
for b being Element of SCM-Data-Loc holds
( not <*c,f,b*> = x `3_3 or not a2 = f ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc , f2 being Element of SCM+FSA-Data*-Loc , b2 being Element of SCM-Data-Loc such that A10: ( <*c2,f2,b2*> = x `3_3 & a2 = f2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1,f1,b1*> . 2 by A9, FINSEQ_1:45
.= a2 by A8, A10, FINSEQ_1:45 ; ::_thesis: verum
end;
end;
:: deftheorem defines int_addr1 SCMFSA_I:def_3_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc ex J being Element of Segm 13 st x = [J,{},<*c,f,b*>] holds
for b2 being Element of SCM-Data-Loc holds
( b2 = x int_addr1 iff ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = c ) );
:: deftheorem defines int_addr2 SCMFSA_I:def_4_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc ex J being Element of Segm 13 st x = [J,{},<*c,f,b*>] holds
for b2 being Element of SCM-Data-Loc holds
( b2 = x int_addr2 iff ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = b ) );
:: deftheorem defines coll_addr1 SCMFSA_I:def_5_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc ex J being Element of Segm 13 st x = [J,{},<*c,f,b*>] holds
for b2 being Element of SCM+FSA-Data*-Loc holds
( b2 = x coll_addr1 iff ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex b being Element of SCM-Data-Loc st
( <*c,f,b*> = x `3_3 & b2 = f ) );
definition
let x be Element of SCM+FSA-Instr ;
given c being Element of SCM-Data-Loc such that A1: x = [13,{},<*c*>] ;
funcx int_addr -> Element of SCM-Data-Loc means :: SCMFSA_I:def 6
ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & it = c );
existence
ex b1, c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & b1 = c )
proof
take c ; ::_thesis: ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & c = c )
take c ; ::_thesis: ( <*c*> = x `3_3 & c = c )
thus ( <*c*> = x `3_3 & c = c ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of SCM-Data-Loc st ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & b1 = c ) & ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & b2 = c ) holds
b1 = b2
proof
let a1, a2 be Element of SCM-Data-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & a1 = c ) & ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & a2 = c ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc such that A2: <*c1*> = x `3_3 and
A3: a1 = c1 ; ::_thesis: ( for c being Element of SCM-Data-Loc holds
( not <*c*> = x `3_3 or not a2 = c ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc such that A4: ( <*c2*> = x `3_3 & a2 = c2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1*> /. 1 by A3, FINSEQ_4:16
.= a2 by A2, A4, FINSEQ_4:16 ; ::_thesis: verum
end;
end;
:: deftheorem defines int_addr SCMFSA_I:def_6_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc st x = [13,{},<*c*>] holds
for b2 being Element of SCM-Data-Loc holds
( b2 = x int_addr iff ex c being Element of SCM-Data-Loc st
( <*c*> = x `3_3 & b2 = c ) );
definition
let x be Element of SCM+FSA-Instr ;
given c being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc , J being Element of Segm 13 such that A1: x = [J,{},<*c,f*>] ;
funcx int_addr3 -> Element of SCM-Data-Loc means :: SCMFSA_I:def 7
ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & it = c );
existence
ex b1, c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b1 = c )
proof
take c ; ::_thesis: ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & c = c )
take c ; ::_thesis: ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & c = c )
take f ; ::_thesis: ( <*c,f*> = x `3_3 & c = c )
thus ( <*c,f*> = x `3_3 & c = c ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
uniqueness
for b1, b2 being Element of SCM-Data-Loc st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b1 = c ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b2 = c ) holds
b1 = b2
proof
let a1, a2 be Element of SCM-Data-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & a1 = c ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & a2 = c ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that A2: <*c1,f1*> = x `3_3 and
A3: a1 = c1 ; ::_thesis: ( for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc holds
( not <*c,f*> = x `3_3 or not a2 = c ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc , f2 being Element of SCM+FSA-Data*-Loc such that A4: ( <*c2,f2*> = x `3_3 & a2 = c2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1,f1*> . 1 by A3, FINSEQ_1:44
.= a2 by A2, A4, FINSEQ_1:44 ; ::_thesis: verum
end;
funcx coll_addr2 -> Element of SCM+FSA-Data*-Loc means :: SCMFSA_I:def 8
ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & it = f );
existence
ex b1 being Element of SCM+FSA-Data*-Loc ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b1 = f )
proof
take f ; ::_thesis: ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & f = f )
take c ; ::_thesis: ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & f = f )
take f ; ::_thesis: ( <*c,f*> = x `3_3 & f = f )
thus ( <*c,f*> = x `3_3 & f = f ) by A1, RECDEF_2:def_3; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being Element of SCM+FSA-Data*-Loc st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b1 = f ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b2 = f ) holds
b1 = b2;
proof
let a1, a2 be Element of SCM+FSA-Data*-Loc ; ::_thesis: ( ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & a1 = f ) & ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & a2 = f ) implies a1 = a2 )
given c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that A5: <*c1,f1*> = x `3_3 and
A6: a1 = f1 ; ::_thesis: ( for c being Element of SCM-Data-Loc
for f being Element of SCM+FSA-Data*-Loc holds
( not <*c,f*> = x `3_3 or not a2 = f ) or a1 = a2 )
given c2 being Element of SCM-Data-Loc , f2 being Element of SCM+FSA-Data*-Loc such that A7: ( <*c2,f2*> = x `3_3 & a2 = f2 ) ; ::_thesis: a1 = a2
thus a1 = <*c1,f1*> . 2 by A6, FINSEQ_1:44
.= a2 by A5, A7, FINSEQ_1:44 ; ::_thesis: verum
end;
end;
:: deftheorem defines int_addr3 SCMFSA_I:def_7_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex J being Element of Segm 13 st x = [J,{},<*c,f*>] holds
for b2 being Element of SCM-Data-Loc holds
( b2 = x int_addr3 iff ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b2 = c ) );
:: deftheorem defines coll_addr2 SCMFSA_I:def_8_:_
for x being Element of SCM+FSA-Instr st ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc ex J being Element of Segm 13 st x = [J,{},<*c,f*>] holds
for b2 being Element of SCM+FSA-Data*-Loc holds
( b2 = x coll_addr2 iff ex c being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( <*c,f*> = x `3_3 & b2 = f ) );
theorem :: SCMFSA_I:6
SCM+FSA-Instr c= [:NAT,(NAT *),(proj2 SCM+FSA-Instr):] by Lm1;
theorem Th7: :: SCMFSA_I:7
for x being Element of SCM+FSA-Instr holds
( ( x in SCM-Instr & ( InsCode x = 0 or InsCode x = 1 or InsCode x = 2 or InsCode x = 3 or InsCode x = 4 or InsCode x = 5 or InsCode x = 6 or InsCode x = 7 or InsCode x = 8 ) ) or ( x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } & ( InsCode x = 9 or InsCode x = 10 ) ) or ( x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } & ( InsCode x = 11 or InsCode x = 12 ) ) )
proof
let x be Element of SCM+FSA-Instr ; ::_thesis: ( ( x in SCM-Instr & ( InsCode x = 0 or InsCode x = 1 or InsCode x = 2 or InsCode x = 3 or InsCode x = 4 or InsCode x = 5 or InsCode x = 6 or InsCode x = 7 or InsCode x = 8 ) ) or ( x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } & ( InsCode x = 9 or InsCode x = 10 ) ) or ( x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } & ( InsCode x = 11 or InsCode x = 12 ) ) )
( x in SCM-Instr \/ { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } or x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ) by XBOOLE_0:def_3;
percasesthen ( x in SCM-Instr or x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } or x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ) by XBOOLE_0:def_3;
case x in SCM-Instr ; ::_thesis: ( InsCode x = 0 or InsCode x = 1 or InsCode x = 2 or InsCode x = 3 or InsCode x = 4 or InsCode x = 5 or InsCode x = 6 or InsCode x = 7 or InsCode x = 8 )
then InsCode x <= 8 by SCM_INST:10;
hence ( InsCode x = 0 or InsCode x = 1 or InsCode x = 2 or InsCode x = 3 or InsCode x = 4 or InsCode x = 5 or InsCode x = 6 or InsCode x = 7 or InsCode x = 8 ) by NAT_1:32; ::_thesis: verum
end;
case x in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } ; ::_thesis: ( InsCode x = 9 or InsCode x = 10 )
then consider J being Element of Segm 13, c, b being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc such that
A1: x = [J,{},<*c,f,b*>] and
A2: J in {9,10} ;
InsCode x = J by A1, RECDEF_2:def_1;
hence ( InsCode x = 9 or InsCode x = 10 ) by A2, TARSKI:def_2; ::_thesis: verum
end;
case x in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } ; ::_thesis: ( InsCode x = 11 or InsCode x = 12 )
then consider K being Element of Segm 13, c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that
A3: x = [K,{},<*c1,f1*>] and
A4: K in {11,12} ;
InsCode x = K by A3, RECDEF_2:def_1;
hence ( InsCode x = 11 or InsCode x = 12 ) by A4, TARSKI:def_2; ::_thesis: verum
end;
end;
end;
Lm2: for i being Element of SCM+FSA-Instr holds InsCode i <= 12
proof
let i be Element of SCM+FSA-Instr ; ::_thesis: InsCode i <= 12
( InsCode i = 0 or InsCode i = 1 or InsCode i = 2 or InsCode i = 3 or InsCode i = 4 or InsCode i = 5 or InsCode i = 6 or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 ) by Th7;
hence InsCode i <= 12 ; ::_thesis: verum
end;
Lm3: for i being Element of SCM+FSA-Instr st ( InsCode i = 9 or InsCode i = 10 ) holds
JumpPart i = {}
proof
let i be Element of SCM+FSA-Instr ; ::_thesis: ( ( InsCode i = 9 or InsCode i = 10 ) implies JumpPart i = {} )
assume ( InsCode i = 9 or InsCode i = 10 ) ; ::_thesis: JumpPart i = {}
then i in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } by Th7;
then ex J being Element of Segm 13 ex c, b being Element of SCM-Data-Loc ex f being Element of SCM+FSA-Data*-Loc st
( i = [J,{},<*c,f,b*>] & J in {9,10} ) ;
hence JumpPart i = {} by RECDEF_2:def_2; ::_thesis: verum
end;
Lm4: for i being Element of SCM+FSA-Instr st ( InsCode i = 11 or InsCode i = 12 ) holds
JumpPart i = {}
proof
let i be Element of SCM+FSA-Instr ; ::_thesis: ( ( InsCode i = 11 or InsCode i = 12 ) implies JumpPart i = {} )
assume ( InsCode i = 11 or InsCode i = 12 ) ; ::_thesis: JumpPart i = {}
then i in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by Th7;
then ex K being Element of Segm 13 ex c1 being Element of SCM-Data-Loc ex f1 being Element of SCM+FSA-Data*-Loc st
( i = [K,{},<*c1,f1*>] & K in {11,12} ) ;
hence JumpPart i = {} by RECDEF_2:def_2; ::_thesis: verum
end;
registration
cluster SCM+FSA-Instr -> non empty homogeneous ;
coherence
SCM+FSA-Instr is homogeneous
proof
let i, j be Element of SCM+FSA-Instr ; :: according to COMPOS_0:def_5 ::_thesis: ( not InsCode i = InsCode j or dom (i `2_3) = dom (j `2_3) )
assume A1: InsCode i = InsCode j ; ::_thesis: dom (i `2_3) = dom (j `2_3)
InsCode i <= 12 by Lm2;
percasesthen ( InsCode i = 0 or InsCode i = 1 or InsCode i = 2 or InsCode i = 3 or InsCode i = 4 or InsCode i = 5 or InsCode i = 6 or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 ) by NAT_1:36;
suppose ( InsCode i = 0 or InsCode i = 1 or InsCode i = 2 or InsCode i = 3 or InsCode i = 4 or InsCode i = 5 or InsCode i = 6 or InsCode i = 7 or InsCode i = 8 ) ; ::_thesis: dom (i `2_3) = dom (j `2_3)
then ( i in SCM-Instr & j in SCM-Instr ) by A1, Th7;
hence dom (i `2_3) = dom (j `2_3) by A1, COMPOS_0:def_5; ::_thesis: verum
end;
suppose ( InsCode i = 9 or InsCode i = 10 ) ; ::_thesis: dom (i `2_3) = dom (j `2_3)
then ( JumpPart i = {} & JumpPart j = {} ) by A1, Lm3;
hence dom (i `2_3) = dom (j `2_3) ; ::_thesis: verum
end;
suppose ( InsCode i = 11 or InsCode i = 12 ) ; ::_thesis: dom (i `2_3) = dom (j `2_3)
then ( JumpPart i = {} & JumpPart j = {} ) by A1, Lm4;
hence dom (i `2_3) = dom (j `2_3) ; ::_thesis: verum
end;
end;
end;
end;
Lm5: for i being Element of SCM+FSA-Instr
for ii being Element of SCM-Instr st i = ii holds
JumpParts (InsCode i) = JumpParts (InsCode ii)
proof
let i be Element of SCM+FSA-Instr ; ::_thesis: for ii being Element of SCM-Instr st i = ii holds
JumpParts (InsCode i) = JumpParts (InsCode ii)
let ii be Element of SCM-Instr ; ::_thesis: ( i = ii implies JumpParts (InsCode i) = JumpParts (InsCode ii) )
assume A1: i = ii ; ::_thesis: JumpParts (InsCode i) = JumpParts (InsCode ii)
thus JumpParts (InsCode i) c= JumpParts (InsCode ii) :: according to XBOOLE_0:def_10 ::_thesis: JumpParts (InsCode ii) c= JumpParts (InsCode i)
proof
let e be set ; :: according to TARSKI:def_3 ::_thesis: ( not e in JumpParts (InsCode i) or e in JumpParts (InsCode ii) )
assume e in JumpParts (InsCode i) ; ::_thesis: e in JumpParts (InsCode ii)
then consider I being Element of SCM+FSA-Instr such that
A2: e = JumpPart I and
A3: InsCode I = InsCode i ;
InsCode I <= 8 by A1, A3, SCM_INST:10;
then reconsider II = I as Element of SCM-Instr by Th2;
InsCode II = InsCode ii by A1, A3;
hence e in JumpParts (InsCode ii) by A2; ::_thesis: verum
end;
let e be set ; :: according to TARSKI:def_3 ::_thesis: ( not e in JumpParts (InsCode ii) or e in JumpParts (InsCode i) )
assume e in JumpParts (InsCode ii) ; ::_thesis: e in JumpParts (InsCode i)
then consider II being Element of SCM-Instr such that
A4: e = JumpPart II and
A5: InsCode II = InsCode ii ;
A6: SCM-Instr c= SCM+FSA-Instr by Th1;
II in SCM-Instr ;
then II in SCM+FSA-Instr by A6;
then reconsider I = II as Element of SCM+FSA-Instr ;
InsCode I = InsCode i by A1, A5;
hence e in JumpParts (InsCode i) by A4; ::_thesis: verum
end;
theorem Th8: :: SCMFSA_I:8
for T being InsType of SCM+FSA-Instr st ( T = 9 or T = 10 ) holds
JumpParts T = {{}}
proof
let T be InsType of SCM+FSA-Instr; ::_thesis: ( ( T = 9 or T = 10 ) implies JumpParts T = {{}} )
assume A1: ( T = 9 or T = 10 ) ; ::_thesis: JumpParts T = {{}}
hereby :: according to TARSKI:def_3,XBOOLE_0:def_10 ::_thesis: {{}} c= JumpParts T
let x be set ; ::_thesis: ( x in JumpParts T implies x in {{}} )
assume x in JumpParts T ; ::_thesis: x in {{}}
then consider I being Element of SCM+FSA-Instr such that
A2: x = JumpPart I and
A3: InsCode I = T ;
I in { [J,{},<*c,f,b*>] where J is Element of Segm 13, c, b is Element of SCM-Data-Loc , f is Element of SCM+FSA-Data*-Loc : J in {9,10} } by A1, A3, Th7;
then consider J being Element of Segm 13, c, b being Element of SCM-Data-Loc , f being Element of SCM+FSA-Data*-Loc such that
A4: ( I = [J,{},<*c,f,b*>] & J in {9,10} ) ;
x = {} by A2, A4, RECDEF_2:def_2;
hence x in {{}} by TARSKI:def_1; ::_thesis: verum
end;
set a = the Element of SCM-Data-Loc ;
set f = the Element of SCM+FSA-Data*-Loc ;
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {{}} or x in JumpParts T )
T in {9,10} by A1, TARSKI:def_2;
then A5: [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc , the Element of SCM-Data-Loc *>] in SCM+FSA-Instr by Th4;
assume x in {{}} ; ::_thesis: x in JumpParts T
then x = {} by TARSKI:def_1;
then A6: x = JumpPart [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc , the Element of SCM-Data-Loc *>] ;
InsCode [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc , the Element of SCM-Data-Loc *>] = T ;
hence x in JumpParts T by A6, A5; ::_thesis: verum
end;
theorem Th9: :: SCMFSA_I:9
for T being InsType of SCM+FSA-Instr st ( T = 11 or T = 12 ) holds
JumpParts T = {{}}
proof
let T be InsType of SCM+FSA-Instr; ::_thesis: ( ( T = 11 or T = 12 ) implies JumpParts T = {{}} )
assume A1: ( T = 11 or T = 12 ) ; ::_thesis: JumpParts T = {{}}
hereby :: according to TARSKI:def_3,XBOOLE_0:def_10 ::_thesis: {{}} c= JumpParts T
let x be set ; ::_thesis: ( x in JumpParts T implies x in {{}} )
assume x in JumpParts T ; ::_thesis: x in {{}}
then consider I being Element of SCM+FSA-Instr such that
A2: x = JumpPart I and
A3: InsCode I = T ;
I in { [K,{},<*c1,f1*>] where K is Element of Segm 13, c1 is Element of SCM-Data-Loc , f1 is Element of SCM+FSA-Data*-Loc : K in {11,12} } by A1, A3, Th7;
then consider K being Element of Segm 13, c1 being Element of SCM-Data-Loc , f1 being Element of SCM+FSA-Data*-Loc such that
A4: ( I = [K,{},<*c1,f1*>] & K in {11,12} ) ;
x = {} by A2, A4, RECDEF_2:def_2;
hence x in {{}} by TARSKI:def_1; ::_thesis: verum
end;
set a = the Element of SCM-Data-Loc ;
set f = the Element of SCM+FSA-Data*-Loc ;
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in {{}} or x in JumpParts T )
T in {11,12} by A1, TARSKI:def_2;
then A5: [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc *>] in SCM+FSA-Instr by Th5;
assume x in {{}} ; ::_thesis: x in JumpParts T
then x = {} by TARSKI:def_1;
then A6: x = JumpPart [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc *>] ;
InsCode [T,{},<* the Element of SCM-Data-Loc , the Element of SCM+FSA-Data*-Loc *>] = T ;
hence x in JumpParts T by A6, A5; ::_thesis: verum
end;
registration
cluster SCM+FSA-Instr -> non empty J/A-independent ;
coherence
SCM+FSA-Instr is J/A-independent
proof
let T be InsType of SCM+FSA-Instr; :: according to COMPOS_0:def_7 ::_thesis: for b1, b2 being set holds
( not b1 in JumpParts T or not proj1 b1 = proj1 b2 or for b3 being set holds
( not [T,b1,b3] in SCM+FSA-Instr or [T,b2,b3] in SCM+FSA-Instr ) )
let f1, f2 be natural-valued Function; ::_thesis: ( not f1 in JumpParts T or not proj1 f1 = proj1 f2 or for b1 being set holds
( not [T,f1,b1] in SCM+FSA-Instr or [T,f2,b1] in SCM+FSA-Instr ) )
assume that
A1: f1 in JumpParts T and
A2: dom f1 = dom f2 ; ::_thesis: for b1 being set holds
( not [T,f1,b1] in SCM+FSA-Instr or [T,f2,b1] in SCM+FSA-Instr )
let p be set ; ::_thesis: ( not [T,f1,p] in SCM+FSA-Instr or [T,f2,p] in SCM+FSA-Instr )
assume A3: [T,f1,p] in SCM+FSA-Instr ; ::_thesis: [T,f2,p] in SCM+FSA-Instr
A4: T = InsCode [T,f1,p] ;
reconsider II = [T,f1,p] as Element of SCM+FSA-Instr by A3;
InsCode II <= 12 by Lm2;
percasesthen ( InsCode II = 0 or InsCode II = 1 or InsCode II = 2 or InsCode II = 3 or InsCode II = 4 or InsCode II = 5 or InsCode II = 6 or InsCode II = 7 or InsCode II = 8 or T = 9 or T = 10 or T = 11 or T = 12 ) by A4, NAT_1:36;
suppose ( InsCode II = 0 or InsCode II = 1 or InsCode II = 2 or InsCode II = 3 or InsCode II = 4 or InsCode II = 5 or InsCode II = 6 or InsCode II = 7 or InsCode II = 8 ) ; ::_thesis: [T,f2,p] in SCM+FSA-Instr
then A5: InsCode II <= 8 ;
then reconsider ii = II as Element of SCM-Instr by Th2;
A6: T = InsCode ii by A4;
then T in InsCodes SCM-Instr ;
then reconsider t = T as InsType of SCM-Instr ;
A7: [t,f1,p] in SCM-Instr by A5, Th2;
JumpParts t = JumpParts T by A6, Lm5;
then [t,f2,p] in SCM-Instr by A1, A2, A7, COMPOS_0:def_7;
then [T,f2,p] in SCM-Instr ;
hence [T,f2,p] in SCM+FSA-Instr by Th1; ::_thesis: verum
end;
suppose ( T = 9 or T = 10 or T = 11 or T = 12 ) ; ::_thesis: [T,f2,p] in SCM+FSA-Instr
then JumpParts T = {0} by Th8, Th9;
then f1 = 0 by A1, TARSKI:def_1;
then f1 = f2 by A2;
hence [T,f2,p] in SCM+FSA-Instr by A3; ::_thesis: verum
end;
end;
end;
end;
registration
cluster SCM+FSA-Instr -> non empty with_halt ;
coherence
SCM+FSA-Instr is with_halt
proof
thus [0,{},{}] in SCM+FSA-Instr by Th3; :: according to COMPOS_0:def_10 ::_thesis: verum
end;
end;