Metamath Proof Explorer


Theorem indpi

Description: Principle of Finite Induction on positive integers. (Contributed by NM, 23-Mar-1996) (New usage is discouraged.)

Ref Expression
Hypotheses indpi.1 ( 𝑥 = 1o → ( 𝜑𝜓 ) )
indpi.2 ( 𝑥 = 𝑦 → ( 𝜑𝜒 ) )
indpi.3 ( 𝑥 = ( 𝑦 +N 1o ) → ( 𝜑𝜃 ) )
indpi.4 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
indpi.5 𝜓
indpi.6 ( 𝑦N → ( 𝜒𝜃 ) )
Assertion indpi ( 𝐴N𝜏 )

Proof

Step Hyp Ref Expression
1 indpi.1 ( 𝑥 = 1o → ( 𝜑𝜓 ) )
2 indpi.2 ( 𝑥 = 𝑦 → ( 𝜑𝜒 ) )
3 indpi.3 ( 𝑥 = ( 𝑦 +N 1o ) → ( 𝜑𝜃 ) )
4 indpi.4 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
5 indpi.5 𝜓
6 indpi.6 ( 𝑦N → ( 𝜒𝜃 ) )
7 1oex 1o ∈ V
8 7 eqvinc ( 1o = 𝐴 ↔ ∃ 𝑥 ( 𝑥 = 1o𝑥 = 𝐴 ) )
9 5 1 mpbiri ( 𝑥 = 1o𝜑 )
10 8 4 9 gencl ( 1o = 𝐴𝜏 )
11 10 eqcoms ( 𝐴 = 1o𝜏 )
12 11 a1i ( 𝐴N → ( 𝐴 = 1o𝜏 ) )
13 pinn ( 𝐴N𝐴 ∈ ω )
14 elni2 ( 𝐴N ↔ ( 𝐴 ∈ ω ∧ ∅ ∈ 𝐴 ) )
15 nnord ( 𝐴 ∈ ω → Ord 𝐴 )
16 ordsucss ( Ord 𝐴 → ( ∅ ∈ 𝐴 → suc ∅ ⊆ 𝐴 ) )
17 15 16 syl ( 𝐴 ∈ ω → ( ∅ ∈ 𝐴 → suc ∅ ⊆ 𝐴 ) )
18 df-1o 1o = suc ∅
19 18 sseq1i ( 1o𝐴 ↔ suc ∅ ⊆ 𝐴 )
20 17 19 syl6ibr ( 𝐴 ∈ ω → ( ∅ ∈ 𝐴 → 1o𝐴 ) )
21 20 imp ( ( 𝐴 ∈ ω ∧ ∅ ∈ 𝐴 ) → 1o𝐴 )
22 14 21 sylbi ( 𝐴N → 1o𝐴 )
23 1onn 1o ∈ ω
24 eleq1 ( 𝑥 = 1o → ( 𝑥N ↔ 1oN ) )
25 breq2 ( 𝑥 = 1o → ( 1o <N 𝑥 ↔ 1o <N 1o ) )
26 24 25 anbi12d ( 𝑥 = 1o → ( ( 𝑥N ∧ 1o <N 𝑥 ) ↔ ( 1oN ∧ 1o <N 1o ) ) )
27 26 1 imbi12d ( 𝑥 = 1o → ( ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝜑 ) ↔ ( ( 1oN ∧ 1o <N 1o ) → 𝜓 ) ) )
28 eleq1 ( 𝑥 = 𝑦 → ( 𝑥N𝑦N ) )
29 breq2 ( 𝑥 = 𝑦 → ( 1o <N 𝑥 ↔ 1o <N 𝑦 ) )
30 28 29 anbi12d ( 𝑥 = 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) ↔ ( 𝑦N ∧ 1o <N 𝑦 ) ) )
31 30 2 imbi12d ( 𝑥 = 𝑦 → ( ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝜑 ) ↔ ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) ) )
32 pinn ( 𝑥N𝑥 ∈ ω )
33 eleq1 ( 𝑥 = suc 𝑦 → ( 𝑥 ∈ ω ↔ suc 𝑦 ∈ ω ) )
34 peano2b ( 𝑦 ∈ ω ↔ suc 𝑦 ∈ ω )
35 33 34 bitr4di ( 𝑥 = suc 𝑦 → ( 𝑥 ∈ ω ↔ 𝑦 ∈ ω ) )
36 32 35 syl5ib ( 𝑥 = suc 𝑦 → ( 𝑥N𝑦 ∈ ω ) )
37 36 adantrd ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝑦 ∈ ω ) )
38 1pi 1oN
39 ltpiord ( ( 1oN𝑥N ) → ( 1o <N 𝑥 ↔ 1o𝑥 ) )
40 38 39 mpan ( 𝑥N → ( 1o <N 𝑥 ↔ 1o𝑥 ) )
41 40 biimpa ( ( 𝑥N ∧ 1o <N 𝑥 ) → 1o𝑥 )
42 eleq2 ( 𝑥 = suc 𝑦 → ( 1o𝑥 ↔ 1o ∈ suc 𝑦 ) )
43 elsuci ( 1o ∈ suc 𝑦 → ( 1o𝑦 ∨ 1o = 𝑦 ) )
44 ne0i ( 1o𝑦𝑦 ≠ ∅ )
45 0lt1o ∅ ∈ 1o
46 eleq2 ( 1o = 𝑦 → ( ∅ ∈ 1o ↔ ∅ ∈ 𝑦 ) )
47 45 46 mpbii ( 1o = 𝑦 → ∅ ∈ 𝑦 )
48 47 ne0d ( 1o = 𝑦𝑦 ≠ ∅ )
49 44 48 jaoi ( ( 1o𝑦 ∨ 1o = 𝑦 ) → 𝑦 ≠ ∅ )
50 43 49 syl ( 1o ∈ suc 𝑦𝑦 ≠ ∅ )
51 42 50 syl6bi ( 𝑥 = suc 𝑦 → ( 1o𝑥𝑦 ≠ ∅ ) )
52 41 51 syl5 ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝑦 ≠ ∅ ) )
53 37 52 jcad ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → ( 𝑦 ∈ ω ∧ 𝑦 ≠ ∅ ) ) )
54 elni ( 𝑦N ↔ ( 𝑦 ∈ ω ∧ 𝑦 ≠ ∅ ) )
55 53 54 syl6ibr ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝑦N ) )
56 simpr ( ( 𝑥N ∧ 1o <N 𝑥 ) → 1o <N 𝑥 )
57 breq2 ( 𝑥 = suc 𝑦 → ( 1o <N 𝑥 ↔ 1o <N suc 𝑦 ) )
58 56 57 syl5ib ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → 1o <N suc 𝑦 ) )
59 55 58 jcad ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) → ( 𝑦N ∧ 1o <N suc 𝑦 ) ) )
60 addclpi ( ( 𝑦N ∧ 1oN ) → ( 𝑦 +N 1o ) ∈ N )
61 38 60 mpan2 ( 𝑦N → ( 𝑦 +N 1o ) ∈ N )
62 addpiord ( ( 𝑦N ∧ 1oN ) → ( 𝑦 +N 1o ) = ( 𝑦 +o 1o ) )
63 38 62 mpan2 ( 𝑦N → ( 𝑦 +N 1o ) = ( 𝑦 +o 1o ) )
64 pion ( 𝑦N𝑦 ∈ On )
65 oa1suc ( 𝑦 ∈ On → ( 𝑦 +o 1o ) = suc 𝑦 )
66 64 65 syl ( 𝑦N → ( 𝑦 +o 1o ) = suc 𝑦 )
67 63 66 eqtrd ( 𝑦N → ( 𝑦 +N 1o ) = suc 𝑦 )
68 67 eqeq2d ( 𝑦N → ( 𝑥 = ( 𝑦 +N 1o ) ↔ 𝑥 = suc 𝑦 ) )
69 68 biimparc ( ( 𝑥 = suc 𝑦𝑦N ) → 𝑥 = ( 𝑦 +N 1o ) )
70 69 eleq1d ( ( 𝑥 = suc 𝑦𝑦N ) → ( 𝑥N ↔ ( 𝑦 +N 1o ) ∈ N ) )
71 61 70 syl5ibr ( ( 𝑥 = suc 𝑦𝑦N ) → ( 𝑦N𝑥N ) )
72 71 ex ( 𝑥 = suc 𝑦 → ( 𝑦N → ( 𝑦N𝑥N ) ) )
73 72 pm2.43d ( 𝑥 = suc 𝑦 → ( 𝑦N𝑥N ) )
74 57 biimprd ( 𝑥 = suc 𝑦 → ( 1o <N suc 𝑦 → 1o <N 𝑥 ) )
75 73 74 anim12d ( 𝑥 = suc 𝑦 → ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → ( 𝑥N ∧ 1o <N 𝑥 ) ) )
76 59 75 impbid ( 𝑥 = suc 𝑦 → ( ( 𝑥N ∧ 1o <N 𝑥 ) ↔ ( 𝑦N ∧ 1o <N suc 𝑦 ) ) )
77 76 imbi1d ( 𝑥 = suc 𝑦 → ( ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝜑 ) ↔ ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜑 ) ) )
78 68 3 syl6bir ( 𝑦N → ( 𝑥 = suc 𝑦 → ( 𝜑𝜃 ) ) )
79 78 adantr ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → ( 𝑥 = suc 𝑦 → ( 𝜑𝜃 ) ) )
80 79 com12 ( 𝑥 = suc 𝑦 → ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → ( 𝜑𝜃 ) ) )
81 80 pm5.74d ( 𝑥 = suc 𝑦 → ( ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜑 ) ↔ ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜃 ) ) )
82 77 81 bitrd ( 𝑥 = suc 𝑦 → ( ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝜑 ) ↔ ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜃 ) ) )
83 eleq1 ( 𝑥 = 𝐴 → ( 𝑥N𝐴N ) )
84 breq2 ( 𝑥 = 𝐴 → ( 1o <N 𝑥 ↔ 1o <N 𝐴 ) )
85 83 84 anbi12d ( 𝑥 = 𝐴 → ( ( 𝑥N ∧ 1o <N 𝑥 ) ↔ ( 𝐴N ∧ 1o <N 𝐴 ) ) )
86 85 4 imbi12d ( 𝑥 = 𝐴 → ( ( ( 𝑥N ∧ 1o <N 𝑥 ) → 𝜑 ) ↔ ( ( 𝐴N ∧ 1o <N 𝐴 ) → 𝜏 ) ) )
87 5 2a1i ( 1o ∈ ω → ( ( 1oN ∧ 1o <N 1o ) → 𝜓 ) )
88 ltpiord ( ( 1oN𝑦N ) → ( 1o <N 𝑦 ↔ 1o𝑦 ) )
89 38 88 mpan ( 𝑦N → ( 1o <N 𝑦 ↔ 1o𝑦 ) )
90 89 pm5.32i ( ( 𝑦N ∧ 1o <N 𝑦 ) ↔ ( 𝑦N ∧ 1o𝑦 ) )
91 90 simplbi2 ( 𝑦N → ( 1o𝑦 → ( 𝑦N ∧ 1o <N 𝑦 ) ) )
92 91 imim1d ( 𝑦N → ( ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) → ( 1o𝑦𝜒 ) ) )
93 ltrelpi <N ⊆ ( N × N )
94 93 brel ( 1o <N suc 𝑦 → ( 1oN ∧ suc 𝑦N ) )
95 ltpiord ( ( 1oN ∧ suc 𝑦N ) → ( 1o <N suc 𝑦 ↔ 1o ∈ suc 𝑦 ) )
96 94 95 syl ( 1o <N suc 𝑦 → ( 1o <N suc 𝑦 ↔ 1o ∈ suc 𝑦 ) )
97 96 ibi ( 1o <N suc 𝑦 → 1o ∈ suc 𝑦 )
98 7 eqvinc ( 1o = 𝑦 ↔ ∃ 𝑥 ( 𝑥 = 1o𝑥 = 𝑦 ) )
99 98 2 9 gencl ( 1o = 𝑦𝜒 )
100 jao ( ( 1o𝑦𝜒 ) → ( ( 1o = 𝑦𝜒 ) → ( ( 1o𝑦 ∨ 1o = 𝑦 ) → 𝜒 ) ) )
101 99 100 mpi ( ( 1o𝑦𝜒 ) → ( ( 1o𝑦 ∨ 1o = 𝑦 ) → 𝜒 ) )
102 43 101 syl5 ( ( 1o𝑦𝜒 ) → ( 1o ∈ suc 𝑦𝜒 ) )
103 97 102 syl5 ( ( 1o𝑦𝜒 ) → ( 1o <N suc 𝑦𝜒 ) )
104 92 103 syl6com ( ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) → ( 𝑦N → ( 1o <N suc 𝑦𝜒 ) ) )
105 104 impd ( ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) → ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜒 ) )
106 18 sseq1i ( 1o𝑦 ↔ suc ∅ ⊆ 𝑦 )
107 0ex ∅ ∈ V
108 sucssel ( ∅ ∈ V → ( suc ∅ ⊆ 𝑦 → ∅ ∈ 𝑦 ) )
109 107 108 ax-mp ( suc ∅ ⊆ 𝑦 → ∅ ∈ 𝑦 )
110 106 109 sylbi ( 1o𝑦 → ∅ ∈ 𝑦 )
111 elni2 ( 𝑦N ↔ ( 𝑦 ∈ ω ∧ ∅ ∈ 𝑦 ) )
112 111 6 sylbir ( ( 𝑦 ∈ ω ∧ ∅ ∈ 𝑦 ) → ( 𝜒𝜃 ) )
113 110 112 sylan2 ( ( 𝑦 ∈ ω ∧ 1o𝑦 ) → ( 𝜒𝜃 ) )
114 105 113 syl9r ( ( 𝑦 ∈ ω ∧ 1o𝑦 ) → ( ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) → ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜃 ) ) )
115 114 adantlr ( ( ( 𝑦 ∈ ω ∧ 1o ∈ ω ) ∧ 1o𝑦 ) → ( ( ( 𝑦N ∧ 1o <N 𝑦 ) → 𝜒 ) → ( ( 𝑦N ∧ 1o <N suc 𝑦 ) → 𝜃 ) ) )
116 27 31 82 86 87 115 findsg ( ( ( 𝐴 ∈ ω ∧ 1o ∈ ω ) ∧ 1o𝐴 ) → ( ( 𝐴N ∧ 1o <N 𝐴 ) → 𝜏 ) )
117 23 116 mpanl2 ( ( 𝐴 ∈ ω ∧ 1o𝐴 ) → ( ( 𝐴N ∧ 1o <N 𝐴 ) → 𝜏 ) )
118 13 22 117 syl2anc ( 𝐴N → ( ( 𝐴N ∧ 1o <N 𝐴 ) → 𝜏 ) )
119 118 expd ( 𝐴N → ( 𝐴N → ( 1o <N 𝐴𝜏 ) ) )
120 119 pm2.43i ( 𝐴N → ( 1o <N 𝐴𝜏 ) )
121 nlt1pi ¬ 𝐴 <N 1o
122 ltsopi <N Or N
123 sotric ( ( <N Or N ∧ ( 𝐴N ∧ 1oN ) ) → ( 𝐴 <N 1o ↔ ¬ ( 𝐴 = 1o ∨ 1o <N 𝐴 ) ) )
124 122 123 mpan ( ( 𝐴N ∧ 1oN ) → ( 𝐴 <N 1o ↔ ¬ ( 𝐴 = 1o ∨ 1o <N 𝐴 ) ) )
125 38 124 mpan2 ( 𝐴N → ( 𝐴 <N 1o ↔ ¬ ( 𝐴 = 1o ∨ 1o <N 𝐴 ) ) )
126 121 125 mtbii ( 𝐴N → ¬ ¬ ( 𝐴 = 1o ∨ 1o <N 𝐴 ) )
127 126 notnotrd ( 𝐴N → ( 𝐴 = 1o ∨ 1o <N 𝐴 ) )
128 12 120 127 mpjaod ( 𝐴N𝜏 )