Metamath Proof Explorer


Theorem frrlem15

Description: Lemma for general well-founded recursion. Two acceptable functions are compatible. (Contributed by Scott Fenton, 11-Sep-2023)

Ref Expression
Hypotheses frrlem15.1 𝐵 = { 𝑓 ∣ ∃ 𝑥 ( 𝑓 Fn 𝑥 ∧ ( 𝑥𝐴 ∧ ∀ 𝑦𝑥 Pred ( 𝑅 , 𝐴 , 𝑦 ) ⊆ 𝑥 ) ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝑦 𝐺 ( 𝑓 ↾ Pred ( 𝑅 , 𝐴 , 𝑦 ) ) ) ) }
frrlem15.2 𝐹 = frecs ( 𝑅 , 𝐴 , 𝐺 )
Assertion frrlem15 ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → 𝑢 = 𝑣 ) )

Proof

Step Hyp Ref Expression
1 frrlem15.1 𝐵 = { 𝑓 ∣ ∃ 𝑥 ( 𝑓 Fn 𝑥 ∧ ( 𝑥𝐴 ∧ ∀ 𝑦𝑥 Pred ( 𝑅 , 𝐴 , 𝑦 ) ⊆ 𝑥 ) ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝑦 𝐺 ( 𝑓 ↾ Pred ( 𝑅 , 𝐴 , 𝑦 ) ) ) ) }
2 frrlem15.2 𝐹 = frecs ( 𝑅 , 𝐴 , 𝐺 )
3 vex 𝑥 ∈ V
4 vex 𝑢 ∈ V
5 3 4 breldm ( 𝑥 𝑔 𝑢𝑥 ∈ dom 𝑔 )
6 5 adantr ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → 𝑥 ∈ dom 𝑔 )
7 vex 𝑣 ∈ V
8 3 7 breldm ( 𝑥 𝑣𝑥 ∈ dom )
9 8 adantl ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → 𝑥 ∈ dom )
10 6 9 elind ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → 𝑥 ∈ ( dom 𝑔 ∩ dom ) )
11 id ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → ( 𝑥 𝑔 𝑢𝑥 𝑣 ) )
12 4 brresi ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢 ↔ ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑔 𝑢 ) )
13 7 brresi ( 𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ↔ ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑣 ) )
14 12 13 anbi12i ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) ↔ ( ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑔 𝑢 ) ∧ ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑣 ) ) )
15 an4 ( ( ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑔 𝑢 ) ∧ ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 𝑣 ) ) ↔ ( ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 ∈ ( dom 𝑔 ∩ dom ) ) ∧ ( 𝑥 𝑔 𝑢𝑥 𝑣 ) ) )
16 14 15 bitri ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) ↔ ( ( 𝑥 ∈ ( dom 𝑔 ∩ dom ) ∧ 𝑥 ∈ ( dom 𝑔 ∩ dom ) ) ∧ ( 𝑥 𝑔 𝑢𝑥 𝑣 ) ) )
17 10 10 11 16 syl21anbrc ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) )
18 inss1 ( dom 𝑔 ∩ dom ) ⊆ dom 𝑔
19 1 frrlem3 ( 𝑔𝐵 → dom 𝑔𝐴 )
20 18 19 sstrid ( 𝑔𝐵 → ( dom 𝑔 ∩ dom ) ⊆ 𝐴 )
21 20 ad2antrl ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( dom 𝑔 ∩ dom ) ⊆ 𝐴 )
22 simpll ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → 𝑅 Fr 𝐴 )
23 frss ( ( dom 𝑔 ∩ dom ) ⊆ 𝐴 → ( 𝑅 Fr 𝐴𝑅 Fr ( dom 𝑔 ∩ dom ) ) )
24 21 22 23 sylc ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → 𝑅 Fr ( dom 𝑔 ∩ dom ) )
25 simplr ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → 𝑅 Se 𝐴 )
26 sess2 ( ( dom 𝑔 ∩ dom ) ⊆ 𝐴 → ( 𝑅 Se 𝐴𝑅 Se ( dom 𝑔 ∩ dom ) ) )
27 21 25 26 sylc ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → 𝑅 Se ( dom 𝑔 ∩ dom ) )
28 1 frrlem4 ( ( 𝑔𝐵𝐵 ) → ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) )
29 28 adantl ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) )
30 1 frrlem4 ( ( 𝐵𝑔𝐵 ) → ( ( ↾ ( dom ∩ dom 𝑔 ) ) Fn ( dom ∩ dom 𝑔 ) ∧ ∀ 𝑎 ∈ ( dom ∩ dom 𝑔 ) ( ( ↾ ( dom ∩ dom 𝑔 ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) ) ) ) )
31 incom ( dom 𝑔 ∩ dom ) = ( dom ∩ dom 𝑔 )
32 31 reseq2i ( ↾ ( dom 𝑔 ∩ dom ) ) = ( ↾ ( dom ∩ dom 𝑔 ) )
33 fneq12 ( ( ( ↾ ( dom 𝑔 ∩ dom ) ) = ( ↾ ( dom ∩ dom 𝑔 ) ) ∧ ( dom 𝑔 ∩ dom ) = ( dom ∩ dom 𝑔 ) ) → ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ↔ ( ↾ ( dom ∩ dom 𝑔 ) ) Fn ( dom ∩ dom 𝑔 ) ) )
34 32 31 33 mp2an ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ↔ ( ↾ ( dom ∩ dom 𝑔 ) ) Fn ( dom ∩ dom 𝑔 ) )
35 32 fveq1i ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( ( ↾ ( dom ∩ dom 𝑔 ) ) ‘ 𝑎 )
36 predeq2 ( ( dom 𝑔 ∩ dom ) = ( dom ∩ dom 𝑔 ) → Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) = Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) )
37 31 36 ax-mp Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) = Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 )
38 32 37 reseq12i ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) = ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) )
39 38 oveq2i ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) = ( 𝑎 𝐺 ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) ) )
40 35 39 eqeq12i ( ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ↔ ( ( ↾ ( dom ∩ dom 𝑔 ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) ) ) )
41 31 40 raleqbii ( ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ↔ ∀ 𝑎 ∈ ( dom ∩ dom 𝑔 ) ( ( ↾ ( dom ∩ dom 𝑔 ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) ) ) )
42 34 41 anbi12i ( ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) ↔ ( ( ↾ ( dom ∩ dom 𝑔 ) ) Fn ( dom ∩ dom 𝑔 ) ∧ ∀ 𝑎 ∈ ( dom ∩ dom 𝑔 ) ( ( ↾ ( dom ∩ dom 𝑔 ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom ∩ dom 𝑔 ) ) ↾ Pred ( 𝑅 , ( dom ∩ dom 𝑔 ) , 𝑎 ) ) ) ) )
43 30 42 sylibr ( ( 𝐵𝑔𝐵 ) → ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) )
44 43 ancoms ( ( 𝑔𝐵𝐵 ) → ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) )
45 44 adantl ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) )
46 frr3g ( ( ( 𝑅 Fr ( dom 𝑔 ∩ dom ) ∧ 𝑅 Se ( dom 𝑔 ∩ dom ) ) ∧ ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) ∧ ( ( ↾ ( dom 𝑔 ∩ dom ) ) Fn ( dom 𝑔 ∩ dom ) ∧ ∀ 𝑎 ∈ ( dom 𝑔 ∩ dom ) ( ( ↾ ( dom 𝑔 ∩ dom ) ) ‘ 𝑎 ) = ( 𝑎 𝐺 ( ( ↾ ( dom 𝑔 ∩ dom ) ) ↾ Pred ( 𝑅 , ( dom 𝑔 ∩ dom ) , 𝑎 ) ) ) ) ) → ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) = ( ↾ ( dom 𝑔 ∩ dom ) ) )
47 24 27 29 45 46 syl211anc ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) = ( ↾ ( dom 𝑔 ∩ dom ) ) )
48 47 breqd ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) )
49 48 biimprd ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( 𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) )
50 1 frrlem2 ( 𝑔𝐵 → Fun 𝑔 )
51 50 funresd ( 𝑔𝐵 → Fun ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) )
52 51 ad2antrl ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → Fun ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) )
53 dffun2 ( Fun ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ↔ ( Rel ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) ∧ ∀ 𝑥𝑢𝑣 ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) ) )
54 2sp ( ∀ 𝑢𝑣 ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) → ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) )
55 54 sps ( ∀ 𝑥𝑢𝑣 ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) → ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) )
56 53 55 simplbiim ( Fun ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) → ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) )
57 52 56 syl ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) )
58 49 57 sylan2d ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( 𝑥 ( 𝑔 ↾ ( dom 𝑔 ∩ dom ) ) 𝑢𝑥 ( ↾ ( dom 𝑔 ∩ dom ) ) 𝑣 ) → 𝑢 = 𝑣 ) )
59 17 58 syl5 ( ( ( 𝑅 Fr 𝐴𝑅 Se 𝐴 ) ∧ ( 𝑔𝐵𝐵 ) ) → ( ( 𝑥 𝑔 𝑢𝑥 𝑣 ) → 𝑢 = 𝑣 ) )