let G be non empty DTConstrStr ; for n, m being String of G st n ==> m holds
m is_derivable_from n
let n, m be String of G; ( n ==> m implies m is_derivable_from n )
assume A1:
n ==> m
; m is_derivable_from n
take p = <*n,m*>; LANG1:def 5 ( len p >= 1 & p . 1 = n & p . (len p) = m & ( 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 ) ) )
A2:
len p = 2
by FINSEQ_1:44;
hence
( len p >= 1 & p . 1 = n & p . (len p) = m )
; 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
A3:
i >= 1
and
A4:
i < len p
; ex a, b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
take a = n; ex b being String of G st
( p . i = a & p . (i + 1) = b & a ==> b )
take b = m; ( p . i = a & p . (i + 1) = b & a ==> b )
2 = 1 + 1
;
then
i <= 1
by A2, A4, NAT_1:13;
then A5:
i = 1
by A3, XXREAL_0:1;
hence
p . i = a
; ( p . (i + 1) = b & a ==> b )
thus
p . (i + 1) = b
by A5; a ==> b
thus
a ==> b
by A1; verum