Metamath Proof Explorer


Theorem tfsconcatlem

Description: Lemma for tfsconcatun . (Contributed by RP, 23-Feb-2025)

Ref Expression
Assertion tfsconcatlem ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃! 𝑥𝑦𝐵 ( 𝐶 = ( 𝐴 +o 𝑦 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )

Proof

Step Hyp Ref Expression
1 onss ( 𝐵 ∈ On → 𝐵 ⊆ On )
2 1 3ad2ant2 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → 𝐵 ⊆ On )
3 oacl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) ∈ On )
4 eloni ( ( 𝐴 +o 𝐵 ) ∈ On → Ord ( 𝐴 +o 𝐵 ) )
5 3 4 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → Ord ( 𝐴 +o 𝐵 ) )
6 eloni ( 𝐴 ∈ On → Ord 𝐴 )
7 6 adantr ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → Ord 𝐴 )
8 ordeldif ( ( Ord ( 𝐴 +o 𝐵 ) ∧ Ord 𝐴 ) → ( 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ↔ ( 𝐶 ∈ ( 𝐴 +o 𝐵 ) ∧ 𝐴𝐶 ) ) )
9 5 7 8 syl2anc ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ↔ ( 𝐶 ∈ ( 𝐴 +o 𝐵 ) ∧ 𝐴𝐶 ) ) )
10 9 biimpa ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( 𝐶 ∈ ( 𝐴 +o 𝐵 ) ∧ 𝐴𝐶 ) )
11 10 ancomd ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( 𝐴𝐶𝐶 ∈ ( 𝐴 +o 𝐵 ) ) )
12 11 ex ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) → ( 𝐴𝐶𝐶 ∈ ( 𝐴 +o 𝐵 ) ) ) )
13 12 imdistani ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝐴𝐶𝐶 ∈ ( 𝐴 +o 𝐵 ) ) ) )
14 13 3impa ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝐴𝐶𝐶 ∈ ( 𝐴 +o 𝐵 ) ) ) )
15 oawordex2 ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ ( 𝐴𝐶𝐶 ∈ ( 𝐴 +o 𝐵 ) ) ) → ∃ 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
16 14 15 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃ 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
17 simp1 ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → 𝐴 ∈ On )
18 onss ( ( 𝐴 +o 𝐵 ) ∈ On → ( 𝐴 +o 𝐵 ) ⊆ On )
19 3 18 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐴 +o 𝐵 ) ⊆ On )
20 19 ssdifd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ⊆ ( On ∖ 𝐴 ) )
21 20 sselda ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → 𝐶 ∈ ( On ∖ 𝐴 ) )
22 21 3impa ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → 𝐶 ∈ ( On ∖ 𝐴 ) )
23 ordon Ord On
24 17 6 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → Ord 𝐴 )
25 ordeldif ( ( Ord On ∧ Ord 𝐴 ) → ( 𝐶 ∈ ( On ∖ 𝐴 ) ↔ ( 𝐶 ∈ On ∧ 𝐴𝐶 ) ) )
26 23 24 25 sylancr ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( 𝐶 ∈ ( On ∖ 𝐴 ) ↔ ( 𝐶 ∈ On ∧ 𝐴𝐶 ) ) )
27 22 26 mpbid ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( 𝐶 ∈ On ∧ 𝐴𝐶 ) )
28 anass ( ( ( 𝐴 ∈ On ∧ 𝐶 ∈ On ) ∧ 𝐴𝐶 ) ↔ ( 𝐴 ∈ On ∧ ( 𝐶 ∈ On ∧ 𝐴𝐶 ) ) )
29 17 27 28 sylanbrc ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( ( 𝐴 ∈ On ∧ 𝐶 ∈ On ) ∧ 𝐴𝐶 ) )
30 oawordeu ( ( ( 𝐴 ∈ On ∧ 𝐶 ∈ On ) ∧ 𝐴𝐶 ) → ∃! 𝑦 ∈ On ( 𝐴 +o 𝑦 ) = 𝐶 )
31 29 30 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃! 𝑦 ∈ On ( 𝐴 +o 𝑦 ) = 𝐶 )
32 reuss ( ( 𝐵 ⊆ On ∧ ∃ 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃! 𝑦 ∈ On ( 𝐴 +o 𝑦 ) = 𝐶 ) → ∃! 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
33 2 16 31 32 syl3anc ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃! 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
34 reurmo ( ∃! 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 → ∃* 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
35 33 34 syl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃* 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 )
36 df-rmo ( ∃* 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 ↔ ∃* 𝑦 ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) )
37 35 36 sylib ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃* 𝑦 ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) )
38 moeq ∃* 𝑥 𝑥 = ( 𝐹𝑦 )
39 38 ax-gen 𝑦 ∃* 𝑥 𝑥 = ( 𝐹𝑦 )
40 moexexvw ( ( ∃* 𝑦 ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ ∀ 𝑦 ∃* 𝑥 𝑥 = ( 𝐹𝑦 ) ) → ∃* 𝑥𝑦 ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
41 37 39 40 sylancl ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃* 𝑥𝑦 ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
42 df-rex ( ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃ 𝑦 ( 𝑦𝐵 ∧ ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
43 anass ( ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) ↔ ( 𝑦𝐵 ∧ ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
44 43 exbii ( ∃ 𝑦 ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) ↔ ∃ 𝑦 ( 𝑦𝐵 ∧ ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
45 42 44 bitr4i ( ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃ 𝑦 ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
46 45 mobii ( ∃* 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃* 𝑥𝑦 ( ( 𝑦𝐵 ∧ ( 𝐴 +o 𝑦 ) = 𝐶 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
47 41 46 sylibr ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃* 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) )
48 fvex ( 𝐹𝑦 ) ∈ V
49 48 isseti 𝑥 𝑥 = ( 𝐹𝑦 )
50 49 jctr ( ( 𝐴 +o 𝑦 ) = 𝐶 → ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) )
51 50 a1i ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) ∧ 𝑦𝐵 ) → ( ( 𝐴 +o 𝑦 ) = 𝐶 → ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) ) )
52 51 reximdva ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( ∃ 𝑦𝐵 ( 𝐴 +o 𝑦 ) = 𝐶 → ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) ) )
53 16 52 mpd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) )
54 rexcom4a ( ∃ 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) )
55 exmoeu ( ∃ 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ( ∃* 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) → ∃! 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
56 54 55 bitr3i ( ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶 ∧ ∃ 𝑥 𝑥 = ( 𝐹𝑦 ) ) ↔ ( ∃* 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) → ∃! 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
57 53 56 sylib ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ( ∃* 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) → ∃! 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ) )
58 47 57 mpd ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃! 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) )
59 eqcom ( ( 𝐴 +o 𝑦 ) = 𝐶𝐶 = ( 𝐴 +o 𝑦 ) )
60 59 anbi1i ( ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ( 𝐶 = ( 𝐴 +o 𝑦 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
61 60 rexbii ( ∃ 𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃ 𝑦𝐵 ( 𝐶 = ( 𝐴 +o 𝑦 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
62 61 eubii ( ∃! 𝑥𝑦𝐵 ( ( 𝐴 +o 𝑦 ) = 𝐶𝑥 = ( 𝐹𝑦 ) ) ↔ ∃! 𝑥𝑦𝐵 ( 𝐶 = ( 𝐴 +o 𝑦 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )
63 58 62 sylib ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ∧ 𝐶 ∈ ( ( 𝐴 +o 𝐵 ) ∖ 𝐴 ) ) → ∃! 𝑥𝑦𝐵 ( 𝐶 = ( 𝐴 +o 𝑦 ) ∧ 𝑥 = ( 𝐹𝑦 ) ) )