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 ⊢ y ∈ ℤ → ψ ↔ χ
zindbi.2 ⊢ x = y → φ ↔ ψ
zindbi.3 ⊢ x = y + 1 → φ ↔ χ
zindbi.4 ⊢ x = 0 → φ ↔ θ
zindbi.5 ⊢ x = A → φ ↔ τ
Assertion zindbi ⊢ A ∈ ℤ → θ ↔ τ

Proof

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