Metamath Proof Explorer


Theorem 2nn0ind

Description: Induction on nonnegative integers with two base cases, for use with Lucas-type sequences. (Contributed by Stefan O'Rear, 1-Oct-2014)

Ref Expression
Hypotheses 2nn0ind.1 𝜓
2nn0ind.2 𝜒
2nn0ind.3 ( 𝑦 ∈ ℕ → ( ( 𝜃𝜏 ) → 𝜂 ) )
2nn0ind.4 ( 𝑥 = 0 → ( 𝜑𝜓 ) )
2nn0ind.5 ( 𝑥 = 1 → ( 𝜑𝜒 ) )
2nn0ind.6 ( 𝑥 = ( 𝑦 − 1 ) → ( 𝜑𝜃 ) )
2nn0ind.7 ( 𝑥 = 𝑦 → ( 𝜑𝜏 ) )
2nn0ind.8 ( 𝑥 = ( 𝑦 + 1 ) → ( 𝜑𝜂 ) )
2nn0ind.9 ( 𝑥 = 𝐴 → ( 𝜑𝜌 ) )
Assertion 2nn0ind ( 𝐴 ∈ ℕ0𝜌 )

Proof

Step Hyp Ref Expression
1 2nn0ind.1 𝜓
2 2nn0ind.2 𝜒
3 2nn0ind.3 ( 𝑦 ∈ ℕ → ( ( 𝜃𝜏 ) → 𝜂 ) )
4 2nn0ind.4 ( 𝑥 = 0 → ( 𝜑𝜓 ) )
5 2nn0ind.5 ( 𝑥 = 1 → ( 𝜑𝜒 ) )
6 2nn0ind.6 ( 𝑥 = ( 𝑦 − 1 ) → ( 𝜑𝜃 ) )
7 2nn0ind.7 ( 𝑥 = 𝑦 → ( 𝜑𝜏 ) )
8 2nn0ind.8 ( 𝑥 = ( 𝑦 + 1 ) → ( 𝜑𝜂 ) )
9 2nn0ind.9 ( 𝑥 = 𝐴 → ( 𝜑𝜌 ) )
10 nn0p1nn ( 𝐴 ∈ ℕ0 → ( 𝐴 + 1 ) ∈ ℕ )
11 oveq1 ( 𝑎 = 1 → ( 𝑎 − 1 ) = ( 1 − 1 ) )
12 11 sbceq1d ( 𝑎 = 1 → ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ ( 1 − 1 ) / 𝑥 ] 𝜑 ) )
13 dfsbcq ( 𝑎 = 1 → ( [ 𝑎 / 𝑥 ] 𝜑[ 1 / 𝑥 ] 𝜑 ) )
14 12 13 anbi12d ( 𝑎 = 1 → ( ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ ( 1 − 1 ) / 𝑥 ] 𝜑[ 1 / 𝑥 ] 𝜑 ) ) )
15 oveq1 ( 𝑎 = 𝑦 → ( 𝑎 − 1 ) = ( 𝑦 − 1 ) )
16 15 sbceq1d ( 𝑎 = 𝑦 → ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ ( 𝑦 − 1 ) / 𝑥 ] 𝜑 ) )
17 dfsbcq ( 𝑎 = 𝑦 → ( [ 𝑎 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) )
18 16 17 anbi12d ( 𝑎 = 𝑦 → ( ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) )
19 oveq1 ( 𝑎 = ( 𝑦 + 1 ) → ( 𝑎 − 1 ) = ( ( 𝑦 + 1 ) − 1 ) )
20 19 sbceq1d ( 𝑎 = ( 𝑦 + 1 ) → ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑 ) )
21 dfsbcq ( 𝑎 = ( 𝑦 + 1 ) → ( [ 𝑎 / 𝑥 ] 𝜑[ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 ) )
22 20 21 anbi12d ( 𝑎 = ( 𝑦 + 1 ) → ( ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 ) ) )
23 oveq1 ( 𝑎 = ( 𝐴 + 1 ) → ( 𝑎 − 1 ) = ( ( 𝐴 + 1 ) − 1 ) )
24 23 sbceq1d ( 𝑎 = ( 𝐴 + 1 ) → ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑 ) )
25 dfsbcq ( 𝑎 = ( 𝐴 + 1 ) → ( [ 𝑎 / 𝑥 ] 𝜑[ ( 𝐴 + 1 ) / 𝑥 ] 𝜑 ) )
26 24 25 anbi12d ( 𝑎 = ( 𝐴 + 1 ) → ( ( [ ( 𝑎 − 1 ) / 𝑥 ] 𝜑[ 𝑎 / 𝑥 ] 𝜑 ) ↔ ( [ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝐴 + 1 ) / 𝑥 ] 𝜑 ) ) )
27 ovex ( 1 − 1 ) ∈ V
28 1m1e0 ( 1 − 1 ) = 0
29 28 eqeq2i ( 𝑥 = ( 1 − 1 ) ↔ 𝑥 = 0 )
30 29 4 sylbi ( 𝑥 = ( 1 − 1 ) → ( 𝜑𝜓 ) )
31 27 30 sbcie ( [ ( 1 − 1 ) / 𝑥 ] 𝜑𝜓 )
32 1 31 mpbir [ ( 1 − 1 ) / 𝑥 ] 𝜑
33 1ex 1 ∈ V
34 33 5 sbcie ( [ 1 / 𝑥 ] 𝜑𝜒 )
35 2 34 mpbir [ 1 / 𝑥 ] 𝜑
36 32 35 pm3.2i ( [ ( 1 − 1 ) / 𝑥 ] 𝜑[ 1 / 𝑥 ] 𝜑 )
37 simprr ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → [ 𝑦 / 𝑥 ] 𝜑 )
38 nncn ( 𝑦 ∈ ℕ → 𝑦 ∈ ℂ )
39 ax-1cn 1 ∈ ℂ
40 pncan ( ( 𝑦 ∈ ℂ ∧ 1 ∈ ℂ ) → ( ( 𝑦 + 1 ) − 1 ) = 𝑦 )
41 38 39 40 sylancl ( 𝑦 ∈ ℕ → ( ( 𝑦 + 1 ) − 1 ) = 𝑦 )
42 41 adantr ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → ( ( 𝑦 + 1 ) − 1 ) = 𝑦 )
43 42 sbceq1d ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → ( [ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) )
44 37 43 mpbird ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → [ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑 )
45 ovex ( 𝑦 − 1 ) ∈ V
46 45 6 sbcie ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑𝜃 )
47 vex 𝑦 ∈ V
48 47 7 sbcie ( [ 𝑦 / 𝑥 ] 𝜑𝜏 )
49 46 48 anbi12i ( ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ↔ ( 𝜃𝜏 ) )
50 ovex ( 𝑦 + 1 ) ∈ V
51 50 8 sbcie ( [ ( 𝑦 + 1 ) / 𝑥 ] 𝜑𝜂 )
52 3 49 51 3imtr4g ( 𝑦 ∈ ℕ → ( ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) → [ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 ) )
53 52 imp ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → [ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 )
54 44 53 jca ( ( 𝑦 ∈ ℕ ∧ ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) ) → ( [ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 ) )
55 54 ex ( 𝑦 ∈ ℕ → ( ( [ ( 𝑦 − 1 ) / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 ) → ( [ ( ( 𝑦 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝑦 + 1 ) / 𝑥 ] 𝜑 ) ) )
56 14 18 22 26 36 55 nnind ( ( 𝐴 + 1 ) ∈ ℕ → ( [ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝐴 + 1 ) / 𝑥 ] 𝜑 ) )
57 10 56 syl ( 𝐴 ∈ ℕ0 → ( [ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝐴 + 1 ) / 𝑥 ] 𝜑 ) )
58 nn0cn ( 𝐴 ∈ ℕ0𝐴 ∈ ℂ )
59 pncan ( ( 𝐴 ∈ ℂ ∧ 1 ∈ ℂ ) → ( ( 𝐴 + 1 ) − 1 ) = 𝐴 )
60 58 39 59 sylancl ( 𝐴 ∈ ℕ0 → ( ( 𝐴 + 1 ) − 1 ) = 𝐴 )
61 60 sbceq1d ( 𝐴 ∈ ℕ0 → ( [ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑[ 𝐴 / 𝑥 ] 𝜑 ) )
62 61 biimpa ( ( 𝐴 ∈ ℕ0[ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑 ) → [ 𝐴 / 𝑥 ] 𝜑 )
63 62 adantrr ( ( 𝐴 ∈ ℕ0 ∧ ( [ ( ( 𝐴 + 1 ) − 1 ) / 𝑥 ] 𝜑[ ( 𝐴 + 1 ) / 𝑥 ] 𝜑 ) ) → [ 𝐴 / 𝑥 ] 𝜑 )
64 57 63 mpdan ( 𝐴 ∈ ℕ0[ 𝐴 / 𝑥 ] 𝜑 )
65 9 sbcieg ( 𝐴 ∈ ℕ0 → ( [ 𝐴 / 𝑥 ] 𝜑𝜌 ) )
66 64 65 mpbid ( 𝐴 ∈ ℕ0𝜌 )