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

Theorem reuccatpfxs1 14094
Description: There is a unique word having the length of a given word increased by 1 with the given word as prefix if there is a unique symbol which extends the given word. (Contributed by Alexander van der Vekens, 6-Oct-2018.) (Revised by AV, 21-Jan-2022.) (Revised by AV, 13-Oct-2022.)
Hypothesis
Ref Expression
reuccatpfxs1.1 𝑣𝑋
Assertion
Ref Expression
reuccatpfxs1 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑥𝑋 (𝑥 ∈ Word 𝑉 ∧ (♯‘𝑥) = ((♯‘𝑊) + 1))) → (∃!𝑣𝑉 (𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊))))
Distinct variable groups:   𝑣,𝑉,𝑥   𝑣,𝑊,𝑥   𝑥,𝑋
Allowed substitution hint:   𝑋(𝑣)

Proof of Theorem reuccatpfxs1
Dummy variables 𝑢 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eleq1w 2895 . . . 4 (𝑥 = 𝑦 → (𝑥 ∈ Word 𝑉𝑦 ∈ Word 𝑉))
2 fveqeq2 6665 . . . 4 (𝑥 = 𝑦 → ((♯‘𝑥) = ((♯‘𝑊) + 1) ↔ (♯‘𝑦) = ((♯‘𝑊) + 1)))
31, 2anbi12d 632 . . 3 (𝑥 = 𝑦 → ((𝑥 ∈ Word 𝑉 ∧ (♯‘𝑥) = ((♯‘𝑊) + 1)) ↔ (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))))
43cbvralvw 3441 . 2 (∀𝑥𝑋 (𝑥 ∈ Word 𝑉 ∧ (♯‘𝑥) = ((♯‘𝑊) + 1)) ↔ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1)))
5 reuccatpfxs1.1 . . . . 5 𝑣𝑋
65nfel2 2996 . . . 4 𝑣(𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋
75nfel2 2996 . . . 4 𝑣(𝑊 ++ ⟨“𝑥”⟩) ∈ 𝑋
8 s1eq 13939 . . . . . 6 (𝑣 = 𝑥 → ⟨“𝑣”⟩ = ⟨“𝑥”⟩)
98oveq2d 7158 . . . . 5 (𝑣 = 𝑥 → (𝑊 ++ ⟨“𝑣”⟩) = (𝑊 ++ ⟨“𝑥”⟩))
109eleq1d 2897 . . . 4 (𝑣 = 𝑥 → ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ↔ (𝑊 ++ ⟨“𝑥”⟩) ∈ 𝑋))
11 s1eq 13939 . . . . . 6 (𝑥 = 𝑢 → ⟨“𝑥”⟩ = ⟨“𝑢”⟩)
1211oveq2d 7158 . . . . 5 (𝑥 = 𝑢 → (𝑊 ++ ⟨“𝑥”⟩) = (𝑊 ++ ⟨“𝑢”⟩))
1312eleq1d 2897 . . . 4 (𝑥 = 𝑢 → ((𝑊 ++ ⟨“𝑥”⟩) ∈ 𝑋 ↔ (𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋))
146, 7, 10, 13reu8nf 3849 . . 3 (∃!𝑣𝑉 (𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ↔ ∃𝑣𝑉 ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢)))
15 nfv 1915 . . . . 5 𝑣 𝑊 ∈ Word 𝑉
16 nfv 1915 . . . . . 6 𝑣(𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))
175, 16nfralw 3225 . . . . 5 𝑣𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))
1815, 17nfan 1900 . . . 4 𝑣(𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1)))
19 nfv 1915 . . . . 5 𝑣 𝑊 = (𝑥 prefix (♯‘𝑊))
205, 19nfreuw 3374 . . . 4 𝑣∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊))
21 simprl 769 . . . . . 6 ((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) → (𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋)
22 simpl 485 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) → 𝑊 ∈ Word 𝑉)
2322ad2antrr 724 . . . . . . . . . 10 ((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) → 𝑊 ∈ Word 𝑉)
2423anim1i 616 . . . . . . . . 9 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → (𝑊 ∈ Word 𝑉𝑥𝑋))
25 simplrr 776 . . . . . . . . 9 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))
26 simp-4r 782 . . . . . . . . 9 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1)))
27 reuccatpfxs1lem 14093 . . . . . . . . 9 (((𝑊 ∈ Word 𝑉𝑥𝑋) ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢) ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) → (𝑊 = (𝑥 prefix (♯‘𝑊)) → 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)))
2824, 25, 26, 27syl3anc 1367 . . . . . . . 8 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → (𝑊 = (𝑥 prefix (♯‘𝑊)) → 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)))
29 oveq1 7149 . . . . . . . . . . 11 (𝑥 = (𝑊 ++ ⟨“𝑣”⟩) → (𝑥 prefix (♯‘𝑊)) = ((𝑊 ++ ⟨“𝑣”⟩) prefix (♯‘𝑊)))
30 s1cl 13941 . . . . . . . . . . . . . 14 (𝑣𝑉 → ⟨“𝑣”⟩ ∈ Word 𝑉)
3122, 30anim12i 614 . . . . . . . . . . . . 13 (((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) → (𝑊 ∈ Word 𝑉 ∧ ⟨“𝑣”⟩ ∈ Word 𝑉))
3231ad2antrr 724 . . . . . . . . . . . 12 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → (𝑊 ∈ Word 𝑉 ∧ ⟨“𝑣”⟩ ∈ Word 𝑉))
33 pfxccat1 14049 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉 ∧ ⟨“𝑣”⟩ ∈ Word 𝑉) → ((𝑊 ++ ⟨“𝑣”⟩) prefix (♯‘𝑊)) = 𝑊)
3432, 33syl 17 . . . . . . . . . . 11 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → ((𝑊 ++ ⟨“𝑣”⟩) prefix (♯‘𝑊)) = 𝑊)
3529, 34sylan9eqr 2878 . . . . . . . . . 10 ((((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) ∧ 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)) → (𝑥 prefix (♯‘𝑊)) = 𝑊)
3635eqcomd 2827 . . . . . . . . 9 ((((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) ∧ 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)) → 𝑊 = (𝑥 prefix (♯‘𝑊)))
3736ex 415 . . . . . . . 8 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → (𝑥 = (𝑊 ++ ⟨“𝑣”⟩) → 𝑊 = (𝑥 prefix (♯‘𝑊))))
3828, 37impbid 214 . . . . . . 7 (((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) ∧ 𝑥𝑋) → (𝑊 = (𝑥 prefix (♯‘𝑊)) ↔ 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)))
3938ralrimiva 3182 . . . . . 6 ((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) → ∀𝑥𝑋 (𝑊 = (𝑥 prefix (♯‘𝑊)) ↔ 𝑥 = (𝑊 ++ ⟨“𝑣”⟩)))
40 reu6i 3710 . . . . . 6 (((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑥𝑋 (𝑊 = (𝑥 prefix (♯‘𝑊)) ↔ 𝑥 = (𝑊 ++ ⟨“𝑣”⟩))) → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊)))
4121, 39, 40syl2anc 586 . . . . 5 ((((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) ∧ 𝑣𝑉) ∧ ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢))) → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊)))
4241exp31 422 . . . 4 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) → (𝑣𝑉 → (((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢)) → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊)))))
4318, 20, 42rexlimd 3317 . . 3 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) → (∃𝑣𝑉 ((𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 ∧ ∀𝑢𝑉 ((𝑊 ++ ⟨“𝑢”⟩) ∈ 𝑋𝑣 = 𝑢)) → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊))))
4414, 43syl5bi 244 . 2 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑦𝑋 (𝑦 ∈ Word 𝑉 ∧ (♯‘𝑦) = ((♯‘𝑊) + 1))) → (∃!𝑣𝑉 (𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊))))
454, 44sylan2b 595 1 ((𝑊 ∈ Word 𝑉 ∧ ∀𝑥𝑋 (𝑥 ∈ Word 𝑉 ∧ (♯‘𝑥) = ((♯‘𝑊) + 1))) → (∃!𝑣𝑉 (𝑊 ++ ⟨“𝑣”⟩) ∈ 𝑋 → ∃!𝑥𝑋 𝑊 = (𝑥 prefix (♯‘𝑊))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 208  wa 398   = wceq 1537  wcel 2114  wnfc 2961  wral 3138  wrex 3139  ∃!wreu 3140  cfv 6341  (class class class)co 7142  1c1 10524   + caddc 10526  chash 13680  Word cword 13851   ++ cconcat 13907  ⟨“cs1 13934   prefix cpfx 14017
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2793  ax-rep 5176  ax-sep 5189  ax-nul 5196  ax-pow 5252  ax-pr 5316  ax-un 7447  ax-cnex 10579  ax-resscn 10580  ax-1cn 10581  ax-icn 10582  ax-addcl 10583  ax-addrcl 10584  ax-mulcl 10585  ax-mulrcl 10586  ax-mulcom 10587  ax-addass 10588  ax-mulass 10589  ax-distr 10590  ax-i2m1 10591  ax-1ne0 10592  ax-1rid 10593  ax-rnegex 10594  ax-rrecex 10595  ax-cnre 10596  ax-pre-lttri 10597  ax-pre-lttrn 10598  ax-pre-ltadd 10599  ax-pre-mulgt0 10600
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-nel 3124  df-ral 3143  df-rex 3144  df-reu 3145  df-rab 3147  df-v 3488  df-sbc 3764  df-csb 3872  df-dif 3927  df-un 3929  df-in 3931  df-ss 3940  df-pss 3942  df-nul 4280  df-if 4454  df-pw 4527  df-sn 4554  df-pr 4556  df-tp 4558  df-op 4560  df-uni 4825  df-int 4863  df-iun 4907  df-br 5053  df-opab 5115  df-mpt 5133  df-tr 5159  df-id 5446  df-eprel 5451  df-po 5460  df-so 5461  df-fr 5500  df-we 5502  df-xp 5547  df-rel 5548  df-cnv 5549  df-co 5550  df-dm 5551  df-rn 5552  df-res 5553  df-ima 5554  df-pred 6134  df-ord 6180  df-on 6181  df-lim 6182  df-suc 6183  df-iota 6300  df-fun 6343  df-fn 6344  df-f 6345  df-f1 6346  df-fo 6347  df-f1o 6348  df-fv 6349  df-riota 7100  df-ov 7145  df-oprab 7146  df-mpo 7147  df-om 7567  df-1st 7675  df-2nd 7676  df-wrecs 7933  df-recs 7994  df-rdg 8032  df-1o 8088  df-oadd 8092  df-er 8275  df-en 8496  df-dom 8497  df-sdom 8498  df-fin 8499  df-card 9354  df-pnf 10663  df-mnf 10664  df-xr 10665  df-ltxr 10666  df-le 10667  df-sub 10858  df-neg 10859  df-nn 11625  df-n0 11885  df-xnn0 11955  df-z 11969  df-uz 12231  df-fz 12883  df-fzo 13024  df-hash 13681  df-word 13852  df-lsw 13900  df-concat 13908  df-s1 13935  df-substr 13988  df-pfx 14018
This theorem is referenced by:  reuccatpfxs1v  14095  numclwlk2lem2f1o  28142
  Copyright terms: Public domain W3C validator