MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  efgsfo Structured version   Visualization version   GIF version

Theorem efgsfo 18152
Description: For any word, there is a sequence of extensions starting at a reduced word and ending at the target word, such that each word in the chain is an extension of the previous (inserting an element and its inverse at adjacent indexes somewhere in the sequence). (Contributed by Mario Carneiro, 27-Sep-2015.)
Hypotheses
Ref Expression
efgval.w 𝑊 = ( I ‘Word (𝐼 × 2𝑜))
efgval.r = ( ~FG𝐼)
efgval2.m 𝑀 = (𝑦𝐼, 𝑧 ∈ 2𝑜 ↦ ⟨𝑦, (1𝑜𝑧)⟩)
efgval2.t 𝑇 = (𝑣𝑊 ↦ (𝑛 ∈ (0...(#‘𝑣)), 𝑤 ∈ (𝐼 × 2𝑜) ↦ (𝑣 splice ⟨𝑛, 𝑛, ⟨“𝑤(𝑀𝑤)”⟩⟩)))
efgred.d 𝐷 = (𝑊 𝑥𝑊 ran (𝑇𝑥))
efgred.s 𝑆 = (𝑚 ∈ {𝑡 ∈ (Word 𝑊 ∖ {∅}) ∣ ((𝑡‘0) ∈ 𝐷 ∧ ∀𝑘 ∈ (1..^(#‘𝑡))(𝑡𝑘) ∈ ran (𝑇‘(𝑡‘(𝑘 − 1))))} ↦ (𝑚‘((#‘𝑚) − 1)))
Assertion
Ref Expression
efgsfo 𝑆:dom 𝑆onto𝑊
Distinct variable groups:   𝑦,𝑧   𝑡,𝑛,𝑣,𝑤,𝑦,𝑧,𝑚,𝑥   𝑚,𝑀   𝑥,𝑛,𝑀,𝑡,𝑣,𝑤   𝑘,𝑚,𝑡,𝑥,𝑇   𝑘,𝑛,𝑣,𝑤,𝑦,𝑧,𝑊,𝑚,𝑡,𝑥   ,𝑚,𝑡,𝑥,𝑦,𝑧   𝑚,𝐼,𝑛,𝑡,𝑣,𝑤,𝑥,𝑦,𝑧   𝐷,𝑚,𝑡
Allowed substitution hints:   𝐷(𝑥,𝑦,𝑧,𝑤,𝑣,𝑘,𝑛)   (𝑤,𝑣,𝑘,𝑛)   𝑆(𝑥,𝑦,𝑧,𝑤,𝑣,𝑡,𝑘,𝑚,𝑛)   𝑇(𝑦,𝑧,𝑤,𝑣,𝑛)   𝐼(𝑘)   𝑀(𝑦,𝑧,𝑘)

Proof of Theorem efgsfo
Dummy variables 𝑎 𝑏 𝑐 𝑑 𝑖 𝑜 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 efgval.w . . . 4 𝑊 = ( I ‘Word (𝐼 × 2𝑜))
2 efgval.r . . . 4 = ( ~FG𝐼)
3 efgval2.m . . . 4 𝑀 = (𝑦𝐼, 𝑧 ∈ 2𝑜 ↦ ⟨𝑦, (1𝑜𝑧)⟩)
4 efgval2.t . . . 4 𝑇 = (𝑣𝑊 ↦ (𝑛 ∈ (0...(#‘𝑣)), 𝑤 ∈ (𝐼 × 2𝑜) ↦ (𝑣 splice ⟨𝑛, 𝑛, ⟨“𝑤(𝑀𝑤)”⟩⟩)))
5 efgred.d . . . 4 𝐷 = (𝑊 𝑥𝑊 ran (𝑇𝑥))
6 efgred.s . . . 4 𝑆 = (𝑚 ∈ {𝑡 ∈ (Word 𝑊 ∖ {∅}) ∣ ((𝑡‘0) ∈ 𝐷 ∧ ∀𝑘 ∈ (1..^(#‘𝑡))(𝑡𝑘) ∈ ran (𝑇‘(𝑡‘(𝑘 − 1))))} ↦ (𝑚‘((#‘𝑚) − 1)))
71, 2, 3, 4, 5, 6efgsf 18142 . . 3 𝑆:{𝑡 ∈ (Word 𝑊 ∖ {∅}) ∣ ((𝑡‘0) ∈ 𝐷 ∧ ∀𝑘 ∈ (1..^(#‘𝑡))(𝑡𝑘) ∈ ran (𝑇‘(𝑡‘(𝑘 − 1))))}⟶𝑊
87fdmi 6052 . . . 4 dom 𝑆 = {𝑡 ∈ (Word 𝑊 ∖ {∅}) ∣ ((𝑡‘0) ∈ 𝐷 ∧ ∀𝑘 ∈ (1..^(#‘𝑡))(𝑡𝑘) ∈ ran (𝑇‘(𝑡‘(𝑘 − 1))))}
98feq2i 6037 . . 3 (𝑆:dom 𝑆𝑊𝑆:{𝑡 ∈ (Word 𝑊 ∖ {∅}) ∣ ((𝑡‘0) ∈ 𝐷 ∧ ∀𝑘 ∈ (1..^(#‘𝑡))(𝑡𝑘) ∈ ran (𝑇‘(𝑡‘(𝑘 − 1))))}⟶𝑊)
107, 9mpbir 221 . 2 𝑆:dom 𝑆𝑊
11 frn 6053 . . . 4 (𝑆:dom 𝑆𝑊 → ran 𝑆𝑊)
1210, 11ax-mp 5 . . 3 ran 𝑆𝑊
13 fviss 6256 . . . . . . . . 9 ( I ‘Word (𝐼 × 2𝑜)) ⊆ Word (𝐼 × 2𝑜)
141, 13eqsstri 3635 . . . . . . . 8 𝑊 ⊆ Word (𝐼 × 2𝑜)
1514sseli 3599 . . . . . . 7 (𝑐𝑊𝑐 ∈ Word (𝐼 × 2𝑜))
16 lencl 13324 . . . . . . 7 (𝑐 ∈ Word (𝐼 × 2𝑜) → (#‘𝑐) ∈ ℕ0)
1715, 16syl 17 . . . . . 6 (𝑐𝑊 → (#‘𝑐) ∈ ℕ0)
18 peano2nn0 11333 . . . . . 6 ((#‘𝑐) ∈ ℕ0 → ((#‘𝑐) + 1) ∈ ℕ0)
1914sseli 3599 . . . . . . . . . . . 12 (𝑎𝑊𝑎 ∈ Word (𝐼 × 2𝑜))
20 lencl 13324 . . . . . . . . . . . 12 (𝑎 ∈ Word (𝐼 × 2𝑜) → (#‘𝑎) ∈ ℕ0)
2119, 20syl 17 . . . . . . . . . . 11 (𝑎𝑊 → (#‘𝑎) ∈ ℕ0)
22 nn0nlt0 11319 . . . . . . . . . . . 12 ((#‘𝑎) ∈ ℕ0 → ¬ (#‘𝑎) < 0)
23 breq2 4657 . . . . . . . . . . . . 13 (𝑏 = 0 → ((#‘𝑎) < 𝑏 ↔ (#‘𝑎) < 0))
2423notbid 308 . . . . . . . . . . . 12 (𝑏 = 0 → (¬ (#‘𝑎) < 𝑏 ↔ ¬ (#‘𝑎) < 0))
2522, 24syl5ibr 236 . . . . . . . . . . 11 (𝑏 = 0 → ((#‘𝑎) ∈ ℕ0 → ¬ (#‘𝑎) < 𝑏))
2621, 25syl5 34 . . . . . . . . . 10 (𝑏 = 0 → (𝑎𝑊 → ¬ (#‘𝑎) < 𝑏))
2726ralrimiv 2965 . . . . . . . . 9 (𝑏 = 0 → ∀𝑎𝑊 ¬ (#‘𝑎) < 𝑏)
28 rabeq0 3957 . . . . . . . . 9 ({𝑎𝑊 ∣ (#‘𝑎) < 𝑏} = ∅ ↔ ∀𝑎𝑊 ¬ (#‘𝑎) < 𝑏)
2927, 28sylibr 224 . . . . . . . 8 (𝑏 = 0 → {𝑎𝑊 ∣ (#‘𝑎) < 𝑏} = ∅)
3029sseq1d 3632 . . . . . . 7 (𝑏 = 0 → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑏} ⊆ ran 𝑆 ↔ ∅ ⊆ ran 𝑆))
31 breq2 4657 . . . . . . . . 9 (𝑏 = 𝑑 → ((#‘𝑎) < 𝑏 ↔ (#‘𝑎) < 𝑑))
3231rabbidv 3189 . . . . . . . 8 (𝑏 = 𝑑 → {𝑎𝑊 ∣ (#‘𝑎) < 𝑏} = {𝑎𝑊 ∣ (#‘𝑎) < 𝑑})
3332sseq1d 3632 . . . . . . 7 (𝑏 = 𝑑 → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑏} ⊆ ran 𝑆 ↔ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆))
34 breq2 4657 . . . . . . . . 9 (𝑏 = (𝑑 + 1) → ((#‘𝑎) < 𝑏 ↔ (#‘𝑎) < (𝑑 + 1)))
3534rabbidv 3189 . . . . . . . 8 (𝑏 = (𝑑 + 1) → {𝑎𝑊 ∣ (#‘𝑎) < 𝑏} = {𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)})
3635sseq1d 3632 . . . . . . 7 (𝑏 = (𝑑 + 1) → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑏} ⊆ ran 𝑆 ↔ {𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)} ⊆ ran 𝑆))
37 breq2 4657 . . . . . . . . 9 (𝑏 = ((#‘𝑐) + 1) → ((#‘𝑎) < 𝑏 ↔ (#‘𝑎) < ((#‘𝑐) + 1)))
3837rabbidv 3189 . . . . . . . 8 (𝑏 = ((#‘𝑐) + 1) → {𝑎𝑊 ∣ (#‘𝑎) < 𝑏} = {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)})
3938sseq1d 3632 . . . . . . 7 (𝑏 = ((#‘𝑐) + 1) → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑏} ⊆ ran 𝑆 ↔ {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)} ⊆ ran 𝑆))
40 0ss 3972 . . . . . . 7 ∅ ⊆ ran 𝑆
41 simpr 477 . . . . . . . . . 10 ((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) → {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆)
42 fveq2 6191 . . . . . . . . . . . . 13 (𝑎 = 𝑐 → (#‘𝑎) = (#‘𝑐))
4342eqeq1d 2624 . . . . . . . . . . . 12 (𝑎 = 𝑐 → ((#‘𝑎) = 𝑑 ↔ (#‘𝑐) = 𝑑))
4443cbvrabv 3199 . . . . . . . . . . 11 {𝑎𝑊 ∣ (#‘𝑎) = 𝑑} = {𝑐𝑊 ∣ (#‘𝑐) = 𝑑}
45 eliun 4524 . . . . . . . . . . . . . . 15 (𝑐 𝑥𝑊 ran (𝑇𝑥) ↔ ∃𝑥𝑊 𝑐 ∈ ran (𝑇𝑥))
46 fveq2 6191 . . . . . . . . . . . . . . . . . 18 (𝑥 = 𝑏 → (𝑇𝑥) = (𝑇𝑏))
4746rneqd 5353 . . . . . . . . . . . . . . . . 17 (𝑥 = 𝑏 → ran (𝑇𝑥) = ran (𝑇𝑏))
4847eleq2d 2687 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑏 → (𝑐 ∈ ran (𝑇𝑥) ↔ 𝑐 ∈ ran (𝑇𝑏)))
4948cbvrexv 3172 . . . . . . . . . . . . . . 15 (∃𝑥𝑊 𝑐 ∈ ran (𝑇𝑥) ↔ ∃𝑏𝑊 𝑐 ∈ ran (𝑇𝑏))
5045, 49bitri 264 . . . . . . . . . . . . . 14 (𝑐 𝑥𝑊 ran (𝑇𝑥) ↔ ∃𝑏𝑊 𝑐 ∈ ran (𝑇𝑏))
51 simpl1r 1113 . . . . . . . . . . . . . . . . . 18 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆)
52 simprl 794 . . . . . . . . . . . . . . . . . . 19 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → 𝑏𝑊)
5314, 52sseldi 3601 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → 𝑏 ∈ Word (𝐼 × 2𝑜))
54 lencl 13324 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑏 ∈ Word (𝐼 × 2𝑜) → (#‘𝑏) ∈ ℕ0)
5553, 54syl 17 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑏) ∈ ℕ0)
5655nn0red 11352 . . . . . . . . . . . . . . . . . . . . 21 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑏) ∈ ℝ)
57 2rp 11837 . . . . . . . . . . . . . . . . . . . . 21 2 ∈ ℝ+
58 ltaddrp 11867 . . . . . . . . . . . . . . . . . . . . 21 (((#‘𝑏) ∈ ℝ ∧ 2 ∈ ℝ+) → (#‘𝑏) < ((#‘𝑏) + 2))
5956, 57, 58sylancl 694 . . . . . . . . . . . . . . . . . . . 20 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑏) < ((#‘𝑏) + 2))
601, 2, 3, 4efgtlen 18139 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) → (#‘𝑐) = ((#‘𝑏) + 2))
6160adantl 482 . . . . . . . . . . . . . . . . . . . . 21 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑐) = ((#‘𝑏) + 2))
62 simpl3 1066 . . . . . . . . . . . . . . . . . . . . 21 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑐) = 𝑑)
6361, 62eqtr3d 2658 . . . . . . . . . . . . . . . . . . . 20 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → ((#‘𝑏) + 2) = 𝑑)
6459, 63breqtrd 4679 . . . . . . . . . . . . . . . . . . 19 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → (#‘𝑏) < 𝑑)
65 fveq2 6191 . . . . . . . . . . . . . . . . . . . . 21 (𝑎 = 𝑏 → (#‘𝑎) = (#‘𝑏))
6665breq1d 4663 . . . . . . . . . . . . . . . . . . . 20 (𝑎 = 𝑏 → ((#‘𝑎) < 𝑑 ↔ (#‘𝑏) < 𝑑))
6766elrab 3363 . . . . . . . . . . . . . . . . . . 19 (𝑏 ∈ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ↔ (𝑏𝑊 ∧ (#‘𝑏) < 𝑑))
6852, 64, 67sylanbrc 698 . . . . . . . . . . . . . . . . . 18 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → 𝑏 ∈ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑})
6951, 68sseldd 3604 . . . . . . . . . . . . . . . . 17 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → 𝑏 ∈ ran 𝑆)
70 ffn 6045 . . . . . . . . . . . . . . . . . . 19 (𝑆:dom 𝑆𝑊𝑆 Fn dom 𝑆)
7110, 70ax-mp 5 . . . . . . . . . . . . . . . . . 18 𝑆 Fn dom 𝑆
72 fvelrnb 6243 . . . . . . . . . . . . . . . . . 18 (𝑆 Fn dom 𝑆 → (𝑏 ∈ ran 𝑆 ↔ ∃𝑜 ∈ dom 𝑆(𝑆𝑜) = 𝑏))
7371, 72ax-mp 5 . . . . . . . . . . . . . . . . 17 (𝑏 ∈ ran 𝑆 ↔ ∃𝑜 ∈ dom 𝑆(𝑆𝑜) = 𝑏)
7469, 73sylib 208 . . . . . . . . . . . . . . . 16 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → ∃𝑜 ∈ dom 𝑆(𝑆𝑜) = 𝑏)
75 simprrl 804 . . . . . . . . . . . . . . . . . . . 20 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑜 ∈ dom 𝑆)
761, 2, 3, 4, 5, 6efgsdm 18143 . . . . . . . . . . . . . . . . . . . . 21 (𝑜 ∈ dom 𝑆 ↔ (𝑜 ∈ (Word 𝑊 ∖ {∅}) ∧ (𝑜‘0) ∈ 𝐷 ∧ ∀𝑖 ∈ (1..^(#‘𝑜))(𝑜𝑖) ∈ ran (𝑇‘(𝑜‘(𝑖 − 1)))))
7776simp1bi 1076 . . . . . . . . . . . . . . . . . . . 20 (𝑜 ∈ dom 𝑆𝑜 ∈ (Word 𝑊 ∖ {∅}))
78 eldifi 3732 . . . . . . . . . . . . . . . . . . . 20 (𝑜 ∈ (Word 𝑊 ∖ {∅}) → 𝑜 ∈ Word 𝑊)
7975, 77, 783syl 18 . . . . . . . . . . . . . . . . . . 19 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑜 ∈ Word 𝑊)
80 simpl2 1065 . . . . . . . . . . . . . . . . . . 19 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑐𝑊)
81 simprlr 803 . . . . . . . . . . . . . . . . . . . . 21 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑐 ∈ ran (𝑇𝑏))
82 simprrr 805 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → (𝑆𝑜) = 𝑏)
8382fveq2d 6195 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → (𝑇‘(𝑆𝑜)) = (𝑇𝑏))
8483rneqd 5353 . . . . . . . . . . . . . . . . . . . . 21 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → ran (𝑇‘(𝑆𝑜)) = ran (𝑇𝑏))
8581, 84eleqtrrd 2704 . . . . . . . . . . . . . . . . . . . 20 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑐 ∈ ran (𝑇‘(𝑆𝑜)))
861, 2, 3, 4, 5, 6efgsp1 18150 . . . . . . . . . . . . . . . . . . . 20 ((𝑜 ∈ dom 𝑆𝑐 ∈ ran (𝑇‘(𝑆𝑜))) → (𝑜 ++ ⟨“𝑐”⟩) ∈ dom 𝑆)
8775, 85, 86syl2anc 693 . . . . . . . . . . . . . . . . . . 19 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → (𝑜 ++ ⟨“𝑐”⟩) ∈ dom 𝑆)
881, 2, 3, 4, 5, 6efgsval2 18146 . . . . . . . . . . . . . . . . . . 19 ((𝑜 ∈ Word 𝑊𝑐𝑊 ∧ (𝑜 ++ ⟨“𝑐”⟩) ∈ dom 𝑆) → (𝑆‘(𝑜 ++ ⟨“𝑐”⟩)) = 𝑐)
8979, 80, 87, 88syl3anc 1326 . . . . . . . . . . . . . . . . . 18 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → (𝑆‘(𝑜 ++ ⟨“𝑐”⟩)) = 𝑐)
90 fnfvelrn 6356 . . . . . . . . . . . . . . . . . . 19 ((𝑆 Fn dom 𝑆 ∧ (𝑜 ++ ⟨“𝑐”⟩) ∈ dom 𝑆) → (𝑆‘(𝑜 ++ ⟨“𝑐”⟩)) ∈ ran 𝑆)
9171, 87, 90sylancr 695 . . . . . . . . . . . . . . . . . 18 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → (𝑆‘(𝑜 ++ ⟨“𝑐”⟩)) ∈ ran 𝑆)
9289, 91eqeltrrd 2702 . . . . . . . . . . . . . . . . 17 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ ((𝑏𝑊𝑐 ∈ ran (𝑇𝑏)) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏))) → 𝑐 ∈ ran 𝑆)
9392anassrs 680 . . . . . . . . . . . . . . . 16 (((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) ∧ (𝑜 ∈ dom 𝑆 ∧ (𝑆𝑜) = 𝑏)) → 𝑐 ∈ ran 𝑆)
9474, 93rexlimddv 3035 . . . . . . . . . . . . . . 15 ((((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) ∧ (𝑏𝑊𝑐 ∈ ran (𝑇𝑏))) → 𝑐 ∈ ran 𝑆)
9594rexlimdvaa 3032 . . . . . . . . . . . . . 14 (((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) → (∃𝑏𝑊 𝑐 ∈ ran (𝑇𝑏) → 𝑐 ∈ ran 𝑆))
9650, 95syl5bi 232 . . . . . . . . . . . . 13 (((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) → (𝑐 𝑥𝑊 ran (𝑇𝑥) → 𝑐 ∈ ran 𝑆))
97 eldif 3584 . . . . . . . . . . . . . . . . . . 19 (𝑐 ∈ (𝑊 𝑥𝑊 ran (𝑇𝑥)) ↔ (𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)))
985eleq2i 2693 . . . . . . . . . . . . . . . . . . . 20 (𝑐𝐷𝑐 ∈ (𝑊 𝑥𝑊 ran (𝑇𝑥)))
991, 2, 3, 4, 5, 6efgs1 18148 . . . . . . . . . . . . . . . . . . . 20 (𝑐𝐷 → ⟨“𝑐”⟩ ∈ dom 𝑆)
10098, 99sylbir 225 . . . . . . . . . . . . . . . . . . 19 (𝑐 ∈ (𝑊 𝑥𝑊 ran (𝑇𝑥)) → ⟨“𝑐”⟩ ∈ dom 𝑆)
10197, 100sylbir 225 . . . . . . . . . . . . . . . . . 18 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → ⟨“𝑐”⟩ ∈ dom 𝑆)
1021, 2, 3, 4, 5, 6efgsval 18144 . . . . . . . . . . . . . . . . . 18 (⟨“𝑐”⟩ ∈ dom 𝑆 → (𝑆‘⟨“𝑐”⟩) = (⟨“𝑐”⟩‘((#‘⟨“𝑐”⟩) − 1)))
103101, 102syl 17 . . . . . . . . . . . . . . . . 17 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → (𝑆‘⟨“𝑐”⟩) = (⟨“𝑐”⟩‘((#‘⟨“𝑐”⟩) − 1)))
104 s1len 13385 . . . . . . . . . . . . . . . . . . . . 21 (#‘⟨“𝑐”⟩) = 1
105104oveq1i 6660 . . . . . . . . . . . . . . . . . . . 20 ((#‘⟨“𝑐”⟩) − 1) = (1 − 1)
106 1m1e0 11089 . . . . . . . . . . . . . . . . . . . 20 (1 − 1) = 0
107105, 106eqtri 2644 . . . . . . . . . . . . . . . . . . 19 ((#‘⟨“𝑐”⟩) − 1) = 0
108107fveq2i 6194 . . . . . . . . . . . . . . . . . 18 (⟨“𝑐”⟩‘((#‘⟨“𝑐”⟩) − 1)) = (⟨“𝑐”⟩‘0)
109108a1i 11 . . . . . . . . . . . . . . . . 17 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → (⟨“𝑐”⟩‘((#‘⟨“𝑐”⟩) − 1)) = (⟨“𝑐”⟩‘0))
110 s1fv 13390 . . . . . . . . . . . . . . . . . 18 (𝑐𝑊 → (⟨“𝑐”⟩‘0) = 𝑐)
111110adantr 481 . . . . . . . . . . . . . . . . 17 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → (⟨“𝑐”⟩‘0) = 𝑐)
112103, 109, 1113eqtrd 2660 . . . . . . . . . . . . . . . 16 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → (𝑆‘⟨“𝑐”⟩) = 𝑐)
113 fnfvelrn 6356 . . . . . . . . . . . . . . . . 17 ((𝑆 Fn dom 𝑆 ∧ ⟨“𝑐”⟩ ∈ dom 𝑆) → (𝑆‘⟨“𝑐”⟩) ∈ ran 𝑆)
11471, 101, 113sylancr 695 . . . . . . . . . . . . . . . 16 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → (𝑆‘⟨“𝑐”⟩) ∈ ran 𝑆)
115112, 114eqeltrrd 2702 . . . . . . . . . . . . . . 15 ((𝑐𝑊 ∧ ¬ 𝑐 𝑥𝑊 ran (𝑇𝑥)) → 𝑐 ∈ ran 𝑆)
116115ex 450 . . . . . . . . . . . . . 14 (𝑐𝑊 → (¬ 𝑐 𝑥𝑊 ran (𝑇𝑥) → 𝑐 ∈ ran 𝑆))
1171163ad2ant2 1083 . . . . . . . . . . . . 13 (((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) → (¬ 𝑐 𝑥𝑊 ran (𝑇𝑥) → 𝑐 ∈ ran 𝑆))
11896, 117pm2.61d 170 . . . . . . . . . . . 12 (((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) ∧ 𝑐𝑊 ∧ (#‘𝑐) = 𝑑) → 𝑐 ∈ ran 𝑆)
119118rabssdv 3682 . . . . . . . . . . 11 ((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) → {𝑐𝑊 ∣ (#‘𝑐) = 𝑑} ⊆ ran 𝑆)
12044, 119syl5eqss 3649 . . . . . . . . . 10 ((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) → {𝑎𝑊 ∣ (#‘𝑎) = 𝑑} ⊆ ran 𝑆)
12141, 120unssd 3789 . . . . . . . . 9 ((𝑑 ∈ ℕ0 ∧ {𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆) → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ∪ {𝑎𝑊 ∣ (#‘𝑎) = 𝑑}) ⊆ ran 𝑆)
122121ex 450 . . . . . . . 8 (𝑑 ∈ ℕ0 → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆 → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ∪ {𝑎𝑊 ∣ (#‘𝑎) = 𝑑}) ⊆ ran 𝑆))
123 id 22 . . . . . . . . . . . . 13 (𝑑 ∈ ℕ0𝑑 ∈ ℕ0)
124 nn0leltp1 11436 . . . . . . . . . . . . 13 (((#‘𝑎) ∈ ℕ0𝑑 ∈ ℕ0) → ((#‘𝑎) ≤ 𝑑 ↔ (#‘𝑎) < (𝑑 + 1)))
12521, 123, 124syl2anr 495 . . . . . . . . . . . 12 ((𝑑 ∈ ℕ0𝑎𝑊) → ((#‘𝑎) ≤ 𝑑 ↔ (#‘𝑎) < (𝑑 + 1)))
12621nn0red 11352 . . . . . . . . . . . . 13 (𝑎𝑊 → (#‘𝑎) ∈ ℝ)
127 nn0re 11301 . . . . . . . . . . . . 13 (𝑑 ∈ ℕ0𝑑 ∈ ℝ)
128 leloe 10124 . . . . . . . . . . . . 13 (((#‘𝑎) ∈ ℝ ∧ 𝑑 ∈ ℝ) → ((#‘𝑎) ≤ 𝑑 ↔ ((#‘𝑎) < 𝑑 ∨ (#‘𝑎) = 𝑑)))
129126, 127, 128syl2anr 495 . . . . . . . . . . . 12 ((𝑑 ∈ ℕ0𝑎𝑊) → ((#‘𝑎) ≤ 𝑑 ↔ ((#‘𝑎) < 𝑑 ∨ (#‘𝑎) = 𝑑)))
130125, 129bitr3d 270 . . . . . . . . . . 11 ((𝑑 ∈ ℕ0𝑎𝑊) → ((#‘𝑎) < (𝑑 + 1) ↔ ((#‘𝑎) < 𝑑 ∨ (#‘𝑎) = 𝑑)))
131130rabbidva 3188 . . . . . . . . . 10 (𝑑 ∈ ℕ0 → {𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)} = {𝑎𝑊 ∣ ((#‘𝑎) < 𝑑 ∨ (#‘𝑎) = 𝑑)})
132 unrab 3898 . . . . . . . . . 10 ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ∪ {𝑎𝑊 ∣ (#‘𝑎) = 𝑑}) = {𝑎𝑊 ∣ ((#‘𝑎) < 𝑑 ∨ (#‘𝑎) = 𝑑)}
133131, 132syl6eqr 2674 . . . . . . . . 9 (𝑑 ∈ ℕ0 → {𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)} = ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ∪ {𝑎𝑊 ∣ (#‘𝑎) = 𝑑}))
134133sseq1d 3632 . . . . . . . 8 (𝑑 ∈ ℕ0 → ({𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)} ⊆ ran 𝑆 ↔ ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ∪ {𝑎𝑊 ∣ (#‘𝑎) = 𝑑}) ⊆ ran 𝑆))
135122, 134sylibrd 249 . . . . . . 7 (𝑑 ∈ ℕ0 → ({𝑎𝑊 ∣ (#‘𝑎) < 𝑑} ⊆ ran 𝑆 → {𝑎𝑊 ∣ (#‘𝑎) < (𝑑 + 1)} ⊆ ran 𝑆))
13630, 33, 36, 39, 40, 135nn0ind 11472 . . . . . 6 (((#‘𝑐) + 1) ∈ ℕ0 → {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)} ⊆ ran 𝑆)
13717, 18, 1363syl 18 . . . . 5 (𝑐𝑊 → {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)} ⊆ ran 𝑆)
138 id 22 . . . . . 6 (𝑐𝑊𝑐𝑊)
13917nn0red 11352 . . . . . . 7 (𝑐𝑊 → (#‘𝑐) ∈ ℝ)
140139ltp1d 10954 . . . . . 6 (𝑐𝑊 → (#‘𝑐) < ((#‘𝑐) + 1))
14142breq1d 4663 . . . . . . 7 (𝑎 = 𝑐 → ((#‘𝑎) < ((#‘𝑐) + 1) ↔ (#‘𝑐) < ((#‘𝑐) + 1)))
142141elrab 3363 . . . . . 6 (𝑐 ∈ {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)} ↔ (𝑐𝑊 ∧ (#‘𝑐) < ((#‘𝑐) + 1)))
143138, 140, 142sylanbrc 698 . . . . 5 (𝑐𝑊𝑐 ∈ {𝑎𝑊 ∣ (#‘𝑎) < ((#‘𝑐) + 1)})
144137, 143sseldd 3604 . . . 4 (𝑐𝑊𝑐 ∈ ran 𝑆)
145144ssriv 3607 . . 3 𝑊 ⊆ ran 𝑆
14612, 145eqssi 3619 . 2 ran 𝑆 = 𝑊
147 dffo2 6119 . 2 (𝑆:dom 𝑆onto𝑊 ↔ (𝑆:dom 𝑆𝑊 ∧ ran 𝑆 = 𝑊))
14810, 146, 147mpbir2an 955 1 𝑆:dom 𝑆onto𝑊
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wo 383  wa 384  w3a 1037   = wceq 1483  wcel 1990  wral 2912  wrex 2913  {crab 2916  cdif 3571  cun 3572  wss 3574  c0 3915  {csn 4177  cop 4183  cotp 4185   ciun 4520   class class class wbr 4653  cmpt 4729   I cid 5023   × cxp 5112  dom cdm 5114  ran crn 5115   Fn wfn 5883  wf 5884  ontowfo 5886  cfv 5888  (class class class)co 6650  cmpt2 6652  1𝑜c1o 7553  2𝑜c2o 7554  cr 9935  0cc0 9936  1c1 9937   + caddc 9939   < clt 10074  cle 10075  cmin 10266  2c2 11070  0cn0 11292  +crp 11832  ...cfz 12326  ..^cfzo 12465  #chash 13117  Word cword 13291   ++ cconcat 13293  ⟨“cs1 13294   splice csplice 13296  ⟨“cs2 13586   ~FG cefg 18119
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-ot 4186  df-uni 4437  df-int 4476  df-iun 4522  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-2o 7561  df-oadd 7564  df-er 7742  df-map 7859  df-pm 7860  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-card 8765  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-nn 11021  df-2 11079  df-n0 11293  df-z 11378  df-uz 11688  df-rp 11833  df-fz 12327  df-fzo 12466  df-hash 13118  df-word 13299  df-concat 13301  df-s1 13302  df-substr 13303  df-splice 13304  df-s2 13593
This theorem is referenced by:  efgredlemc  18158  efgrelexlemb  18163  efgredeu  18165  efgred2  18166
  Copyright terms: Public domain W3C validator