Metamath Proof Explorer


Theorem sbcfg

Description: Distribute proper substitution through the function predicate with domain and codomain. (Contributed by Alexander van der Vekens, 15-Jul-2018)

Ref Expression
Assertion sbcfg ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] 𝐹 : 𝐴𝐵 𝑋 / 𝑥 𝐹 : 𝑋 / 𝑥 𝐴 𝑋 / 𝑥 𝐵 ) )

Proof

Step Hyp Ref Expression
1 df-f ( 𝐹 : 𝐴𝐵 ↔ ( 𝐹 Fn 𝐴 ∧ ran 𝐹𝐵 ) )
2 1 a1i ( 𝑋𝑉 → ( 𝐹 : 𝐴𝐵 ↔ ( 𝐹 Fn 𝐴 ∧ ran 𝐹𝐵 ) ) )
3 2 sbcbidv ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] 𝐹 : 𝐴𝐵[ 𝑋 / 𝑥 ] ( 𝐹 Fn 𝐴 ∧ ran 𝐹𝐵 ) ) )
4 sbcfng ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] 𝐹 Fn 𝐴 𝑋 / 𝑥 𝐹 Fn 𝑋 / 𝑥 𝐴 ) )
5 sbcssg ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] ran 𝐹𝐵 𝑋 / 𝑥 ran 𝐹 𝑋 / 𝑥 𝐵 ) )
6 csbrn 𝑋 / 𝑥 ran 𝐹 = ran 𝑋 / 𝑥 𝐹
7 6 sseq1i ( 𝑋 / 𝑥 ran 𝐹 𝑋 / 𝑥 𝐵 ↔ ran 𝑋 / 𝑥 𝐹 𝑋 / 𝑥 𝐵 )
8 5 7 bitrdi ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] ran 𝐹𝐵 ↔ ran 𝑋 / 𝑥 𝐹 𝑋 / 𝑥 𝐵 ) )
9 4 8 anbi12d ( 𝑋𝑉 → ( ( [ 𝑋 / 𝑥 ] 𝐹 Fn 𝐴[ 𝑋 / 𝑥 ] ran 𝐹𝐵 ) ↔ ( 𝑋 / 𝑥 𝐹 Fn 𝑋 / 𝑥 𝐴 ∧ ran 𝑋 / 𝑥 𝐹 𝑋 / 𝑥 𝐵 ) ) )
10 sbcan ( [ 𝑋 / 𝑥 ] ( 𝐹 Fn 𝐴 ∧ ran 𝐹𝐵 ) ↔ ( [ 𝑋 / 𝑥 ] 𝐹 Fn 𝐴[ 𝑋 / 𝑥 ] ran 𝐹𝐵 ) )
11 df-f ( 𝑋 / 𝑥 𝐹 : 𝑋 / 𝑥 𝐴 𝑋 / 𝑥 𝐵 ↔ ( 𝑋 / 𝑥 𝐹 Fn 𝑋 / 𝑥 𝐴 ∧ ran 𝑋 / 𝑥 𝐹 𝑋 / 𝑥 𝐵 ) )
12 9 10 11 3bitr4g ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] ( 𝐹 Fn 𝐴 ∧ ran 𝐹𝐵 ) ↔ 𝑋 / 𝑥 𝐹 : 𝑋 / 𝑥 𝐴 𝑋 / 𝑥 𝐵 ) )
13 3 12 bitrd ( 𝑋𝑉 → ( [ 𝑋 / 𝑥 ] 𝐹 : 𝐴𝐵 𝑋 / 𝑥 𝐹 : 𝑋 / 𝑥 𝐴 𝑋 / 𝑥 𝐵 ) )