Metamath Proof Explorer


Theorem tfindsg

Description: Transfinite Induction (inference schema), using implicit substitutions. The first four hypotheses establish the substitutions we need. The last three are the basis, the induction step for successors, and the induction step for limit ordinals. The basis of this version is an arbitrary ordinal B instead of zero. Remark in TakeutiZaring p. 57. (Contributed by NM, 5-Mar-2004)

Ref Expression
Hypotheses tfindsg.1 ( 𝑥 = 𝐵 → ( 𝜑𝜓 ) )
tfindsg.2 ( 𝑥 = 𝑦 → ( 𝜑𝜒 ) )
tfindsg.3 ( 𝑥 = suc 𝑦 → ( 𝜑𝜃 ) )
tfindsg.4 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
tfindsg.5 ( 𝐵 ∈ On → 𝜓 )
tfindsg.6 ( ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐵𝑦 ) → ( 𝜒𝜃 ) )
tfindsg.7 ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐵𝑥 ) → ( ∀ 𝑦𝑥 ( 𝐵𝑦𝜒 ) → 𝜑 ) )
Assertion tfindsg ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐵𝐴 ) → 𝜏 )

Proof

Step Hyp Ref Expression
1 tfindsg.1 ( 𝑥 = 𝐵 → ( 𝜑𝜓 ) )
2 tfindsg.2 ( 𝑥 = 𝑦 → ( 𝜑𝜒 ) )
3 tfindsg.3 ( 𝑥 = suc 𝑦 → ( 𝜑𝜃 ) )
4 tfindsg.4 ( 𝑥 = 𝐴 → ( 𝜑𝜏 ) )
5 tfindsg.5 ( 𝐵 ∈ On → 𝜓 )
6 tfindsg.6 ( ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐵𝑦 ) → ( 𝜒𝜃 ) )
7 tfindsg.7 ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐵𝑥 ) → ( ∀ 𝑦𝑥 ( 𝐵𝑦𝜒 ) → 𝜑 ) )
8 sseq2 ( 𝑥 = ∅ → ( 𝐵𝑥𝐵 ⊆ ∅ ) )
9 8 adantl ( ( 𝐵 = ∅ ∧ 𝑥 = ∅ ) → ( 𝐵𝑥𝐵 ⊆ ∅ ) )
10 eqeq2 ( 𝐵 = ∅ → ( 𝑥 = 𝐵𝑥 = ∅ ) )
11 10 1 syl6bir ( 𝐵 = ∅ → ( 𝑥 = ∅ → ( 𝜑𝜓 ) ) )
12 11 imp ( ( 𝐵 = ∅ ∧ 𝑥 = ∅ ) → ( 𝜑𝜓 ) )
13 9 12 imbi12d ( ( 𝐵 = ∅ ∧ 𝑥 = ∅ ) → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵 ⊆ ∅ → 𝜓 ) ) )
14 8 imbi1d ( 𝑥 = ∅ → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵 ⊆ ∅ → 𝜑 ) ) )
15 ss0 ( 𝐵 ⊆ ∅ → 𝐵 = ∅ )
16 15 con3i ( ¬ 𝐵 = ∅ → ¬ 𝐵 ⊆ ∅ )
17 16 pm2.21d ( ¬ 𝐵 = ∅ → ( 𝐵 ⊆ ∅ → ( 𝜑𝜓 ) ) )
18 17 pm5.74d ( ¬ 𝐵 = ∅ → ( ( 𝐵 ⊆ ∅ → 𝜑 ) ↔ ( 𝐵 ⊆ ∅ → 𝜓 ) ) )
19 14 18 sylan9bbr ( ( ¬ 𝐵 = ∅ ∧ 𝑥 = ∅ ) → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵 ⊆ ∅ → 𝜓 ) ) )
20 13 19 pm2.61ian ( 𝑥 = ∅ → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵 ⊆ ∅ → 𝜓 ) ) )
21 20 imbi2d ( 𝑥 = ∅ → ( ( 𝐵 ∈ On → ( 𝐵𝑥𝜑 ) ) ↔ ( 𝐵 ∈ On → ( 𝐵 ⊆ ∅ → 𝜓 ) ) ) )
22 sseq2 ( 𝑥 = 𝑦 → ( 𝐵𝑥𝐵𝑦 ) )
23 22 2 imbi12d ( 𝑥 = 𝑦 → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵𝑦𝜒 ) ) )
24 23 imbi2d ( 𝑥 = 𝑦 → ( ( 𝐵 ∈ On → ( 𝐵𝑥𝜑 ) ) ↔ ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) ) )
25 sseq2 ( 𝑥 = suc 𝑦 → ( 𝐵𝑥𝐵 ⊆ suc 𝑦 ) )
26 25 3 imbi12d ( 𝑥 = suc 𝑦 → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵 ⊆ suc 𝑦𝜃 ) ) )
27 26 imbi2d ( 𝑥 = suc 𝑦 → ( ( 𝐵 ∈ On → ( 𝐵𝑥𝜑 ) ) ↔ ( 𝐵 ∈ On → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
28 sseq2 ( 𝑥 = 𝐴 → ( 𝐵𝑥𝐵𝐴 ) )
29 28 4 imbi12d ( 𝑥 = 𝐴 → ( ( 𝐵𝑥𝜑 ) ↔ ( 𝐵𝐴𝜏 ) ) )
30 29 imbi2d ( 𝑥 = 𝐴 → ( ( 𝐵 ∈ On → ( 𝐵𝑥𝜑 ) ) ↔ ( 𝐵 ∈ On → ( 𝐵𝐴𝜏 ) ) ) )
31 5 a1d ( 𝐵 ∈ On → ( 𝐵 ⊆ ∅ → 𝜓 ) )
32 vex 𝑦 ∈ V
33 32 sucex suc 𝑦 ∈ V
34 33 eqvinc ( suc 𝑦 = 𝐵 ↔ ∃ 𝑥 ( 𝑥 = suc 𝑦𝑥 = 𝐵 ) )
35 5 1 syl5ibr ( 𝑥 = 𝐵 → ( 𝐵 ∈ On → 𝜑 ) )
36 3 biimpd ( 𝑥 = suc 𝑦 → ( 𝜑𝜃 ) )
37 35 36 sylan9r ( ( 𝑥 = suc 𝑦𝑥 = 𝐵 ) → ( 𝐵 ∈ On → 𝜃 ) )
38 37 exlimiv ( ∃ 𝑥 ( 𝑥 = suc 𝑦𝑥 = 𝐵 ) → ( 𝐵 ∈ On → 𝜃 ) )
39 34 38 sylbi ( suc 𝑦 = 𝐵 → ( 𝐵 ∈ On → 𝜃 ) )
40 39 eqcoms ( 𝐵 = suc 𝑦 → ( 𝐵 ∈ On → 𝜃 ) )
41 40 imim2i ( ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) → ( 𝐵 ⊆ suc 𝑦 → ( 𝐵 ∈ On → 𝜃 ) ) )
42 41 a1d ( ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦 → ( 𝐵 ∈ On → 𝜃 ) ) ) )
43 42 com4r ( 𝐵 ∈ On → ( ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
44 43 adantl ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
45 df-ne ( 𝐵 ≠ suc 𝑦 ↔ ¬ 𝐵 = suc 𝑦 )
46 45 anbi2i ( ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ↔ ( 𝐵 ⊆ suc 𝑦 ∧ ¬ 𝐵 = suc 𝑦 ) )
47 annim ( ( 𝐵 ⊆ suc 𝑦 ∧ ¬ 𝐵 = suc 𝑦 ) ↔ ¬ ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) )
48 46 47 bitri ( ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ↔ ¬ ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) )
49 onsssuc ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐵𝑦𝐵 ∈ suc 𝑦 ) )
50 suceloni ( 𝑦 ∈ On → suc 𝑦 ∈ On )
51 onelpss ( ( 𝐵 ∈ On ∧ suc 𝑦 ∈ On ) → ( 𝐵 ∈ suc 𝑦 ↔ ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ) )
52 50 51 sylan2 ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐵 ∈ suc 𝑦 ↔ ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ) )
53 49 52 bitrd ( ( 𝐵 ∈ On ∧ 𝑦 ∈ On ) → ( 𝐵𝑦 ↔ ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ) )
54 53 ancoms ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐵𝑦 ↔ ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) ) )
55 6 ex ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐵𝑦 → ( 𝜒𝜃 ) ) )
56 55 a1ddd ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐵𝑦 → ( 𝜒 → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
57 56 a2d ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵𝑦 → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
58 57 com23 ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( 𝐵𝑦 → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
59 54 58 sylbird ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐵 ⊆ suc 𝑦𝐵 ≠ suc 𝑦 ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
60 48 59 syl5bir ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( ¬ ( 𝐵 ⊆ suc 𝑦𝐵 = suc 𝑦 ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
61 44 60 pm2.61d ( ( 𝑦 ∈ On ∧ 𝐵 ∈ On ) → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) )
62 61 ex ( 𝑦 ∈ On → ( 𝐵 ∈ On → ( ( 𝐵𝑦𝜒 ) → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
63 62 a2d ( 𝑦 ∈ On → ( ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → ( 𝐵 ∈ On → ( 𝐵 ⊆ suc 𝑦𝜃 ) ) ) )
64 pm2.27 ( 𝐵 ∈ On → ( ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → ( 𝐵𝑦𝜒 ) ) )
65 64 ralimdv ( 𝐵 ∈ On → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → ∀ 𝑦𝑥 ( 𝐵𝑦𝜒 ) ) )
66 65 ad2antlr ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐵𝑥 ) → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → ∀ 𝑦𝑥 ( 𝐵𝑦𝜒 ) ) )
67 66 7 syld ( ( ( Lim 𝑥𝐵 ∈ On ) ∧ 𝐵𝑥 ) → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → 𝜑 ) )
68 67 exp31 ( Lim 𝑥 → ( 𝐵 ∈ On → ( 𝐵𝑥 → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → 𝜑 ) ) ) )
69 68 com3l ( 𝐵 ∈ On → ( 𝐵𝑥 → ( Lim 𝑥 → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → 𝜑 ) ) ) )
70 69 com4t ( Lim 𝑥 → ( ∀ 𝑦𝑥 ( 𝐵 ∈ On → ( 𝐵𝑦𝜒 ) ) → ( 𝐵 ∈ On → ( 𝐵𝑥𝜑 ) ) ) )
71 21 24 27 30 31 63 70 tfinds ( 𝐴 ∈ On → ( 𝐵 ∈ On → ( 𝐵𝐴𝜏 ) ) )
72 71 imp31 ( ( ( 𝐴 ∈ On ∧ 𝐵 ∈ On ) ∧ 𝐵𝐴 ) → 𝜏 )