Metamath Proof Explorer


Theorem dfrtrclrec2

Description: If two elements are connected by a reflexive, transitive closure, then they are connected via n instances the relation, for some n . (Contributed by Drahflow, 12-Nov-2015) (Revised by AV, 13-Jul-2024)

Ref Expression
Hypothesis dfrtrclrec2.1 ⊢ φ → Rel ⁡ R
Assertion dfrtrclrec2 ⊢ φ → A t*rec ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B

Proof

Step Hyp Ref Expression
1 dfrtrclrec2.1 ⊢ φ → Rel ⁡ R
2 simpr ⊢ φ ∧ R ∈ V → R ∈ V
3 nn0ex ⊢ ℕ 0 ∈ V
4 ovex ⊢ R ↑ r n ∈ V
5 3 4 iunex ⊢ ⋃ n ∈ ℕ 0 R ↑ r n ∈ V
6 oveq1 ⊢ r = R → r ↑ r n = R ↑ r n
7 6 iuneq2d ⊢ r = R → ⋃ n ∈ ℕ 0 r ↑ r n = ⋃ n ∈ ℕ 0 R ↑ r n
8 eqid ⊢ r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n
9 7 8 fvmptg ⊢ R ∈ V ∧ ⋃ n ∈ ℕ 0 R ↑ r n ∈ V → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n
10 2 5 9 sylancl ⊢ φ ∧ R ∈ V → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n
11 10 ex ⊢ φ → R ∈ V → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n
12 iun0 ⊢ ⋃ n ∈ ℕ 0 ∅ = ∅
13 12 a1i ⊢ ¬ R ∈ V → ⋃ n ∈ ℕ 0 ∅ = ∅
14 reldmrelexp ⊢ Rel ⁡ dom ⁡ ↑ r
15 14 ovprc1 ⊢ ¬ R ∈ V → R ↑ r n = ∅
16 15 iuneq2d ⊢ ¬ R ∈ V → ⋃ n ∈ ℕ 0 R ↑ r n = ⋃ n ∈ ℕ 0 ∅
17 fvprc ⊢ ¬ R ∈ V → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ∅
18 13 16 17 3eqtr4rd ⊢ ¬ R ∈ V → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n
19 11 18 pm2.61d1 ⊢ φ → r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n
20 breq ⊢ r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n → A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ A ⋃ n ∈ ℕ 0 R ↑ r n B
21 eliun ⊢ A B ∈ ⋃ n ∈ ℕ 0 R ↑ r n ↔ ∃ n ∈ ℕ 0 A B ∈ R ↑ r n
22 21 a1i ⊢ φ → A B ∈ ⋃ n ∈ ℕ 0 R ↑ r n ↔ ∃ n ∈ ℕ 0 A B ∈ R ↑ r n
23 df-br ⊢ A ⋃ n ∈ ℕ 0 R ↑ r n B ↔ A B ∈ ⋃ n ∈ ℕ 0 R ↑ r n
24 df-br ⊢ A R ↑ r n B ↔ A B ∈ R ↑ r n
25 24 rexbii ⊢ ∃ n ∈ ℕ 0 A R ↑ r n B ↔ ∃ n ∈ ℕ 0 A B ∈ R ↑ r n
26 22 23 25 3bitr4g ⊢ φ → A ⋃ n ∈ ℕ 0 R ↑ r n B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
27 20 26 sylan9bb ⊢ r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R = ⋃ n ∈ ℕ 0 R ↑ r n ∧ φ → A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
28 19 27 mpancom ⊢ φ → A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
29 df-rtrclrec ⊢ t*rec = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n
30 fveq1 ⊢ t*rec = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n → t*rec ⁡ R = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R
31 30 breqd ⊢ t*rec = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n → A t*rec ⁡ R B ↔ A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B
32 31 bibi1d ⊢ t*rec = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n → A t*rec ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B ↔ A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
33 32 imbi2d ⊢ t*rec = r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n → φ → A t*rec ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B ↔ φ → A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
34 29 33 ax-mp ⊢ φ → A t*rec ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B ↔ φ → A r ∈ V ⟼ ⋃ n ∈ ℕ 0 r ↑ r n ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B
35 28 34 mpbir ⊢ φ → A t*rec ⁡ R B ↔ ∃ n ∈ ℕ 0 A R ↑ r n B