The map $f:A\rightarrow B$ is injective if and only if $f$ has a left inverse. Proof (only the first implication). If $f$ is injective, then $f(a_1) = f(a_2) \implies a_1=a_2$. Assume that $f$ does not have a left inverse, then there exists no function $g:B\rightarrow A$ such that $g\circ f:A\rightarrow A$ gives the identity map on $A$ ($g\circ f(a_n)=a_n$). Now assume there is an $f(a_1)\in B = f(a_2) \in B$. Because there is no function such that $g\circ f(a_n)=a_n$, there is no mapping back to $a_1$ or $a_2$, but there must be one because $f$ is injective. QED Now, I don't think my proof is correct because it makes the assumption that there is no mapping back to $a_1$ or $a_2$.
I've already done a lot of searching (in particular: ) to try to prove this statement:      $f: A \to B$ is injective if and only if it has a left inverse. [I'm going to also assume $A$ and $B$ are nonempty.]   My attempt so far:     $\Leftarrow$ Suppose $f$ has a left inverse and $f(a_1) = f(a_2)$ for    $a_1, a_2 \in A$. Then there is a function $g: B \to A$ such that   $g\left(f(a_1)\right) = a_1$ and $g\left(f(a_2)\right) = a_2$. Since   $g$ is well-defined, it follows that $g\left(f(a_1)\right) =  g\left(f(a_2)\right)$, and hence $a_1 = a_2$.         $\Rightarrow$Now   suppose $f$ is injective. Then $f(a_1) = f(a_2) \implies a_1 = a_2$.   Furthermore, since $A$ is nonempty, there is an element $x \in A$.   Define $g: B \to A$ by  \begin{equation*} g(b) = \begin{cases}  f^{-1}(b), &amp; b \in \text{Im}(f) \\ x, &amp; b \in A \setminus  \text{Im}(f)\text{.} \end{cases} \end{equation*} This mapping is   well-defined, since if $f$ is injective, $f^{-1}(b)$ is unique.   My main question: does this imply that if $f: A \to B$ is injective that any mapping $g: \text{Im}(f) \to A$ is bijective? Otherwise, I don't understand why we can even use $f^{-1}$ on an element. [Please read the link above for more details - in proof 1.]
I got my dad a Logitech LS21 system for Christmas. It's a 2.1 system, but it's recognized in Windows 8 as a 2.0 system (it says there is no subwoofer connected).    How would I go about getting the sub recognized?  It plays some sound now, but it's so quiet you can't hear it without putting your ear right next to it. Can I cast a spell in the middle of jumping with a Jump spell? I have not completely read the rules for 5e, and my group has played a decent amount of 4e. We recently started 5e.  So my question is, as a Wizard, can I cast the Jump spell on myself one turn, then the next turn jump high into the air and cast Thunderwave straight down? I'm a little unsure of how the actions work in 5e. The point is to hopefully knock a handful of enemies prone to make quick work of them with my group. (We have a house rule from 4e where a successful attack on a prone character is an automatic critical.) What makes matter travel along geodesics? Some months ago, I linked to  in the CSS chat room and  in case anybody who cared happened to drop by:  In case anybody else noticed that  questions are now highlighted a little differently, I'm actively investigating this; here's the meta thread  It was unpinned quite some time ago by one of the other room owners. I don't need it anymore anyway since the issue has been . I notice, however, that it's still visible in the starred list, with the only regular (not pinned) star being my own:  When I try to click on the star to unstar it, chat thinks I'm trying to do otherwise and simply tells me I can't star my own messages. I can easily delete this message, but I'd very much like to unstar it instead, thankyouverymuch. MacBook Pro: How to disable discrete GPU permanently from EFI? Is there a platform-agnostic and filesystem-agnostic method to obtain the full path of the directory from where a program is running using C/C++? Not to be confused with the current working directory. (Please don't suggest libraries unless they're standard ones like clib or STL.)  (If there's no platform/filesystem-agnostic method, suggestions that work in Windows and Linux for specific filesystems are welcome too.) Investment options for f1 visa students in USA I am foreign graduate student in USA. I recently completed my undergrad (from USA) and have a bit of money saved up. I know that F1 students cannot work off campus and other business activities such stock trading etc are prohibited as well. I wanted to know if opening an account in an investment management firm like Charles Schwabb or Betterment is allowed. I would not be working but I will still be earning a small interest on my deposits. If that is not allowed, are there any good and legal ways for foreign students to earn a little interest on savings? When I am writing I often come across the words "around" and "round." I was wondering what is different between them, and how they would be used in different contexts. Converting a string to a tuple in python I'm porting a module that currently works with Blocks/BlockForms to Paragraphs/NodeForms. I'm inserting an embedded form inside a Paragraph inside a Node Edit page using a hook_field_widget_entity_reference_paragraphs_form_alter. The general structure where the form gets inserted is: $form['field']['widget'][0]['settings'][form here]  After this the form displays as expected on the node edit page. The inserted form goes through a number of #process steps. The element in question is a select form that when the button underneath it is pressed, is supposed to retrieve some data via a custom submit handler and place it on the page with ajax:  The array for this element looks like this:  You can see the custom submit handler that is supposed to fire when 'Select Segment Set' is pressed After debugging, I've found that the entire NodeForm appears to be submitted to the backend, and the only handler that is found is from some other field that uses ajax. In short 'updateSegmentSet' is never discovered as a submit handler. When I debug the original module based on block/blockforms, I do see the correct submit handler being discovered. Now in the latter case, of course a blockForm is submitted to the back end with the correct plugin. Given that this is basically a form within a form within a form, is there something special I have to do to get the custom submit handler to run? I've read a few things online e.g. the 'settings' key and '#tree' = true. EDIT The Ajax property looks like this:       '#ajax' =&gt; [         'callback' =&gt; [$this, 'updateSegmentSetAjax'],         'wrapper' =&gt; $wrapper_id,       ],    public function updateSegmentSetAjax(array &amp;$form, FormStateInterface $form_state) {     $button = $form_state-&gt;getTriggeringElement();     // Go one level up in the form, to the widgets container.     return NestedArray::getValue($form, array_slice($button['#array_parents'], 0, -2));   }  As best I can tell, this is never called either. While explaining to my nephew about the physics of light, I told him we cannot see infrared color, and he kicked back with a very simple question: why can't we see it? I could not tell him. Is the human eye unable to sense such light or can it indeed but the brain can't understand the signal? any other reason? Use feature as module? Does anyone have experience with using a feature as a module? The usage I am talking about is strictly placing hooks inside the .module file. Can that trigger any sort of bug? Frequently when EM waves are taught, it is said that the change in electric field causes a change in the magnetic field, which then causes a change in the electric field, and so on and so forth.   But from my understanding of basic electromagnetics, it is not necessarily a changing electric field that creates a change in magnetic field, but instead an accelerating charge. and it is this charge that creates both the electric and magnetic field. Again, from my understanding, a changing magnetic field is not generated by a changing electric field, but instead just happens to always be present perpendicular to a changing electric field due to the laws of electromagnetism.   Am I wrong? Or is the "mutual generation" concept between the electric and magnetic components of an EM wave an actual thing? Periodically, my MacBook Pro 17" stops recognizing my headphones. No amount of unplugging and replugging seems to help. The sound settings never show headphones as an output device. How can I fix this? The only thing I can find elsewhere on the Internet are people saying, "Reboot!" This works, but is impractical and annoying. Find all $n \in \mathbb{N}$ such that $\phi(n) = 4294967296=2^{32}$.  I managed to find that $16106127360$, $8589934592$, $10737418240$ and $12884901888$ are solutions for the equation, but I do not know how to find all of them. Why does a translation matrix need extra row? "define:" oneboxing selects completely bogus data I found this weird word, "burke", and decided to check it out. It turned out it was an alternative spelling of "berk". This is what define: berk in chat expanded to:    So, according to that, "berk" as a noun can mean "a fool, prat, twit", or "berk", or "berk", or "berk". Wow, who would have thought "berk" might mean berk. Three times, just to be sure.  That got me really curious so I checked the wiktionary page directly. It shows three meanings for "berk": the same as meaning #1 that was oneboxed, plus two others that are not at all simply stated as "berk".  Further down from there we can find the other three "berks". Number three, for instance, is easy to trace since "indefinite plural berkë" seems quite greppable. And it turns out that it's Albanian. Secure hash and salt for PHP passwords It is currently said that MD5 is partially unsafe. Taking this into consideration, I'd like to know which mechanism to use for password protection.  This question,   suggests that hashing multiple times may be a good idea, whereas  suggests using salt.  I'm using PHP. I want a safe and fast password encryption system. Hashing a password a million times may be safer, but also slower. How to achieve a good balance between speed and safety? Also, I'd prefer the result to have a constant number of characters.   The hashing mechanism must be available in PHP It must be safe It can use salt (in this case, are all salts equally good? Is there any way to generate good salts?)   Also, should I store two fields in the database (one using MD5 and another one using SHA, for example)? Would it make it safer or unsafer?  In case I wasn't clear enough, I want to know which hashing function(s) to use and how to pick a good salt in order to have a safe and fast password protection mechanism.  Related questions that don't quite cover my question: How does one prove the following limit? $$   \lim_{n \to \infty}   \sqrt{1 + 2 \sqrt{1 + 3 \sqrt{1 + \cdots \sqrt{1 + (n - 1) \sqrt{1 + n}}}}} = 3. $$ Removing elements that have consecutive duplicates