let G be non empty DTConstrStr ; for n1, n2, n3 being String of G st n1 is_derivable_from n2 & n2 is_derivable_from n3 holds
n1 is_derivable_from n3
let n1, n2, n3 be String of G; ( n1 is_derivable_from n2 & n2 is_derivable_from n3 implies n1 is_derivable_from n3 )
given p1 being FinSequence such that A1:
len p1 >= 1
and
A2:
p1 . 1 = n2
and
A3:
p1 . (len p1) = n1
and
A4:
for i being Element of NAT st i >= 1 & i < len p1 holds
ex a, b being String of G st
( p1 . i = a & p1 . (i + 1) = b & a ==> b )
; LANG1:def 5 ( not n2 is_derivable_from n3 or n1 is_derivable_from n3 )
given p2 being FinSequence such that A5:
len p2 >= 1
and
A6:
p2 . 1 = n3
and
A7:
p2 . (len p2) = n2
and
A8:
for i being Element of NAT st i >= 1 & i < len p2 holds
ex a, b being String of G st
( p2 . i = a & p2 . (i + 1) = b & a ==> b )
; LANG1:def 5 n1 is_derivable_from n3
p2 <> {}
by A5;
then consider q being FinSequence, x being set such that
A9:
p2 = q ^ <*x*>
by FINSEQ_1:63;
take p = q ^ p1; LANG1:def 5 ( len p >= 1 & p . 1 = n3 & p . (len p) = n1 & ( for i being Element of NAT st i >= 1 & i < len p holds
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b ) ) )
A10:
1 + (len q) >= 1
by NAT_1:11;
A11:
len p = (len q) + (len p1)
by FINSEQ_1:35;
then
len p >= 1 + (len q)
by A1, XREAL_1:9;
hence
len p >= 1
by A10, XXREAL_0:2; ( p . 1 = n3 & p . (len p) = n1 & ( for i being Element of NAT st i >= 1 & i < len p holds
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b ) ) )
hence
p . 1 = n3
; ( p . (len p) = n1 & ( for i being Element of NAT st i >= 1 & i < len p holds
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b ) ) )
len p1 in dom p1
by A1, FINSEQ_3:27;
hence
p . (len p) = n1
by A3, A11, FINSEQ_1:def 7; for i being Element of NAT st i >= 1 & i < len p holds
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
let i be Element of NAT ; ( i >= 1 & i < len p implies ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b ) )
assume that
A17:
i >= 1
and
A18:
i < len p
; ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
len <*x*> = 1
by FINSEQ_1:57;
then A19:
len p2 = (len q) + 1
by A9, FINSEQ_1:35;
now per cases
( i + 1 = len p2 or i + 1 > len p2 or i + 1 < len p2 )
by XXREAL_0:1;
suppose A20:
i + 1
= len p2
;
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )A21:
1
in dom p1
by A1, FINSEQ_3:27;
i < len p2
by A20, NAT_1:13;
then consider a,
b being
String of
G such that A22:
p2 . i = a
and A23:
p2 . (i + 1) = b
and A24:
a ==> b
by A8, A17;
take a =
a;
ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )take b =
b;
( p . i = a & p . (i + 1) = b & a ==> b )A25:
i in dom q
by A19, A17, A20, FINSEQ_3:27;
then
p2 . i = q . i
by A9, FINSEQ_1:def 7;
hence
(
p . i = a &
p . (i + 1) = b &
a ==> b )
by A2, A7, A19, A20, A22, A23, A24, A21, A25, FINSEQ_1:def 7;
verum end; suppose
i + 1
> len p2
;
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )then
i >= len p2
by NAT_1:13;
then consider j being
Nat such that A26:
i = (len p2) + j
by NAT_1:10;
reconsider j =
j as
Element of
NAT by ORDINAL1:def 13;
A27:
i = (len q) + (1 + j)
by A19, A26;
then A28:
1
+ j < len p1
by A11, A18, XREAL_1:8;
then consider a,
b being
String of
G such that A29:
p1 . (1 + j) = a
and A30:
p1 . ((1 + j) + 1) = b
and A31:
a ==> b
by A4, NAT_1:11;
take a =
a;
ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )take b =
b;
( p . i = a & p . (i + 1) = b & a ==> b )A32:
(1 + j) + 1
>= 1
by NAT_1:11;
1
+ j >= 1
by NAT_1:11;
then A33:
1
+ j in dom p1
by A28, FINSEQ_3:27;
(1 + j) + 1
<= len p1
by A28, NAT_1:13;
then A34:
(1 + j) + 1
in dom p1
by A32, FINSEQ_3:27;
i + 1
= (len q) + ((1 + j) + 1)
by A19, A26;
hence
(
p . i = a &
p . (i + 1) = b &
a ==> b )
by A27, A29, A30, A31, A33, A34, FINSEQ_1:def 7;
verum end; suppose A35:
i + 1
< len p2
;
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )A36:
1
<= 1
+ i
by NAT_1:11;
i + 1
<= len q
by A19, A35, NAT_1:13;
then A37:
i + 1
in dom q
by A36, FINSEQ_3:27;
then A38:
p . (i + 1) = q . (i + 1)
by FINSEQ_1:def 7;
i < len p2
by A35, NAT_1:13;
then consider a,
b being
String of
G such that A39:
p2 . i = a
and A40:
p2 . (i + 1) = b
and A41:
a ==> b
by A8, A17;
take a =
a;
ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )take b =
b;
( p . i = a & p . (i + 1) = b & a ==> b )
i <= len q
by A19, A35, XREAL_1:8;
then A42:
i in dom q
by A17, FINSEQ_3:27;
then
p . i = q . i
by FINSEQ_1:def 7;
hence
(
p . i = a &
p . (i + 1) = b &
a ==> b )
by A9, A39, A40, A41, A42, A37, A38, FINSEQ_1:def 7;
verum end; end; end;
hence
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
; verum