let G be non empty DTConstrStr ; :: thesis: 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; :: thesis: ( 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 & p1 . 1 = n2 & p1 . (len p1) = n1 & ( 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 ) ) )
; :: according to LANG1:def 5 :: thesis: ( not n2 is_derivable_from n3 or n1 is_derivable_from n3 )
given p2 being FinSequence such that A2:
( len p2 >= 1 & p2 . 1 = n3 & p2 . (len p2) = n2 & ( 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 ) ) )
; :: according to LANG1:def 5 :: thesis: n1 is_derivable_from n3
p2 <> {}
by A2;
then consider q being FinSequence, x being set such that
A3:
p2 = q ^ <*x*>
by FINSEQ_1:63;
take p = q ^ p1; :: according to LANG1:def 5 :: thesis: ( 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 ) ) )
len <*x*> = 1
by FINSEQ_1:57;
then A4:
( len p = (len q) + (len p1) & len p2 = (len q) + 1 & dom q = dom q & dom p2 = dom p2 & dom p1 = dom p1 )
by A3, FINSEQ_1:35;
then
( len p >= 1 + (len q) & 1 + (len q) >= 1 )
by A1, NAT_1:11, XREAL_1:9;
hence
len p >= 1
by XXREAL_0:2; :: thesis: ( 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
; :: thesis: ( 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 A1, A4, FINSEQ_1:def 7; :: thesis: 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 ; :: thesis: ( i >= 1 & i < len p implies ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b ) )
assume A5:
( i >= 1 & i < len p )
; :: thesis: ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
now per cases
( i + 1 = len p2 or i + 1 > len p2 or i + 1 < len p2 )
by XXREAL_0:1;
suppose A6:
i + 1
= len p2
;
:: thesis: ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )then
(
i = len q &
i < len p2 )
by A4, NAT_1:13;
then consider a,
b being
String of
G such that A7:
(
p2 . i = a &
p2 . (i + 1) = b &
a ==> b )
by A2, A5;
take a =
a;
:: thesis: ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )take b =
b;
:: thesis: ( p . i = a & p . (i + 1) = b & a ==> b )
( 1
in dom p1 &
i in dom q )
by A1, A4, A5, A6, FINSEQ_3:27;
then
(
p . (i + 1) = p1 . 1 &
p2 . i = q . i &
q . i = p . i )
by A3, A4, A6, FINSEQ_1:def 7;
hence
(
p . i = a &
p . (i + 1) = b &
a ==> b )
by A1, A2, A6, A7;
:: thesis: verum end; suppose
i + 1
> len p2
;
:: thesis: ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )then
(
i >= len p2 &
i + 1
<= len p )
by A5, NAT_1:13;
then consider j being
Nat such that A8:
i = (len p2) + j
by NAT_1:10;
reconsider j =
j as
Element of
NAT by ORDINAL1:def 13;
A9:
(
i = (len q) + (1 + j) & 1
+ j >= 1 )
by A4, A8, NAT_1:11;
then A10:
1
+ j < len p1
by A4, A5, XREAL_1:8;
then consider a,
b being
String of
G such that A11:
(
p1 . (1 + j) = a &
p1 . ((1 + j) + 1) = b &
a ==> b )
by A1, A9;
take a =
a;
:: thesis: ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )take b =
b;
:: thesis: ( p . i = a & p . (i + 1) = b & a ==> b )A12:
(
(1 + j) + 1
= 1
+ (1 + j) &
i + 1
= (len q) + ((1 + j) + 1) )
by A4, A8;
( 1
+ j <= len p1 &
(1 + j) + 1
<= len p1 &
(1 + j) + 1
>= 1 )
by A10, NAT_1:11, NAT_1:13;
then
( 1
+ j in dom p1 &
(1 + j) + 1
in dom p1 )
by A9, FINSEQ_3:27;
hence
(
p . i = a &
p . (i + 1) = b &
a ==> b )
by A9, A11, A12, FINSEQ_1:def 7;
:: thesis: verum end; end; end;
hence
ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
; :: thesis: verum