Let $X\subset\mathbb{A}^{n},Y\subset\mathbb{A}^{m}$ be affine varieties over $k$ algebraically closed. Then, $X\times Y\subset \mathbb{A}^{m+n}$ may be checked to be an affine variety as well; furthermore, it's just the product in the category of varieties. Then, because the functor $A(-)$ is an arrow-reversing equivalence of categories, it follows that $A(X\times Y)=A(X)\otimes_{k} A(Y)$, as tensor product is the coproduct in the category of finitely generated $k$-algebras which are domains.  Unless I have made a mistake, one can check directly from the universal property of tensor product that we also have \begin{equation*} k[x_{1},\ldots,x_{n}]/I(X)\otimes_{k}k[y_{1},\ldots,y_{m}]/I(Y)=k[x_{1},\ldots,x_{m},y_{1},\ldots,y_{m}]/(I(X)+I(Y)), \end{equation*}  and of course $I(X)+I(Y)\subset I(X\times Y)$, so it should be true that we in fact have equality $I(X)+I(Y)=I(X\times Y)$. Is there a direct way to see this? In particular, it seems like it should be true for arbitrary Zariski-closed $X,Y$.  (Source: Hartshorne, Exercise I.3.15)
This is a follow up question to my previous question  Let $k$ be a field and $V \subseteq \Bbb{A}^n$ and $W \subseteq \Bbb{A}^m$ be algebraic sets. Then it should be true that $I(V \times W ) = I(V) + I(W)$ where by $I(V)$ here we mean the extension of $I(V)k[x_1,\ldots,x_{m+n}]$. Now I believe I have proven this (see the proof at the bottom of my question) but when I look at Martin's answer , it is instead claimed that we  actually have  $$I(V \times W )= \sqrt{I(V) + I(W)},$$  and for $I(V) + I(W)$ to be a radical ideal we need $k$ to be algebraically closed.           My question is: What's going on here? I believe my claim is true even without the assumption that $k$ is algebraically closed.           Here's a proof user Sanchez told me of, which I have simplified:       First it is clear that we always have $I(V) + I(W) \subseteq I(V \times W)$. For the reverse inclusion consider a polynomial $f \in I(V \times W)$. Then we can always write $$f = \sum_{i=1}^n f_ig_i$$ where $f_i \in k[x_1,\ldots,x_n]$ and $g_i \in k[x_{n+1},\ldots,x_{m+n}]$. Now take any $b' \in W$. If for all $i$ we have $g_i(b') = 0$ then since $b'$ is arbitrary, $g_i \in I(W)$ for all $i$. Then $f \in I(W) \subseteq I(V ) + I(w)$ and we are done. Otherwise suppose there exists $b \in W$  and $i$ such that $g_i(b) \neq 0$. Then wlog we may suppose that  $g_1(b) \neq 0$.   Next, $\sum f_ig_i(b) = 0 $ on all of $V$ by assumption of $f \in I(V \times W)$. So $\sum f_i g_i(b) = p$ for some $p \in I(V)$. Now write $$f_1 = \frac{ p - g_2(b) f_2 + \ldots g_n(b)f_n}{g_1(b)}.$$  Substituting this for $f_1$ in $\sum f_ig_i$, followed by taking things mod $I(V)$ we get an  expression with only $n-1$ terms $\mod{I(V)}$. Continuing this process we will finally get an expression with $0$ terms $\mod{I(V)}$ so that $f \in I(V)$. This shows $I(V \times W) \subseteq I(V) + I(W)$ which completes the proof.
How do I check the integrity of a storage medium (hard disk or flash drive)? This is an exam question I was practising. I have the general understanding of Linear programming, but how would you go about finding the Decision Variables, Objective function and Constraints for this?  My Opinions: Decision variables: $M_1$- # of Model $1$ to be produced $M_2$ and $M_3$(similar definition as $M_1$)  Objective function: I'd Multiple the Cost to make in house by cost to buy from subtractor  to get Minimise: $3900M_1+7500M_2+27300M_3$  Constraints: $3M_1+1.5M_2+2M_3\ge0$  $1.25M_1+2.5M_2+0.75M_3\ge8500$  $M_1,M_2,M_3\ge 5500$  No idea where number order would go? Do I use it in the Constraints and multiply by the Hours?  Now, am I on the right track? The other day I was looking at Stack Overflow on my Android phone. All is made very nice and all, but I could not find the Review button/link. Is it being implemented, did I miss it, or it is not available? Problem understanding the logistic regression link function I'm having some trouble understanding the purpose of a salt to a password.  It's my understanding that the primary use is to hamper a rainbow table attack.  However, the methods I've seen to implement this don't seem to really make the problem harder.  I've seen many tutorials suggesting that the salt be used as the following:  $hash =  md5($salt.$password)   The reasoning being that the hash now maps not to the original password, but a combination of the password and the salt.  But say $salt=foo and $password=bar and $hash=3858f62230ac3c915f300c664312c63f.  Now somebody with a rainbow table could reverse the hash and come up with the input "foobar".  They could then try all combinations of passwords (f, fo, foo, ... oobar, obar, bar, ar, ar).  It might take a few more milliseconds to get the password, but not much else.  The other use I've seen is on my linux system.  In the /etc/shadow the hashed passwords are actually stored with the salt.  For example, a salt of "foo" and password of "bar" would hash to this: $1$foo$te5SBM.7C25fFDu6bIRbX1.  If a hacker somehow were able to get his hands on this file, I don't see what purpose the salt serves, since the reverse hash of te5SBM.7C25fFDu6bIRbX is known to contain "foo".  Thanks for any light anybody can shed on this.  EDIT:  Thanks for the help.  To summarize what I understand, the salt makes the hashed password more complex, thus making it much less likely to exist in a precomputed rainbow table.  What I misunderstood before was that I was assuming a rainbow table existed for ALL hashes. Mean or sum of gradients for weight updates in SGD I am using single observation to compute losses using neural network implementation in PyTorch. I am confused in a small detail of SGD. If I compute loss and do loss.backward(), I am accumulating gradients.  If I do this on 100 observations and then run optimizer.step(), should I average out the gradients?  This is what I am doing as of now:  def compute_loss(training_data):   for data in training_data:     loss = F.mse_loss(data[0], data[1])     loss.backward()  def optimize(sample):   optimizer.zero_grad()   compute_loss(sample)   optimizer.step()   Should it be rather:  def compute_loss(training_data):   for data in training_data:     loss = F.mse_loss(data[0], data[1])     loss.backward(torch.Tensor([1.0/len(training_data)])) Comment font sizes are inconsistent on Android An issue similar to that described in  and likely to be related.  The comments for a question may vary in size:         Chrome for Android on Nexus 7 running 4.2.2 Jelly Bean. This also occurs on Firefox for Android: Why doesn't planet Earth expand if I accelerate upwards when standing on its surface? According to General Relativity I am being accelerated upwards by planet earth while writing this question. But a curious person on the the other side of the planet relative to me would have the same experience. That means we are accelerated in opposite directions, although earths diameter do not seem to increase. How can this be? i am getting a weird error - white screen in the list of posts for a specific Custom post type (just for that one)   tried deactivating all the plugins tried checking for error (debugging = true)   Still nothing the page just doesnt echos anything... (nothing in source too)  I am talking about such a url in the admin:     Here is register_post_type part i am using:    function register_submodelcpt() {     $labels = array(         'name'                  =&gt; __('Sub Models', THEME_NAME),         'singular_name'         =&gt; __('Sub Models', THEME_NAME),         'add_new'               =&gt; __('New Model', THEME_NAME),         'add_new_item'          =&gt; __('Add new Model', THEME_NAME),         'edit_item'             =&gt; __('Edit Model', THEME_NAME),         'new_item'              =&gt; __('New Model', THEME_NAME),         'all_items'             =&gt; __('All Sub Models', THEME_NAME),         'view_item'             =&gt; __('Watch Model', THEME_NAME),         'search_items'          =&gt; __('Search Models', THEME_NAME),         'not_found'             =&gt;  __('No Models found', THEME_NAME),         'not_found_in_trash'    =&gt; __('No Models found in trash', THEME_NAME),          'parent_item_colon'     =&gt; '',         'menu_name'             =&gt; __('Sub Models', THEME_NAME),      );      $args = array(         'labels'                =&gt; $labels,         'public'                =&gt; true,         'publicly_queryable'    =&gt; true,         'show_ui'               =&gt; true,          'show_in_menu'          =&gt; true,          'query_var'             =&gt; true,         'rewrite'               =&gt; array('slug' =&gt; 'submodels'),         'capability_type'       =&gt; 'post',         'has_archive'           =&gt; true,          'hierarchical'          =&gt; true,         'menu_position'         =&gt; 5,         'menu_icon'             =&gt; get_stylesheet_directory_uri().'/images/cpt/subcars.png',                     'supports'              =&gt; array('title', 'thumbnail', 'revisions', 'page-attributes')     );      register_post_type('submodelscpt',$args); } add_action('init', 'register_submodelcpt');   Did anyone encounter such an issuse? can you think of a reason this might happen?   Another weird thing when i change this:    To this:     The posts list loads correctly... Why is OpenJDK 10 packaged as openjdk-11-*? I use object != null a lot to avoid . What is an alternative to: if (someobject != null) {     someobject.doCalc(); } Syntax to add multiple commands to a single command block I am looking to try and set multiple commands in a single command block, but so far everything I have tried just returns "Unknown Command".  What is the format for writing multiple commands in a single command block in Minecraft 1.8?  Can I use either of the following:  Command:(command here) Command:(command here)     /command here; /command here;   Or is there another format? Position of a relative clause before/after a verb \varepsilon vs. \epsilon How to convert Local time to UTC time in Delphi? and how to convert it back from UTC to local time? redraw GUI on didreceivelocalnotification when come from lock screen iphone PDF export on macOS Mojave produces bold fonts How does gravity escape a black hole? My understanding is that light can not escape from within a black hole (within the event horizon).  I've also heard that information cannot propagate faster than the speed of light.  It would seem to me that the gravitational attraction caused by a black hole carries information about the amount of mass within the black hole.  So, how does this information escape?  Looking at it from a particle point of view: do the gravitons (should they exist) travel faster than the photons? Efficiency of a heat pump water heater during the winter In my understanding, heat pump water heaters pump energy from the room around the water tank into the water.  Clearly, this must be energy efficient in the summer time, especially if I am using AC anyway. The heat pump water heater may actually cool the house a bit.  However, in the winter time the savings are not so obvious. If I am using a heater to heat the home, including the water tank room, then I don't see how there can be any savings. Instead of generating heat using a coil in the water, I generate heat in another area of the house which gets pumped into the water. A joule is a joule and I need to get it from somewhere. It seems to me that if I am actively heating the house, and lets assume everything is electric, then a heat pump water heater cannot be more efficient than a traditional one.  Am I missing something in the winter case? Finding the limit of $\frac {n}{\sqrt[n]{n!}}$ I'm trying to find  $$\lim_{n\to\infty}\frac{n}{\sqrt[n]{n!}} .$$   I tried couple of methods: Stolz, Squeeze, D'Alambert  Thanks!  Edit: I can't use Stirling.