Metamath Proof Explorer


Theorem rabrenfdioph

Description: Change variable numbers in a Diophantine class abstraction using explicit substitution. (Contributed by Stefan O'Rear, 17-Oct-2014)

Ref Expression
Assertion rabrenfdioph ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ∧ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ∈ ( Dioph ‘ 𝐴 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 } ∈ ( Dioph ‘ 𝐵 ) )

Proof

Step Hyp Ref Expression
1 simpr ( ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) ∧ 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) → 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) )
2 simplr ( ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) ∧ 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) → 𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) )
3 ovex ( 1 ... 𝐴 ) ∈ V
4 3 mapco2 ( ( 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∧ 𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) → ( 𝑏𝐹 ) ∈ ( ℕ0m ( 1 ... 𝐴 ) ) )
5 1 2 4 syl2anc ( ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) ∧ 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) → ( 𝑏𝐹 ) ∈ ( ℕ0m ( 1 ... 𝐴 ) ) )
6 5 biantrurd ( ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) ∧ 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) → ( [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 ↔ ( ( 𝑏𝐹 ) ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∧ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 ) ) )
7 nfcv 𝑎 ( ℕ0m ( 1 ... 𝐴 ) )
8 7 elrabsf ( ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ↔ ( ( 𝑏𝐹 ) ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∧ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 ) )
9 6 8 bitr4di ( ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) ∧ 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) → ( [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 ↔ ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ) )
10 9 rabbidva ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 } = { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } } )
11 10 3adant3 ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ∧ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ∈ ( Dioph ‘ 𝐴 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 } = { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } } )
12 diophren ( ( { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ∈ ( Dioph ‘ 𝐴 ) ∧ 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } } ∈ ( Dioph ‘ 𝐵 ) )
13 12 3coml ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ∧ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ∈ ( Dioph ‘ 𝐴 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ ( 𝑏𝐹 ) ∈ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } } ∈ ( Dioph ‘ 𝐵 ) )
14 11 13 eqeltrd ( ( 𝐵 ∈ ℕ0𝐹 : ( 1 ... 𝐴 ) ⟶ ( 1 ... 𝐵 ) ∧ { 𝑎 ∈ ( ℕ0m ( 1 ... 𝐴 ) ) ∣ 𝜑 } ∈ ( Dioph ‘ 𝐴 ) ) → { 𝑏 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ∣ [ ( 𝑏𝐹 ) / 𝑎 ] 𝜑 } ∈ ( Dioph ‘ 𝐵 ) )