|   | Mathbox for Steven Nguyen | < Previous  
      Next > Nearby theorems | |
| Mirrors > Home > MPE Home > Th. List > Mathboxes > ccatcan2d | Structured version Visualization version GIF version | ||
| Description: Cancellation law for concatenation. (Contributed by SN, 6-Sep-2023.) | 
| Ref | Expression | 
|---|---|
| ccatcan2d.a | ⊢ (𝜑 → 𝐴 ∈ Word 𝑉) | 
| ccatcan2d.b | ⊢ (𝜑 → 𝐵 ∈ Word 𝑉) | 
| ccatcan2d.c | ⊢ (𝜑 → 𝐶 ∈ Word 𝑉) | 
| Ref | Expression | 
|---|---|
| ccatcan2d | ⊢ (𝜑 → ((𝐴 ++ 𝐶) = (𝐵 ++ 𝐶) ↔ 𝐴 = 𝐵)) | 
| Step | Hyp | Ref | Expression | 
|---|---|---|---|
| 1 | simpr 484 | . . . . 5 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) | |
| 2 | ccatcan2d.a | . . . . . . . . 9 ⊢ (𝜑 → 𝐴 ∈ Word 𝑉) | |
| 3 | lencl 14572 | . . . . . . . . 9 ⊢ (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ ℕ0) | |
| 4 | 2, 3 | syl 17 | . . . . . . . 8 ⊢ (𝜑 → (♯‘𝐴) ∈ ℕ0) | 
| 5 | 4 | nn0cnd 12591 | . . . . . . 7 ⊢ (𝜑 → (♯‘𝐴) ∈ ℂ) | 
| 6 | 5 | adantr 480 | . . . . . 6 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (♯‘𝐴) ∈ ℂ) | 
| 7 | ccatcan2d.b | . . . . . . . . 9 ⊢ (𝜑 → 𝐵 ∈ Word 𝑉) | |
| 8 | lencl 14572 | . . . . . . . . 9 ⊢ (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈ ℕ0) | |
| 9 | 7, 8 | syl 17 | . . . . . . . 8 ⊢ (𝜑 → (♯‘𝐵) ∈ ℕ0) | 
| 10 | 9 | nn0cnd 12591 | . . . . . . 7 ⊢ (𝜑 → (♯‘𝐵) ∈ ℂ) | 
| 11 | 10 | adantr 480 | . . . . . 6 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (♯‘𝐵) ∈ ℂ) | 
| 12 | ccatcan2d.c | . . . . . . . . 9 ⊢ (𝜑 → 𝐶 ∈ Word 𝑉) | |
| 13 | lencl 14572 | . . . . . . . . 9 ⊢ (𝐶 ∈ Word 𝑉 → (♯‘𝐶) ∈ ℕ0) | |
| 14 | 12, 13 | syl 17 | . . . . . . . 8 ⊢ (𝜑 → (♯‘𝐶) ∈ ℕ0) | 
| 15 | 14 | nn0cnd 12591 | . . . . . . 7 ⊢ (𝜑 → (♯‘𝐶) ∈ ℂ) | 
| 16 | 15 | adantr 480 | . . . . . 6 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (♯‘𝐶) ∈ ℂ) | 
| 17 | ccatlen 14614 | . . . . . . . . 9 ⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐶 ∈ Word 𝑉) → (♯‘(𝐴 ++ 𝐶)) = ((♯‘𝐴) + (♯‘𝐶))) | |
| 18 | 2, 12, 17 | syl2anc 584 | . . . . . . . 8 ⊢ (𝜑 → (♯‘(𝐴 ++ 𝐶)) = ((♯‘𝐴) + (♯‘𝐶))) | 
| 19 | fveq2 6905 | . . . . . . . 8 ⊢ ((𝐴 ++ 𝐶) = (𝐵 ++ 𝐶) → (♯‘(𝐴 ++ 𝐶)) = (♯‘(𝐵 ++ 𝐶))) | |
| 20 | 18, 19 | sylan9req 2797 | . . . . . . 7 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → ((♯‘𝐴) + (♯‘𝐶)) = (♯‘(𝐵 ++ 𝐶))) | 
| 21 | ccatlen 14614 | . . . . . . . . 9 ⊢ ((𝐵 ∈ Word 𝑉 ∧ 𝐶 ∈ Word 𝑉) → (♯‘(𝐵 ++ 𝐶)) = ((♯‘𝐵) + (♯‘𝐶))) | |
| 22 | 7, 12, 21 | syl2anc 584 | . . . . . . . 8 ⊢ (𝜑 → (♯‘(𝐵 ++ 𝐶)) = ((♯‘𝐵) + (♯‘𝐶))) | 
| 23 | 22 | adantr 480 | . . . . . . 7 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (♯‘(𝐵 ++ 𝐶)) = ((♯‘𝐵) + (♯‘𝐶))) | 
| 24 | 20, 23 | eqtrd 2776 | . . . . . 6 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → ((♯‘𝐴) + (♯‘𝐶)) = ((♯‘𝐵) + (♯‘𝐶))) | 
| 25 | 6, 11, 16, 24 | addcan2ad 11468 | . . . . 5 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → (♯‘𝐴) = (♯‘𝐵)) | 
| 26 | 1, 25 | oveq12d 7450 | . . . 4 ⊢ ((𝜑 ∧ (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) → ((𝐴 ++ 𝐶) prefix (♯‘𝐴)) = ((𝐵 ++ 𝐶) prefix (♯‘𝐵))) | 
| 27 | 26 | ex 412 | . . 3 ⊢ (𝜑 → ((𝐴 ++ 𝐶) = (𝐵 ++ 𝐶) → ((𝐴 ++ 𝐶) prefix (♯‘𝐴)) = ((𝐵 ++ 𝐶) prefix (♯‘𝐵)))) | 
| 28 | pfxccat1 14741 | . . . . 5 ⊢ ((𝐴 ∈ Word 𝑉 ∧ 𝐶 ∈ Word 𝑉) → ((𝐴 ++ 𝐶) prefix (♯‘𝐴)) = 𝐴) | |
| 29 | 2, 12, 28 | syl2anc 584 | . . . 4 ⊢ (𝜑 → ((𝐴 ++ 𝐶) prefix (♯‘𝐴)) = 𝐴) | 
| 30 | pfxccat1 14741 | . . . . 5 ⊢ ((𝐵 ∈ Word 𝑉 ∧ 𝐶 ∈ Word 𝑉) → ((𝐵 ++ 𝐶) prefix (♯‘𝐵)) = 𝐵) | |
| 31 | 7, 12, 30 | syl2anc 584 | . . . 4 ⊢ (𝜑 → ((𝐵 ++ 𝐶) prefix (♯‘𝐵)) = 𝐵) | 
| 32 | 29, 31 | eqeq12d 2752 | . . 3 ⊢ (𝜑 → (((𝐴 ++ 𝐶) prefix (♯‘𝐴)) = ((𝐵 ++ 𝐶) prefix (♯‘𝐵)) ↔ 𝐴 = 𝐵)) | 
| 33 | 27, 32 | sylibd 239 | . 2 ⊢ (𝜑 → ((𝐴 ++ 𝐶) = (𝐵 ++ 𝐶) → 𝐴 = 𝐵)) | 
| 34 | oveq1 7439 | . 2 ⊢ (𝐴 = 𝐵 → (𝐴 ++ 𝐶) = (𝐵 ++ 𝐶)) | |
| 35 | 33, 34 | impbid1 225 | 1 ⊢ (𝜑 → ((𝐴 ++ 𝐶) = (𝐵 ++ 𝐶) ↔ 𝐴 = 𝐵)) | 
| Colors of variables: wff setvar class | 
| Syntax hints: → wi 4 ↔ wb 206 ∧ wa 395 = wceq 1539 ∈ wcel 2107 ‘cfv 6560 (class class class)co 7432 ℂcc 11154 + caddc 11159 ℕ0cn0 12528 ♯chash 14370 Word cword 14553 ++ cconcat 14609 prefix cpfx 14709 | 
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1794 ax-4 1808 ax-5 1909 ax-6 1966 ax-7 2006 ax-8 2109 ax-9 2117 ax-10 2140 ax-11 2156 ax-12 2176 ax-ext 2707 ax-rep 5278 ax-sep 5295 ax-nul 5305 ax-pow 5364 ax-pr 5431 ax-un 7756 ax-cnex 11212 ax-resscn 11213 ax-1cn 11214 ax-icn 11215 ax-addcl 11216 ax-addrcl 11217 ax-mulcl 11218 ax-mulrcl 11219 ax-mulcom 11220 ax-addass 11221 ax-mulass 11222 ax-distr 11223 ax-i2m1 11224 ax-1ne0 11225 ax-1rid 11226 ax-rnegex 11227 ax-rrecex 11228 ax-cnre 11229 ax-pre-lttri 11230 ax-pre-lttrn 11231 ax-pre-ltadd 11232 ax-pre-mulgt0 11233 | 
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 848 df-3or 1087 df-3an 1088 df-tru 1542 df-fal 1552 df-ex 1779 df-nf 1783 df-sb 2064 df-mo 2539 df-eu 2568 df-clab 2714 df-cleq 2728 df-clel 2815 df-nfc 2891 df-ne 2940 df-nel 3046 df-ral 3061 df-rex 3070 df-reu 3380 df-rab 3436 df-v 3481 df-sbc 3788 df-csb 3899 df-dif 3953 df-un 3955 df-in 3957 df-ss 3967 df-pss 3970 df-nul 4333 df-if 4525 df-pw 4601 df-sn 4626 df-pr 4628 df-op 4632 df-uni 4907 df-int 4946 df-iun 4992 df-br 5143 df-opab 5205 df-mpt 5225 df-tr 5259 df-id 5577 df-eprel 5583 df-po 5591 df-so 5592 df-fr 5636 df-we 5638 df-xp 5690 df-rel 5691 df-cnv 5692 df-co 5693 df-dm 5694 df-rn 5695 df-res 5696 df-ima 5697 df-pred 6320 df-ord 6386 df-on 6387 df-lim 6388 df-suc 6389 df-iota 6513 df-fun 6562 df-fn 6563 df-f 6564 df-f1 6565 df-fo 6566 df-f1o 6567 df-fv 6568 df-riota 7389 df-ov 7435 df-oprab 7436 df-mpo 7437 df-om 7889 df-1st 8015 df-2nd 8016 df-frecs 8307 df-wrecs 8338 df-recs 8412 df-rdg 8451 df-1o 8507 df-er 8746 df-en 8987 df-dom 8988 df-sdom 8989 df-fin 8990 df-card 9980 df-pnf 11298 df-mnf 11299 df-xr 11300 df-ltxr 11301 df-le 11302 df-sub 11495 df-neg 11496 df-nn 12268 df-n0 12529 df-z 12616 df-uz 12880 df-fz 13549 df-fzo 13696 df-hash 14371 df-word 14554 df-concat 14610 df-substr 14680 df-pfx 14710 | 
| This theorem is referenced by: (None) | 
| Copyright terms: Public domain | W3C validator |