Metamath Proof Explorer


Theorem 2rexfrabdioph

Description: Diophantine set builder for existential quantifier, explicit substitution, two variables. (Contributed by Stefan O'Rear, 11-Oct-2014) (Revised by Stefan O'Rear, 6-May-2015)

Ref Expression
Hypotheses rexfrabdioph.1 ⊢ M = N + 1
rexfrabdioph.2 ⊢ L = M + 1
Assertion 2rexfrabdioph ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → u ∈ ℕ 0 1 … N | ∃ v ∈ ℕ 0 ∃ w ∈ ℕ 0 φ ∈ Dioph ⁡ N

Proof

Step Hyp Ref Expression
1 rexfrabdioph.1 ⊢ M = N + 1
2 rexfrabdioph.2 ⊢ L = M + 1
3 2sbcrex ⊢ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ ∃ w ∈ ℕ 0 φ ↔ ∃ w ∈ ℕ 0 [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ
4 3 rabbii ⊢ a ∈ ℕ 0 1 … M | [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ ∃ w ∈ ℕ 0 φ = a ∈ ℕ 0 1 … M | ∃ w ∈ ℕ 0 [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ
5 peano2nn0 ⊢ N ∈ ℕ 0 → N + 1 ∈ ℕ 0
6 1 5 eqeltrid ⊢ N ∈ ℕ 0 → M ∈ ℕ 0
7 6 adantr ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → M ∈ ℕ 0
8 sbcrot3 ⊢ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ↔ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
9 8 sbcbii ⊢ [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ↔ [˙ t ↾ 1 … M / a]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
10 reseq1 ⊢ a = t ↾ 1 … M → a ↾ 1 … N = t ↾ 1 … M ↾ 1 … N
11 10 sbccomieg ⊢ [˙ t ↾ 1 … M / a]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … M ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
12 fzssp1 ⊢ 1 … N ⊆ 1 … N + 1
13 1 oveq2i ⊢ 1 … M = 1 … N + 1
14 12 13 sseqtrri ⊢ 1 … N ⊆ 1 … M
15 resabs1 ⊢ 1 … N ⊆ 1 … M → t ↾ 1 … M ↾ 1 … N = t ↾ 1 … N
16 dfsbcq ⊢ t ↾ 1 … M ↾ 1 … N = t ↾ 1 … N → [˙ t ↾ 1 … M ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
17 14 15 16 mp2b ⊢ [˙ t ↾ 1 … M ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
18 vex ⊢ t ∈ V
19 18 resex ⊢ t ↾ 1 … M ∈ V
20 fveq1 ⊢ a = t ↾ 1 … M → a ⁡ M = t ↾ 1 … M ⁡ M
21 20 sbcco3gw ⊢ t ↾ 1 … M ∈ V → [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … M ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
22 19 21 ax-mp ⊢ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … M ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
23 nn0p1nn ⊢ N ∈ ℕ 0 → N + 1 ∈ ℕ
24 1 23 eqeltrid ⊢ N ∈ ℕ 0 → M ∈ ℕ
25 elfz1end ⊢ M ∈ ℕ ↔ M ∈ 1 … M
26 24 25 sylib ⊢ N ∈ ℕ 0 → M ∈ 1 … M
27 fvres ⊢ M ∈ 1 … M → t ↾ 1 … M ⁡ M = t ⁡ M
28 dfsbcq ⊢ t ↾ 1 … M ⁡ M = t ⁡ M → [˙ t ↾ 1 … M ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
29 26 27 28 3syl ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … M ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
30 22 29 bitrid ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
31 30 sbcbidv ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
32 17 31 bitrid ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … M ↾ 1 … N / u]˙ [˙ t ↾ 1 … M / a]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
33 11 32 bitrid ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … M / a]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ
34 9 33 bitr2id ⊢ N ∈ ℕ 0 → [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ↔ [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ
35 34 rabbidv ⊢ N ∈ ℕ 0 → t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ = t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ
36 35 eleq1d ⊢ N ∈ ℕ 0 → t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L ↔ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ∈ Dioph ⁡ L
37 36 biimpa ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ∈ Dioph ⁡ L
38 2 rexfrabdioph ⊢ M ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … M / a]˙ [˙ t ⁡ L / w]˙ [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ∈ Dioph ⁡ L → a ∈ ℕ 0 1 … M | ∃ w ∈ ℕ 0 [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ∈ Dioph ⁡ M
39 7 37 38 syl2anc ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → a ∈ ℕ 0 1 … M | ∃ w ∈ ℕ 0 [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ φ ∈ Dioph ⁡ M
40 4 39 eqeltrid ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → a ∈ ℕ 0 1 … M | [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ ∃ w ∈ ℕ 0 φ ∈ Dioph ⁡ M
41 1 rexfrabdioph ⊢ N ∈ ℕ 0 ∧ a ∈ ℕ 0 1 … M | [˙ a ↾ 1 … N / u]˙ [˙ a ⁡ M / v]˙ ∃ w ∈ ℕ 0 φ ∈ Dioph ⁡ M → u ∈ ℕ 0 1 … N | ∃ v ∈ ℕ 0 ∃ w ∈ ℕ 0 φ ∈ Dioph ⁡ N
42 40 41 syldan ⊢ N ∈ ℕ 0 ∧ t ∈ ℕ 0 1 … L | [˙ t ↾ 1 … N / u]˙ [˙ t ⁡ M / v]˙ [˙ t ⁡ L / w]˙ φ ∈ Dioph ⁡ L → u ∈ ℕ 0 1 … N | ∃ v ∈ ℕ 0 ∃ w ∈ ℕ 0 φ ∈ Dioph ⁡ N