let I be non empty set ; :: thesis: for S being non empty FSM of I st ( for s1, s2 being Element of I
for q being State of S st q <> the InitS of S holds
the Tran of S . [q,s1] = the Tran of S . [q,s2] ) & ( for s being Element of I
for q1 being State of S holds the Tran of S . [q1,s] <> the InitS of S ) holds
S is calculating_type
let S be non empty FSM of I; :: thesis: ( ( for s1, s2 being Element of I
for q being State of S st q <> the InitS of S holds
the Tran of S . [q,s1] = the Tran of S . [q,s2] ) & ( for s being Element of I
for q1 being State of S holds the Tran of S . [q1,s] <> the InitS of S ) implies S is calculating_type )
assume A1:
( ( for s1, s2 being Element of I
for q being State of S st q <> the InitS of S holds
the Tran of S . [q,s1] = the Tran of S . [q,s2] ) & ( for s being Element of I
for q1 being State of S holds the Tran of S . [q1,s] <> the InitS of S ) )
; :: thesis: S is calculating_type
A2:
for j being non empty Element of NAT st j >= 2 holds
for w1 being FinSequence of I st j <= (len w1) + 1 holds
(GEN w1,the InitS of S) . j <> the InitS of S
proof
let j be non
empty Element of
NAT ;
:: thesis: ( j >= 2 implies for w1 being FinSequence of I st j <= (len w1) + 1 holds
(GEN w1,the InitS of S) . j <> the InitS of S )
assume
j >= 2
;
:: thesis: for w1 being FinSequence of I st j <= (len w1) + 1 holds
(GEN w1,the InitS of S) . j <> the InitS of S
then
(
j <> 0 &
j <> 1 )
;
then A3:
not
j is
trivial
by NAT_2:def 1;
defpred S1[
Nat]
means for
w1 being
FinSequence of
I st $1
<= (len w1) + 1 holds
(GEN w1,the InitS of S) . $1
<> the
InitS of
S;
A4:
S1[2]
A6:
for
h being non
trivial Nat st
S1[
h] holds
S1[
h + 1]
proof
let h be non
trivial Nat;
:: thesis: ( S1[h] implies S1[h + 1] )
assume
for
w1 being
FinSequence of
I st
h <= (len w1) + 1 holds
(GEN w1,the InitS of S) . h <> the
InitS of
S
;
:: thesis: S1[h + 1]
let w1 be
FinSequence of
I;
:: thesis: ( h + 1 <= (len w1) + 1 implies (GEN w1,the InitS of S) . (h + 1) <> the InitS of S )
assume A7:
h + 1
<= (len w1) + 1
;
:: thesis: (GEN w1,the InitS of S) . (h + 1) <> the InitS of S
A8:
1
<= h
by NAT_1:14;
h <= len w1
by A7, XREAL_1:8;
then consider WI being
Element of
I,
QI,
QI1 being
State of
S such that A9:
(
WI = w1 . h &
QI = (GEN w1,the InitS of S) . h &
QI1 = (GEN w1,the InitS of S) . (h + 1) &
WI -succ_of QI = QI1 )
by A8, FSM_1:def 2;
thus
(GEN w1,the InitS of S) . (h + 1) <> the
InitS of
S
by A1, A9;
:: thesis: verum
end;
for
h being non
trivial Nat holds
S1[
h]
from NAT_2:sch 2(A4, A6);
hence
for
w1 being
FinSequence of
I st
j <= (len w1) + 1 holds
(GEN w1,the InitS of S) . j <> the
InitS of
S
by A3;
:: thesis: verum
end;
for j being non empty Element of NAT
for w1, w2 being FinSequence of I st w1 . 1 = w2 . 1 & j <= (len w1) + 1 & j <= (len w2) + 1 holds
(GEN w1,the InitS of S) . j = (GEN w2,the InitS of S) . j
proof
let j be non
empty Element of
NAT ;
:: thesis: for w1, w2 being FinSequence of I st w1 . 1 = w2 . 1 & j <= (len w1) + 1 & j <= (len w2) + 1 holds
(GEN w1,the InitS of S) . j = (GEN w2,the InitS of S) . jlet w1,
w2 be
FinSequence of
I;
:: thesis: ( w1 . 1 = w2 . 1 & j <= (len w1) + 1 & j <= (len w2) + 1 implies (GEN w1,the InitS of S) . j = (GEN w2,the InitS of S) . j )
assume A10:
(
w1 . 1
= w2 . 1 &
j <= (len w1) + 1 &
j <= (len w2) + 1 )
;
:: thesis: (GEN w1,the InitS of S) . j = (GEN w2,the InitS of S) . j
defpred S1[
Nat]
means for
w1,
w2 being
FinSequence of
I st
w1 . 1
= w2 . 1 & $1
<= (len w1) + 1 & $1
<= (len w2) + 1 holds
(GEN w1,the InitS of S) . $1
= (GEN w2,the InitS of S) . $1;
A11:
S1[1]
A12:
for
h being non
empty Nat st
S1[
h] holds
S1[
h + 1]
proof
let h be non
empty Nat;
:: thesis: ( S1[h] implies S1[h + 1] )
assume A13:
for
w1,
w2 being
FinSequence of
I st
w1 . 1
= w2 . 1 &
h <= (len w1) + 1 &
h <= (len w2) + 1 holds
(GEN w1,the InitS of S) . h = (GEN w2,the InitS of S) . h
;
:: thesis: S1[h + 1]
let w1,
w2 be
FinSequence of
I;
:: thesis: ( w1 . 1 = w2 . 1 & h + 1 <= (len w1) + 1 & h + 1 <= (len w2) + 1 implies (GEN w1,the InitS of S) . (h + 1) = (GEN w2,the InitS of S) . (h + 1) )
assume A14:
(
w1 . 1
= w2 . 1 &
h + 1
<= (len w1) + 1 &
h + 1
<= (len w2) + 1 )
;
:: thesis: (GEN w1,the InitS of S) . (h + 1) = (GEN w2,the InitS of S) . (h + 1)
then A15:
h <= len w1
by XREAL_1:8;
A16:
h <= (len w1) + 1
by A14, NAT_1:13;
A17:
1
<= h
by NAT_1:14;
then consider WI being
Element of
I,
QI,
QI1 being
State of
S such that A18:
(
WI = w1 . h &
QI = (GEN w1,the InitS of S) . h &
QI1 = (GEN w1,the InitS of S) . (h + 1) &
WI -succ_of QI = QI1 )
by A15, FSM_1:def 2;
A19:
h <= len w2
by A14, XREAL_1:8;
A20:
h <= (len w2) + 1
by A14, NAT_1:13;
1
<= h
by NAT_1:14;
then consider WI2 being
Element of
I,
QI2,
QI12 being
State of
S such that A21:
(
WI2 = w2 . h &
QI2 = (GEN w2,the InitS of S) . h &
QI12 = (GEN w2,the InitS of S) . (h + 1) &
WI2 -succ_of QI2 = QI12 )
by A19, FSM_1:def 2;
A22:
QI = QI2
by A13, A14, A16, A18, A20, A21;
X:
h in NAT
by ORDINAL1:def 13;
(
h = 1 or
h > 1 )
by A17, XXREAL_0:1;
then
(
h = 1 or
h >= 1
+ 1 )
by NAT_1:13;
then
(
WI = WI2 or
QI <> the
InitS of
S )
by A2, A14, A16, A18, A21, X;
hence
(GEN w1,the InitS of S) . (h + 1) = (GEN w2,the InitS of S) . (h + 1)
by A1, A18, A21, A22;
:: thesis: verum
end;
for
j being non
empty Nat holds
S1[
j]
from NAT_1:sch 10(A11, A12);
hence
(GEN w1,the InitS of S) . j = (GEN w2,the InitS of S) . j
by A10;
:: thesis: verum
end;
hence
S is calculating_type
by Def1; :: thesis: verum