Metamath Proof Explorer


Theorem mndractfo

Description: An element X of a monoid E is right-invertible iff its right-translation G is surjective. (Contributed by Thierry Arnoux, 3-Aug-2025)

Ref Expression
Hypotheses mndractfo.b 𝐵 = ( Base ‘ 𝐸 )
mndractfo.z 0 = ( 0g𝐸 )
mndractfo.p + = ( +g𝐸 )
mndractfo.f 𝐺 = ( 𝑎𝐵 ↦ ( 𝑎 + 𝑋 ) )
mndractfo.e ( 𝜑𝐸 ∈ Mnd )
mndractfo.x ( 𝜑𝑋𝐵 )
Assertion mndractfo ( 𝜑 → ( 𝐺 : 𝐵onto𝐵 ↔ ∃ 𝑦𝐵 ( 𝑦 + 𝑋 ) = 0 ) )

Proof

Step Hyp Ref Expression
1 mndractfo.b 𝐵 = ( Base ‘ 𝐸 )
2 mndractfo.z 0 = ( 0g𝐸 )
3 mndractfo.p + = ( +g𝐸 )
4 mndractfo.f 𝐺 = ( 𝑎𝐵 ↦ ( 𝑎 + 𝑋 ) )
5 mndractfo.e ( 𝜑𝐸 ∈ Mnd )
6 mndractfo.x ( 𝜑𝑋𝐵 )
7 simpr ( ( 𝜑𝐺 : 𝐵onto𝐵 ) → 𝐺 : 𝐵onto𝐵 )
8 1 2 mndidcl ( 𝐸 ∈ Mnd → 0𝐵 )
9 5 8 syl ( 𝜑0𝐵 )
10 9 adantr ( ( 𝜑𝐺 : 𝐵onto𝐵 ) → 0𝐵 )
11 foelcdmi ( ( 𝐺 : 𝐵onto𝐵0𝐵 ) → ∃ 𝑦𝐵 ( 𝐺𝑦 ) = 0 )
12 7 10 11 syl2anc ( ( 𝜑𝐺 : 𝐵onto𝐵 ) → ∃ 𝑦𝐵 ( 𝐺𝑦 ) = 0 )
13 oveq1 ( 𝑎 = 𝑦 → ( 𝑎 + 𝑋 ) = ( 𝑦 + 𝑋 ) )
14 simpr ( ( ( 𝜑𝐺 : 𝐵onto𝐵 ) ∧ 𝑦𝐵 ) → 𝑦𝐵 )
15 ovexd ( ( ( 𝜑𝐺 : 𝐵onto𝐵 ) ∧ 𝑦𝐵 ) → ( 𝑦 + 𝑋 ) ∈ V )
16 4 13 14 15 fvmptd3 ( ( ( 𝜑𝐺 : 𝐵onto𝐵 ) ∧ 𝑦𝐵 ) → ( 𝐺𝑦 ) = ( 𝑦 + 𝑋 ) )
17 16 eqeq1d ( ( ( 𝜑𝐺 : 𝐵onto𝐵 ) ∧ 𝑦𝐵 ) → ( ( 𝐺𝑦 ) = 0 ↔ ( 𝑦 + 𝑋 ) = 0 ) )
18 17 biimpd ( ( ( 𝜑𝐺 : 𝐵onto𝐵 ) ∧ 𝑦𝐵 ) → ( ( 𝐺𝑦 ) = 0 → ( 𝑦 + 𝑋 ) = 0 ) )
19 18 reximdva ( ( 𝜑𝐺 : 𝐵onto𝐵 ) → ( ∃ 𝑦𝐵 ( 𝐺𝑦 ) = 0 → ∃ 𝑦𝐵 ( 𝑦 + 𝑋 ) = 0 ) )
20 12 19 mpd ( ( 𝜑𝐺 : 𝐵onto𝐵 ) → ∃ 𝑦𝐵 ( 𝑦 + 𝑋 ) = 0 )
21 5 adantr ( ( 𝜑𝑎𝐵 ) → 𝐸 ∈ Mnd )
22 simpr ( ( 𝜑𝑎𝐵 ) → 𝑎𝐵 )
23 6 adantr ( ( 𝜑𝑎𝐵 ) → 𝑋𝐵 )
24 1 3 21 22 23 mndcld ( ( 𝜑𝑎𝐵 ) → ( 𝑎 + 𝑋 ) ∈ 𝐵 )
25 24 4 fmptd ( 𝜑𝐺 : 𝐵𝐵 )
26 25 ad2antrr ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) → 𝐺 : 𝐵𝐵 )
27 fveq2 ( 𝑥 = ( 𝑧 + 𝑦 ) → ( 𝐺𝑥 ) = ( 𝐺 ‘ ( 𝑧 + 𝑦 ) ) )
28 27 eqeq2d ( 𝑥 = ( 𝑧 + 𝑦 ) → ( 𝑧 = ( 𝐺𝑥 ) ↔ 𝑧 = ( 𝐺 ‘ ( 𝑧 + 𝑦 ) ) ) )
29 5 ad3antrrr ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝐸 ∈ Mnd )
30 simpr ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝑧𝐵 )
31 simpllr ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝑦𝐵 )
32 1 3 29 30 31 mndcld ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( 𝑧 + 𝑦 ) ∈ 𝐵 )
33 6 ad3antrrr ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝑋𝐵 )
34 1 3 29 30 31 33 mndassd ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( ( 𝑧 + 𝑦 ) + 𝑋 ) = ( 𝑧 + ( 𝑦 + 𝑋 ) ) )
35 oveq1 ( 𝑎 = ( 𝑧 + 𝑦 ) → ( 𝑎 + 𝑋 ) = ( ( 𝑧 + 𝑦 ) + 𝑋 ) )
36 ovexd ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( ( 𝑧 + 𝑦 ) + 𝑋 ) ∈ V )
37 4 35 32 36 fvmptd3 ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( 𝐺 ‘ ( 𝑧 + 𝑦 ) ) = ( ( 𝑧 + 𝑦 ) + 𝑋 ) )
38 simplr ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( 𝑦 + 𝑋 ) = 0 )
39 38 oveq2d ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( 𝑧 + ( 𝑦 + 𝑋 ) ) = ( 𝑧 + 0 ) )
40 1 3 2 mndrid ( ( 𝐸 ∈ Mnd ∧ 𝑧𝐵 ) → ( 𝑧 + 0 ) = 𝑧 )
41 29 30 40 syl2anc ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ( 𝑧 + 0 ) = 𝑧 )
42 39 41 eqtr2d ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝑧 = ( 𝑧 + ( 𝑦 + 𝑋 ) ) )
43 34 37 42 3eqtr4rd ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → 𝑧 = ( 𝐺 ‘ ( 𝑧 + 𝑦 ) ) )
44 28 32 43 rspcedvdw ( ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) ∧ 𝑧𝐵 ) → ∃ 𝑥𝐵 𝑧 = ( 𝐺𝑥 ) )
45 44 ralrimiva ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) → ∀ 𝑧𝐵𝑥𝐵 𝑧 = ( 𝐺𝑥 ) )
46 dffo3 ( 𝐺 : 𝐵onto𝐵 ↔ ( 𝐺 : 𝐵𝐵 ∧ ∀ 𝑧𝐵𝑥𝐵 𝑧 = ( 𝐺𝑥 ) ) )
47 26 45 46 sylanbrc ( ( ( 𝜑𝑦𝐵 ) ∧ ( 𝑦 + 𝑋 ) = 0 ) → 𝐺 : 𝐵onto𝐵 )
48 47 r19.29an ( ( 𝜑 ∧ ∃ 𝑦𝐵 ( 𝑦 + 𝑋 ) = 0 ) → 𝐺 : 𝐵onto𝐵 )
49 20 48 impbida ( 𝜑 → ( 𝐺 : 𝐵onto𝐵 ↔ ∃ 𝑦𝐵 ( 𝑦 + 𝑋 ) = 0 ) )