Metamath Proof Explorer


Theorem pfxccat3

Description: The subword of a concatenation is either a subword of the first concatenated word or a subword of the second concatenated word or a concatenation of a suffix of the first word with a prefix of the second word. (Contributed by Alexander van der Vekens, 30-Mar-2018) (Revised by AV, 10-May-2020)

Ref Expression
Hypothesis swrdccatin2.l L = A
Assertion pfxccat3 A Word V B Word V M 0 N N 0 L + B A ++ B substr M N = if N L A substr M N if L M B substr M L N L A substr M L ++ B prefix N L

Proof

Step Hyp Ref Expression
1 swrdccatin2.l L = A
2 simpll A Word V B Word V M 0 N N 0 L + B N L A Word V B Word V
3 simplrl A Word V B Word V M 0 N N 0 L + B N L M 0 N
4 lencl A Word V A 0
5 elfznn0 N 0 L + B N 0
6 5 adantr N 0 L + B A 0 N 0
7 6 adantr N 0 L + B A 0 N L N 0
8 simplr N 0 L + B A 0 N L A 0
9 1 breq2i N L N A
10 9 bilani N 0 L + B A 0 N L N A
11 elfz2nn0 N 0 A N 0 A 0 N A
12 7 8 10 11 syl3anbrc N 0 L + B A 0 N L N 0 A
13 12 exp31 N 0 L + B A 0 N L N 0 A
14 13 adantl M 0 N N 0 L + B A 0 N L N 0 A
15 4 14 syl5com A Word V M 0 N N 0 L + B N L N 0 A
16 15 adantr A Word V B Word V M 0 N N 0 L + B N L N 0 A
17 16 imp A Word V B Word V M 0 N N 0 L + B N L N 0 A
18 17 imp A Word V B Word V M 0 N N 0 L + B N L N 0 A
19 3 18 jca A Word V B Word V M 0 N N 0 L + B N L M 0 N N 0 A
20 swrdccatin1 A Word V B Word V M 0 N N 0 A A ++ B substr M N = A substr M N
21 2 19 20 sylc A Word V B Word V M 0 N N 0 L + B N L A ++ B substr M N = A substr M N
22 simp1l A Word V B Word V M 0 N N 0 L + B ¬ N L L M A Word V B Word V
23 1 eleq1i L 0 A 0
24 elfz2nn0 M 0 N M 0 N 0 M N
25 nn0z L 0 L
26 25 adantl M 0 N 0 M N L 0 L
27 nn0z N 0 N
28 27 3ad2ant2 M 0 N 0 M N N
29 28 adantr M 0 N 0 M N L 0 N
30 nn0z M 0 M
31 30 3ad2ant1 M 0 N 0 M N M
32 31 adantr M 0 N 0 M N L 0 M
33 26 29 32 3jca M 0 N 0 M N L 0 L N M
34 33 adantr M 0 N 0 M N L 0 L M L N M
35 simpl3 M 0 N 0 M N L 0 M N
36 35 anim1ci M 0 N 0 M N L 0 L M L M M N
37 elfz2 M L N L N M L M M N
38 34 36 37 sylanbrc M 0 N 0 M N L 0 L M M L N
39 38 exp31 M 0 N 0 M N L 0 L M M L N
40 24 39 sylbi M 0 N L 0 L M M L N
41 40 adantr M 0 N N 0 L + B L 0 L M M L N
42 41 com12 L 0 M 0 N N 0 L + B L M M L N
43 23 42 sylbir A 0 M 0 N N 0 L + B L M M L N
44 4 43 syl A Word V M 0 N N 0 L + B L M M L N
45 44 adantr A Word V B Word V M 0 N N 0 L + B L M M L N
46 45 imp A Word V B Word V M 0 N N 0 L + B L M M L N
47 46 a1d A Word V B Word V M 0 N N 0 L + B ¬ N L L M M L N
48 47 3imp A Word V B Word V M 0 N N 0 L + B ¬ N L L M M L N
49 elfz2nn0 N 0 L + B N 0 L + B 0 N L + B
50 nn0z A 0 A
51 1 50 eqeltrid A 0 L
52 51 adantr A 0 ¬ N L L
53 52 adantl N 0 L + B 0 N L + B A 0 ¬ N L L
54 nn0z L + B 0 L + B
55 54 3ad2ant2 N 0 L + B 0 N L + B L + B
56 55 adantr N 0 L + B 0 N L + B A 0 ¬ N L L + B
57 27 3ad2ant1 N 0 L + B 0 N L + B N
58 57 adantr N 0 L + B 0 N L + B A 0 ¬ N L N
59 53 56 58 3jca N 0 L + B 0 N L + B A 0 ¬ N L L L + B N
60 1 eqcomi A = L
61 60 eleq1i A 0 L 0
62 nn0re L 0 L
63 nn0re N 0 N
64 ltnle L N L < N ¬ N L
65 62 63 64 syl2anr N 0 L 0 L < N ¬ N L
66 65 bicomd N 0 L 0 ¬ N L L < N
67 ltle L N L < N L N
68 62 63 67 syl2anr N 0 L 0 L < N L N
69 66 68 sylbid N 0 L 0 ¬ N L L N
70 69 ex N 0 L 0 ¬ N L L N
71 61 70 biimtrid N 0 A 0 ¬ N L L N
72 71 3ad2ant1 N 0 L + B 0 N L + B A 0 ¬ N L L N
73 72 imp32 N 0 L + B 0 N L + B A 0 ¬ N L L N
74 simpl3 N 0 L + B 0 N L + B A 0 ¬ N L N L + B
75 73 74 jca N 0 L + B 0 N L + B A 0 ¬ N L L N N L + B
76 elfz2 N L L + B L L + B N L N N L + B
77 59 75 76 sylanbrc N 0 L + B 0 N L + B A 0 ¬ N L N L L + B
78 77 exp32 N 0 L + B 0 N L + B A 0 ¬ N L N L L + B
79 49 78 sylbi N 0 L + B A 0 ¬ N L N L L + B
80 79 adantl M 0 N N 0 L + B A 0 ¬ N L N L L + B
81 4 80 syl5com A Word V M 0 N N 0 L + B ¬ N L N L L + B
82 81 adantr A Word V B Word V M 0 N N 0 L + B ¬ N L N L L + B
83 82 imp A Word V B Word V M 0 N N 0 L + B ¬ N L N L L + B
84 83 a1dd A Word V B Word V M 0 N N 0 L + B ¬ N L L M N L L + B
85 84 3imp A Word V B Word V M 0 N N 0 L + B ¬ N L L M N L L + B
86 48 85 jca A Word V B Word V M 0 N N 0 L + B ¬ N L L M M L N N L L + B
87 1 swrdccatin2 A Word V B Word V M L N N L L + B A ++ B substr M N = B substr M L N L
88 22 86 87 sylc A Word V B Word V M 0 N N 0 L + B ¬ N L L M A ++ B substr M N = B substr M L N L
89 simp1l A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M A Word V B Word V
90 nn0re M 0 M
91 90 adantr M 0 N 0 M
92 ltnle M L M < L ¬ L M
93 91 62 92 syl2anr L 0 M 0 N 0 M < L ¬ L M
94 93 bicomd L 0 M 0 N 0 ¬ L M M < L
95 simpll M 0 L 0 M < L M 0
96 simplr M 0 L 0 M < L L 0
97 ltle M L M < L M L
98 90 62 97 syl2an M 0 L 0 M < L M L
99 98 imp M 0 L 0 M < L M L
100 elfz2nn0 M 0 L M 0 L 0 M L
101 95 96 99 100 syl3anbrc M 0 L 0 M < L M 0 L
102 101 exp31 M 0 L 0 M < L M 0 L
103 102 adantr M 0 N 0 L 0 M < L M 0 L
104 103 impcom L 0 M 0 N 0 M < L M 0 L
105 94 104 sylbid L 0 M 0 N 0 ¬ L M M 0 L
106 105 expcom M 0 N 0 L 0 ¬ L M M 0 L
107 106 3adant3 M 0 N 0 M N L 0 ¬ L M M 0 L
108 24 107 sylbi M 0 N L 0 ¬ L M M 0 L
109 61 108 biimtrid M 0 N A 0 ¬ L M M 0 L
110 109 adantr M 0 N N 0 L + B A 0 ¬ L M M 0 L
111 4 110 syl5com A Word V M 0 N N 0 L + B ¬ L M M 0 L
112 111 adantr A Word V B Word V M 0 N N 0 L + B ¬ L M M 0 L
113 112 imp A Word V B Word V M 0 N N 0 L + B ¬ L M M 0 L
114 113 a1d A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M M 0 L
115 114 3imp A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M M 0 L
116 63 3ad2ant1 N 0 L + B 0 N L + B N
117 64 bicomd L N ¬ N L L < N
118 62 116 117 syl2an L 0 N 0 L + B 0 N L + B ¬ N L L < N
119 25 adantr L 0 N 0 L + B 0 N L + B L
120 55 adantl L 0 N 0 L + B 0 N L + B L + B
121 57 adantl L 0 N 0 L + B 0 N L + B N
122 119 120 121 3jca L 0 N 0 L + B 0 N L + B L L + B N
123 122 adantr L 0 N 0 L + B 0 N L + B L < N L L + B N
124 62 116 67 syl2an L 0 N 0 L + B 0 N L + B L < N L N
125 124 imp L 0 N 0 L + B 0 N L + B L < N L N
126 simplr3 L 0 N 0 L + B 0 N L + B L < N N L + B
127 125 126 jca L 0 N 0 L + B 0 N L + B L < N L N N L + B
128 123 127 76 sylanbrc L 0 N 0 L + B 0 N L + B L < N N L L + B
129 128 ex L 0 N 0 L + B 0 N L + B L < N N L L + B
130 118 129 sylbid L 0 N 0 L + B 0 N L + B ¬ N L N L L + B
131 130 ex L 0 N 0 L + B 0 N L + B ¬ N L N L L + B
132 61 131 sylbi A 0 N 0 L + B 0 N L + B ¬ N L N L L + B
133 4 132 syl A Word V N 0 L + B 0 N L + B ¬ N L N L L + B
134 133 adantr A Word V B Word V N 0 L + B 0 N L + B ¬ N L N L L + B
135 134 com12 N 0 L + B 0 N L + B A Word V B Word V ¬ N L N L L + B
136 49 135 sylbi N 0 L + B A Word V B Word V ¬ N L N L L + B
137 136 adantl M 0 N N 0 L + B A Word V B Word V ¬ N L N L L + B
138 137 impcom A Word V B Word V M 0 N N 0 L + B ¬ N L N L L + B
139 138 a1dd A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M N L L + B
140 139 3imp A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M N L L + B
141 115 140 jca A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M M 0 L N L L + B
142 1 pfxccatin12 A Word V B Word V M 0 L N L L + B A ++ B substr M N = A substr M L ++ B prefix N L
143 89 141 142 sylc A Word V B Word V M 0 N N 0 L + B ¬ N L ¬ L M A ++ B substr M N = A substr M L ++ B prefix N L
144 21 88 143 2if2 A Word V B Word V M 0 N N 0 L + B A ++ B substr M N = if N L A substr M N if L M B substr M L N L A substr M L ++ B prefix N L
145 144 ex A Word V B Word V M 0 N N 0 L + B A ++ B substr M N = if N L A substr M N if L M B substr M L N L A substr M L ++ B prefix N L