MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  brttrcl Structured version   Visualization version   GIF version

Theorem brttrcl 9756
Description: Characterization of elements of the transitive closure of a relation. (Contributed by Scott Fenton, 18-Aug-2024.)
Assertion
Ref Expression
brttrcl (𝐴t++𝑅𝐵 ↔ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)))
Distinct variable groups:   𝐴,𝑛,𝑓,𝑎   𝐵,𝑛,𝑓,𝑎   𝑅,𝑛,𝑓,𝑎

Proof of Theorem brttrcl
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 relttrcl 9755 . . 3 Rel t++𝑅
21brrelex12i 5737 . 2 (𝐴t++𝑅𝐵 → (𝐴 ∈ V ∧ 𝐵 ∈ V))
3 fvex 6914 . . . . . . 7 (𝑓‘∅) ∈ V
4 eleq1 2814 . . . . . . 7 ((𝑓‘∅) = 𝐴 → ((𝑓‘∅) ∈ V ↔ 𝐴 ∈ V))
53, 4mpbii 232 . . . . . 6 ((𝑓‘∅) = 𝐴𝐴 ∈ V)
6 fvex 6914 . . . . . . 7 (𝑓𝑛) ∈ V
7 eleq1 2814 . . . . . . 7 ((𝑓𝑛) = 𝐵 → ((𝑓𝑛) ∈ V ↔ 𝐵 ∈ V))
86, 7mpbii 232 . . . . . 6 ((𝑓𝑛) = 𝐵𝐵 ∈ V)
95, 8anim12i 611 . . . . 5 (((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) → (𝐴 ∈ V ∧ 𝐵 ∈ V))
1093ad2ant2 1131 . . . 4 ((𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) → (𝐴 ∈ V ∧ 𝐵 ∈ V))
1110exlimiv 1926 . . 3 (∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) → (𝐴 ∈ V ∧ 𝐵 ∈ V))
1211rexlimivw 3141 . 2 (∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) → (𝐴 ∈ V ∧ 𝐵 ∈ V))
13 eqeq2 2738 . . . . . . 7 (𝑥 = 𝐴 → ((𝑓‘∅) = 𝑥 ↔ (𝑓‘∅) = 𝐴))
1413anbi1d 629 . . . . . 6 (𝑥 = 𝐴 → (((𝑓‘∅) = 𝑥 ∧ (𝑓𝑛) = 𝑦) ↔ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦)))
15143anbi2d 1438 . . . . 5 (𝑥 = 𝐴 → ((𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝑥 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ (𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
1615exbidv 1917 . . . 4 (𝑥 = 𝐴 → (∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝑥 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ ∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
1716rexbidv 3169 . . 3 (𝑥 = 𝐴 → (∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝑥 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
18 eqeq2 2738 . . . . . . 7 (𝑦 = 𝐵 → ((𝑓𝑛) = 𝑦 ↔ (𝑓𝑛) = 𝐵))
1918anbi2d 628 . . . . . 6 (𝑦 = 𝐵 → (((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ↔ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵)))
20193anbi2d 1438 . . . . 5 (𝑦 = 𝐵 → ((𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ (𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
2120exbidv 1917 . . . 4 (𝑦 = 𝐵 → (∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ ∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
2221rexbidv 3169 . . 3 (𝑦 = 𝐵 → (∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)) ↔ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
23 df-ttrcl 9751 . . 3 t++𝑅 = {⟨𝑥, 𝑦⟩ ∣ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝑥 ∧ (𝑓𝑛) = 𝑦) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))}
2417, 22, 23brabg 5545 . 2 ((𝐴 ∈ V ∧ 𝐵 ∈ V) → (𝐴t++𝑅𝐵 ↔ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎))))
252, 12, 24pm5.21nii 377 1 (𝐴t++𝑅𝐵 ↔ ∃𝑛 ∈ (ω ∖ 1o)∃𝑓(𝑓 Fn suc 𝑛 ∧ ((𝑓‘∅) = 𝐴 ∧ (𝑓𝑛) = 𝐵) ∧ ∀𝑎𝑛 (𝑓𝑎)𝑅(𝑓‘suc 𝑎)))
Colors of variables: wff setvar class
Syntax hints:  wb 205  wa 394  w3a 1084   = wceq 1534  wex 1774  wcel 2099  wral 3051  wrex 3060  Vcvv 3462  cdif 3944  c0 4325   class class class wbr 5153  suc csuc 6378   Fn wfn 6549  cfv 6554  ωcom 7876  1oc1o 8489  t++cttrcl 9750
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1790  ax-4 1804  ax-5 1906  ax-6 1964  ax-7 2004  ax-8 2101  ax-9 2109  ax-11 2147  ax-12 2167  ax-ext 2697  ax-sep 5304  ax-nul 5311  ax-pr 5433
This theorem depends on definitions:  df-bi 206  df-an 395  df-or 846  df-3an 1086  df-tru 1537  df-fal 1547  df-ex 1775  df-sb 2061  df-clab 2704  df-cleq 2718  df-clel 2803  df-ne 2931  df-ral 3052  df-rex 3061  df-rab 3420  df-v 3464  df-dif 3950  df-un 3952  df-ss 3964  df-nul 4326  df-if 4534  df-sn 4634  df-pr 4636  df-op 4640  df-uni 4914  df-br 5154  df-opab 5216  df-xp 5688  df-rel 5689  df-iota 6506  df-fv 6562  df-ttrcl 9751
This theorem is referenced by:  brttrcl2  9757  ssttrcl  9758  ttrcltr  9759
  Copyright terms: Public domain W3C validator