Metamath Proof Explorer


Theorem elnn0rabdioph

Description: Diophantine set builder for nonnegativity constraints. The first builder which uses a witness variable internally; an expression is nonnegative if there is a nonnegative integer equal to it. (Contributed by Stefan O'Rear, 11-Oct-2014)

Ref Expression
Assertion elnn0rabdioph N0t1NAmzPoly1Nt01N|A0DiophN

Proof

Step Hyp Ref Expression
1 risset A0b0b=A
2 1 rabbii t01N|A0=t01N|b0b=A
3 2 a1i N0t1NAmzPoly1Nt01N|A0=t01N|b0b=A
4 nfcv _t01N
5 nfcv _a01N
6 nfv ab0b=A
7 nfcv _t0
8 nfcsb1v _ta/tA
9 8 nfeq2 tb=a/tA
10 7 9 nfrexw tb0b=a/tA
11 csbeq1a t=aA=a/tA
12 11 eqeq2d t=ab=Ab=a/tA
13 12 rexbidv t=ab0b=Ab0b=a/tA
14 4 5 6 10 13 cbvrabw t01N|b0b=A=a01N|b0b=a/tA
15 3 14 eqtrdi N0t1NAmzPoly1Nt01N|A0=a01N|b0b=a/tA
16 peano2nn0 N0N+10
17 16 adantr N0t1NAmzPoly1NN+10
18 ovex 1N+1V
19 nn0p1nn N0N+1
20 elfz1end N+1N+11N+1
21 19 20 sylib N0N+11N+1
22 21 adantr N0t1NAmzPoly1NN+11N+1
23 mzpproj 1N+1VN+11N+1c1N+1cN+1mzPoly1N+1
24 18 22 23 sylancr N0t1NAmzPoly1Nc1N+1cN+1mzPoly1N+1
25 eqid N+1=N+1
26 25 rabdiophlem2 N0t1NAmzPoly1Nc1N+1c1N/tAmzPoly1N+1
27 eqrabdioph N+10c1N+1cN+1mzPoly1N+1c1N+1c1N/tAmzPoly1N+1c01N+1|cN+1=c1N/tADiophN+1
28 17 24 26 27 syl3anc N0t1NAmzPoly1Nc01N+1|cN+1=c1N/tADiophN+1
29 eqeq1 b=cN+1b=a/tAcN+1=a/tA
30 csbeq1 a=c1Na/tA=c1N/tA
31 30 eqeq2d a=c1NcN+1=a/tAcN+1=c1N/tA
32 25 29 31 rexrabdioph N0c01N+1|cN+1=c1N/tADiophN+1a01N|b0b=a/tADiophN
33 28 32 syldan N0t1NAmzPoly1Na01N|b0b=a/tADiophN
34 15 33 eqeltrd N0t1NAmzPoly1Nt01N|A0DiophN