Metamath Proof Explorer


Theorem mrsubcv

Description: The value of a substituted singleton. (Contributed by Mario Carneiro, 18-Jul-2016)

Ref Expression
Hypotheses mrsubffval.c 𝐶 = ( mCN ‘ 𝑇 )
mrsubffval.v 𝑉 = ( mVR ‘ 𝑇 )
mrsubffval.r 𝑅 = ( mREx ‘ 𝑇 )
mrsubffval.s 𝑆 = ( mRSubst ‘ 𝑇 )
Assertion mrsubcv ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑆𝐹 ) ‘ ⟨“ 𝑋 ”⟩ ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )

Proof

Step Hyp Ref Expression
1 mrsubffval.c 𝐶 = ( mCN ‘ 𝑇 )
2 mrsubffval.v 𝑉 = ( mVR ‘ 𝑇 )
3 mrsubffval.r 𝑅 = ( mREx ‘ 𝑇 )
4 mrsubffval.s 𝑆 = ( mRSubst ‘ 𝑇 )
5 simp3 ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → 𝑋 ∈ ( 𝐶𝑉 ) )
6 5 s1cld ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ⟨“ 𝑋 ”⟩ ∈ Word ( 𝐶𝑉 ) )
7 elun ( 𝑋 ∈ ( 𝐶𝑉 ) ↔ ( 𝑋𝐶𝑋𝑉 ) )
8 elfvex ( 𝑋 ∈ ( mCN ‘ 𝑇 ) → 𝑇 ∈ V )
9 8 1 eleq2s ( 𝑋𝐶𝑇 ∈ V )
10 elfvex ( 𝑋 ∈ ( mVR ‘ 𝑇 ) → 𝑇 ∈ V )
11 10 2 eleq2s ( 𝑋𝑉𝑇 ∈ V )
12 9 11 jaoi ( ( 𝑋𝐶𝑋𝑉 ) → 𝑇 ∈ V )
13 7 12 sylbi ( 𝑋 ∈ ( 𝐶𝑉 ) → 𝑇 ∈ V )
14 13 3ad2ant3 ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → 𝑇 ∈ V )
15 1 2 3 mrexval ( 𝑇 ∈ V → 𝑅 = Word ( 𝐶𝑉 ) )
16 14 15 syl ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → 𝑅 = Word ( 𝐶𝑉 ) )
17 6 16 eleqtrrd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ⟨“ 𝑋 ”⟩ ∈ 𝑅 )
18 eqid ( freeMnd ‘ ( 𝐶𝑉 ) ) = ( freeMnd ‘ ( 𝐶𝑉 ) )
19 1 2 3 4 18 mrsubval ( ( 𝐹 : 𝐴𝑅𝐴𝑉 ∧ ⟨“ 𝑋 ”⟩ ∈ 𝑅 ) → ( ( 𝑆𝐹 ) ‘ ⟨“ 𝑋 ”⟩ ) = ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) ) )
20 17 19 syld3an3 ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑆𝐹 ) ‘ ⟨“ 𝑋 ”⟩ ) = ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) ) )
21 simpl1 ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) → 𝐹 : 𝐴𝑅 )
22 21 ffvelrnda ( ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣𝐴 ) → ( 𝐹𝑣 ) ∈ 𝑅 )
23 16 ad2antrr ( ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣𝐴 ) → 𝑅 = Word ( 𝐶𝑉 ) )
24 22 23 eleqtrd ( ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣𝐴 ) → ( 𝐹𝑣 ) ∈ Word ( 𝐶𝑉 ) )
25 simplr ( ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) ∧ ¬ 𝑣𝐴 ) → 𝑣 ∈ ( 𝐶𝑉 ) )
26 25 s1cld ( ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) ∧ ¬ 𝑣𝐴 ) → ⟨“ 𝑣 ”⟩ ∈ Word ( 𝐶𝑉 ) )
27 24 26 ifclda ( ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) ∧ 𝑣 ∈ ( 𝐶𝑉 ) ) → if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ∈ Word ( 𝐶𝑉 ) )
28 27 fmpttd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) : ( 𝐶𝑉 ) ⟶ Word ( 𝐶𝑉 ) )
29 s1co ( ( 𝑋 ∈ ( 𝐶𝑉 ) ∧ ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) : ( 𝐶𝑉 ) ⟶ Word ( 𝐶𝑉 ) ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) = ⟨“ ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) ”⟩ )
30 5 28 29 syl2anc ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) = ⟨“ ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) ”⟩ )
31 eleq1 ( 𝑣 = 𝑋 → ( 𝑣𝐴𝑋𝐴 ) )
32 fveq2 ( 𝑣 = 𝑋 → ( 𝐹𝑣 ) = ( 𝐹𝑋 ) )
33 s1eq ( 𝑣 = 𝑋 → ⟨“ 𝑣 ”⟩ = ⟨“ 𝑋 ”⟩ )
34 31 32 33 ifbieq12d ( 𝑣 = 𝑋 → if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )
35 eqid ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) = ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) )
36 fvex ( 𝐹𝑋 ) ∈ V
37 s1cli ⟨“ 𝑋 ”⟩ ∈ Word V
38 37 elexi ⟨“ 𝑋 ”⟩ ∈ V
39 36 38 ifex if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ∈ V
40 34 35 39 fvmpt ( 𝑋 ∈ ( 𝐶𝑉 ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )
41 40 3ad2ant3 ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )
42 41 s1eqd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ⟨“ ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) ”⟩ = ⟨“ if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ”⟩ )
43 30 42 eqtrd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) = ⟨“ if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ”⟩ )
44 43 oveq2d ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ∘ ⟨“ 𝑋 ”⟩ ) ) = ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ⟨“ if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ”⟩ ) )
45 28 5 ffvelrnd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑣 ∈ ( 𝐶𝑉 ) ↦ if ( 𝑣𝐴 , ( 𝐹𝑣 ) , ⟨“ 𝑣 ”⟩ ) ) ‘ 𝑋 ) ∈ Word ( 𝐶𝑉 ) )
46 41 45 eqeltrrd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ∈ Word ( 𝐶𝑉 ) )
47 1 fvexi 𝐶 ∈ V
48 2 fvexi 𝑉 ∈ V
49 47 48 unex ( 𝐶𝑉 ) ∈ V
50 eqid ( Base ‘ ( freeMnd ‘ ( 𝐶𝑉 ) ) ) = ( Base ‘ ( freeMnd ‘ ( 𝐶𝑉 ) ) )
51 18 50 frmdbas ( ( 𝐶𝑉 ) ∈ V → ( Base ‘ ( freeMnd ‘ ( 𝐶𝑉 ) ) ) = Word ( 𝐶𝑉 ) )
52 49 51 ax-mp ( Base ‘ ( freeMnd ‘ ( 𝐶𝑉 ) ) ) = Word ( 𝐶𝑉 )
53 52 eqcomi Word ( 𝐶𝑉 ) = ( Base ‘ ( freeMnd ‘ ( 𝐶𝑉 ) ) )
54 53 gsumws1 ( if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ∈ Word ( 𝐶𝑉 ) → ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ⟨“ if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ”⟩ ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )
55 46 54 syl ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( freeMnd ‘ ( 𝐶𝑉 ) ) Σg ⟨“ if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) ”⟩ ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )
56 20 44 55 3eqtrd ( ( 𝐹 : 𝐴𝑅𝐴𝑉𝑋 ∈ ( 𝐶𝑉 ) ) → ( ( 𝑆𝐹 ) ‘ ⟨“ 𝑋 ”⟩ ) = if ( 𝑋𝐴 , ( 𝐹𝑋 ) , ⟨“ 𝑋 ”⟩ ) )