Metamath Proof Explorer


Theorem zindbi

Description: Inductively transfer a property to the integers if it holds for zero and passes between adjacent integers in either direction. (Contributed by Stefan O'Rear, 1-Oct-2014)

Ref Expression
Hypotheses zindbi.1 ( 𝑦 ∈ ℤ → ( 𝜓𝜒 ) )
zindbi.2 ( 𝑥 = 𝑦 → ( 𝜑𝜓 ) )
zindbi.3 ( 𝑥 = ( 𝑦 + 1 ) → ( 𝜑𝜒 ) )
zindbi.4 ( 𝑥 = 0 → ( 𝜑𝜃 ) )
zindbi.5 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
Assertion zindbi ( 𝐴 ∈ ℤ → ( 𝜃𝜏 ) )

Proof

Step Hyp Ref Expression
1 zindbi.1 ( 𝑦 ∈ ℤ → ( 𝜓𝜒 ) )
2 zindbi.2 ( 𝑥 = 𝑦 → ( 𝜑𝜓 ) )
3 zindbi.3 ( 𝑥 = ( 𝑦 + 1 ) → ( 𝜑𝜒 ) )
4 zindbi.4 ( 𝑥 = 0 → ( 𝜑𝜃 ) )
5 zindbi.5 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
6 c0ex 0 ∈ V
7 6 4 sbcie ( [ 0 / 𝑥 ] 𝜑𝜃 )
8 0z 0 ∈ ℤ
9 eleq1 ( 𝑦 = 0 → ( 𝑦 ∈ ℤ ↔ 0 ∈ ℤ ) )
10 breq1 ( 𝑦 = 0 → ( 𝑦𝑏 ↔ 0 ≤ 𝑏 ) )
11 9 10 3anbi13d ( 𝑦 = 0 → ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) ↔ ( 0 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 0 ≤ 𝑏 ) ) )
12 dfsbcq ( 𝑦 = 0 → ( [ 𝑦 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) )
13 12 bibi1d ( 𝑦 = 0 → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ↔ ( [ 0 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) )
14 11 13 imbi12d ( 𝑦 = 0 → ( ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ↔ ( ( 0 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 0 ≤ 𝑏 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ) )
15 eleq1 ( 𝑏 = 𝐴 → ( 𝑏 ∈ ℤ ↔ 𝐴 ∈ ℤ ) )
16 breq2 ( 𝑏 = 𝐴 → ( 0 ≤ 𝑏 ↔ 0 ≤ 𝐴 ) )
17 15 16 3anbi23d ( 𝑏 = 𝐴 → ( ( 0 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 0 ≤ 𝑏 ) ↔ ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) ) )
18 dfsbcq ( 𝑏 = 𝐴 → ( [ 𝑏 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
19 18 bibi2d ( 𝑏 = 𝐴 → ( ( [ 0 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ↔ ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) ) )
20 17 19 imbi12d ( 𝑏 = 𝐴 → ( ( ( 0 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 0 ≤ 𝑏 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ↔ ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) ) ) )
21 dfsbcq ( 𝑎 = 𝑦 → ( [ 𝑎 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) )
22 21 bibi2d ( 𝑎 = 𝑦 → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) )
23 dfsbcq ( 𝑎 = 𝑏 → ( [ 𝑎 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) )
24 23 bibi2d ( 𝑎 = 𝑏 → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) )
25 dfsbcq ( 𝑎 = ( 𝑏 + 1 ) → ( [ 𝑎 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) )
26 25 bibi2d ( 𝑎 = ( 𝑏 + 1 ) → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ 𝑦 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) ) )
27 biidd ( 𝑦 ∈ ℤ → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) )
28 vex 𝑦 ∈ V
29 28 2 sbcie ( [ 𝑦 / 𝑥 ] 𝜑𝜓 )
30 dfsbcq ( 𝑦 = 𝑏 → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) )
31 29 30 bitr3id ( 𝑦 = 𝑏 → ( 𝜓[ 𝑏 / 𝑥 ] 𝜑 ) )
32 ovex ( 𝑦 + 1 ) ∈ V
33 32 3 sbcie ( [ ( 𝑦 + 1 ) / 𝑥 ] 𝜑𝜒 )
34 oveq1 ( 𝑦 = 𝑏 → ( 𝑦 + 1 ) = ( 𝑏 + 1 ) )
35 34 sbceq1d ( 𝑦 = 𝑏 → ( [ ( 𝑦 + 1 ) / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) )
36 33 35 bitr3id ( 𝑦 = 𝑏 → ( 𝜒[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) )
37 31 36 bibi12d ( 𝑦 = 𝑏 → ( ( 𝜓𝜒 ) ↔ ( [ 𝑏 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) ) )
38 37 1 vtoclga ( 𝑏 ∈ ℤ → ( [ 𝑏 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) )
39 38 3ad2ant2 ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( [ 𝑏 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) )
40 39 bibi2d ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ↔ ( [ 𝑦 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) ) )
41 40 biimpd ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ ( 𝑏 + 1 ) / 𝑥 ] 𝜑 ) ) )
42 22 24 26 24 27 41 uzind ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) )
43 14 20 42 vtocl2g ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ) → ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) ) )
44 43 3adant3 ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) ) )
45 44 pm2.43i ( ( 0 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
46 8 45 mp3an1 ( ( 𝐴 ∈ ℤ ∧ 0 ≤ 𝐴 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
47 eleq1 ( 𝑦 = 𝐴 → ( 𝑦 ∈ ℤ ↔ 𝐴 ∈ ℤ ) )
48 breq1 ( 𝑦 = 𝐴 → ( 𝑦𝑏𝐴𝑏 ) )
49 47 48 3anbi13d ( 𝑦 = 𝐴 → ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) ↔ ( 𝐴 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝐴𝑏 ) ) )
50 dfsbcq ( 𝑦 = 𝐴 → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
51 50 bibi1d ( 𝑦 = 𝐴 → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ↔ ( [ 𝐴 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) )
52 49 51 imbi12d ( 𝑦 = 𝐴 → ( ( ( 𝑦 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝑦𝑏 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ↔ ( ( 𝐴 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝐴𝑏 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ) )
53 eleq1 ( 𝑏 = 0 → ( 𝑏 ∈ ℤ ↔ 0 ∈ ℤ ) )
54 breq2 ( 𝑏 = 0 → ( 𝐴𝑏𝐴 ≤ 0 ) )
55 53 54 3anbi23d ( 𝑏 = 0 → ( ( 𝐴 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝐴𝑏 ) ↔ ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) ) )
56 dfsbcq ( 𝑏 = 0 → ( [ 𝑏 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) )
57 56 bibi2d ( 𝑏 = 0 → ( ( [ 𝐴 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ↔ ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) ) )
58 55 57 imbi12d ( 𝑏 = 0 → ( ( ( 𝐴 ∈ ℤ ∧ 𝑏 ∈ ℤ ∧ 𝐴𝑏 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 𝑏 / 𝑥 ] 𝜑 ) ) ↔ ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) ) ) )
59 52 58 42 vtocl2g ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ) → ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) ) )
60 59 3adant3 ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) ) )
61 60 pm2.43i ( ( 𝐴 ∈ ℤ ∧ 0 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) )
62 8 61 mp3an2 ( ( 𝐴 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 𝐴 / 𝑥 ] 𝜑[ 0 / 𝑥 ] 𝜑 ) )
63 62 bicomd ( ( 𝐴 ∈ ℤ ∧ 𝐴 ≤ 0 ) → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
64 0re 0 ∈ ℝ
65 zre ( 𝐴 ∈ ℤ → 𝐴 ∈ ℝ )
66 letric ( ( 0 ∈ ℝ ∧ 𝐴 ∈ ℝ ) → ( 0 ≤ 𝐴𝐴 ≤ 0 ) )
67 64 65 66 sylancr ( 𝐴 ∈ ℤ → ( 0 ≤ 𝐴𝐴 ≤ 0 ) )
68 46 63 67 mpjaodan ( 𝐴 ∈ ℤ → ( [ 0 / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
69 7 68 bitr3id ( 𝐴 ∈ ℤ → ( 𝜃[ 𝐴 / 𝑥 ] 𝜑 ) )
70 5 sbcieg ( 𝐴 ∈ ℤ → ( [ 𝐴 / 𝑥 ] 𝜑𝜏 ) )
71 69 70 bitrd ( 𝐴 ∈ ℤ → ( 𝜃𝜏 ) )