<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://groshanlal.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://groshanlal.github.io/" rel="alternate" type="text/html" /><updated>2026-07-31T22:46:09+00:00</updated><id>https://groshanlal.github.io/feed.xml</id><title type="html">G Roshan Lal</title><subtitle>AI Research, Amazon Alexa</subtitle><author><name>G Roshan Lal</name></author><entry><title type="html">Intro to Reinforcement Learning</title><link href="https://groshanlal.github.io/articial_intelligence/2026/07/30/reinforcement-learning.html" rel="alternate" type="text/html" title="Intro to Reinforcement Learning" /><published>2026-07-30T00:00:00+00:00</published><updated>2026-07-30T00:00:00+00:00</updated><id>https://groshanlal.github.io/articial_intelligence/2026/07/30/reinforcement-learning</id><content type="html" xml:base="https://groshanlal.github.io/articial_intelligence/2026/07/30/reinforcement-learning.html"><![CDATA[<p>These are my notes from studying Reinforcement Learning. Much of this material comes from Sutton and Barto’s textbook on Reinforcement Learning.</p>

<h3 id="setup">Setup</h3>
<p>RL Loop:</p>
<ul>
  <li>Agent takes action $A_t = a \in \cal A(s)$. Agent observes the current state of the environment. Agent’s action depends on it.</li>
  <li>Environment gives reward $R_{t+1} = r \in \cal R \subseteq \mathbb R$ and changes state to $S_{t+1} = s’ \in \cal S$.</li>
  <li>We assume that the agent can fully observe the state of the environment. In real world, environment state might only be partially observable.</li>
</ul>

<h3 id="finite-markov-decision-process">Finite Markov Decision Process</h3>
<ul>
  <li><strong>Finite</strong>: The state space $\cal S$, action space $\cal A$ and the rewards space $\cal R$ are all finite.</li>
  <li><strong>Markov</strong>: Environment’s state and reward only depends on the current state and action of the agent. This is expressed as a probability distribution: $p(s’, r | s, a)$</li>
  <li>Markov property is a strong assumption. It says that the current state encodes enough information to govern all future possibilities that the environment can end up in. The history of how the environment reached the current state is not important.</li>
</ul>

<h3 id="episode">Episode</h3>
<ul>
  <li>Environment will have a starting distribution of states.</li>
  <li>Environment will have a terminal state that marks the end of an episode.</li>
  <li>A sequence of state, action, rewards in an episode starting from some starting state and ending in a terminal state is called a <strong>Trajectory</strong>: $(s_0^m,a_0^m,r_1^m,s_1^m,a_1^m,\ldots,r_T^m,s_T^m)$ denotes the $m^{th}$ episode.</li>
</ul>

<h3 id="policy">Policy</h3>
<ul>
  <li>How the agent behaves under a given environment state is controlled by a probability distribution called policy: $\pi(a|s)$.</li>
  <li>Policy can be deterministic: $a = \pi(s)$.</li>
  <li>A good policy should ideally accumulate a lot of future rewards, called <strong>Return</strong>: $G_t = \sum_{k = t+1}^{T} \gamma^{k-t-1}R_k$. Future rewards are discounted.</li>
  <li>Goal is to learn a policy $\pi$ that maximizes $\mathbb E_{\pi}[G_t]$</li>
  <li>Finding the optimal policy is also called the <strong>Control Problem</strong>.</li>
</ul>

<h3 id="value-functions">Value Functions</h3>
<p>$G_t$ can be broken down further:</p>
<ul>
  <li>Per state: State Value function:
$v_{\pi}(s)=\mathbb E_{\pi}[G_t|S_t=s]$</li>
  <li>Per state, action pair: Action Value function:
$q_{\pi}(s,a) = \mathbb E_{\pi}[G_t|S_t=s, A_t=a]$</li>
</ul>

<p>There exists a optimal policy $\pi_{*}$ such that:</p>
<ul>
  <li>$v_{\pi_{*}}(s) \geq v_{\pi}(s)$ for all $s$ and any $\pi$</li>
  <li>$q_{\pi_{*}}(s,a) \geq q_{\pi}(s,a)$ for all $s,a$ and any $\pi$</li>
</ul>

<p>Knowing these value functions for the optimal policy is enough to know the optimal policy. In each state, we only need to move to the state that maximizes the value.</p>

<h3 id="model-of-the-environment">Model of the Environment</h3>
<p>When we do not have complete knowledge of the environment: $p(s’,r|s,a)$, we have two options:</p>
<ul>
  <li><strong>Model-based Methods:</strong> First estimate the environment model by estimating $p(s’,r|s,a)$ by interacting with the environment. We can then plan agent actions.</li>
  <li><strong>Model-free Methods:</strong> We directly learn a policy by interacting with the environment, without trying to estimate the environment.
Finding the optimal policy, given the model of the environment is also called the <strong>Planning Problem</strong>. Finding the optimal policy, is also called the <strong>Control Problem</strong> in general.</li>
</ul>

<h3 id="bellman-equations">Bellman Equations</h3>
<p>For any policy $\pi$, value functions $v_{\pi}$ and $q_{\pi}$ follow a recurrence relation:</p>

\[v_{\pi}(s)=\sum_{a \in \cal A(s)} \pi(a|s)q_{\pi}(s,a)\]

\[q_{\pi}(s,a)=\sum_{s' \in \cal S, r \in \cal R} p(s',r|s,a)[r + \gamma v_{\pi}(s')]\]

<ul>
  <li>Using these two equations, we can build pure recurrence relation in $v_\pi$ or $q_\pi$.</li>
  <li>If we have <strong>complete knowledge</strong> of the environment, that is, we know the state transition probabilities: $p(s’,r|s,a)$, then we can use these recurrence relations to solve for the value functions for a given policy $\pi$.</li>
</ul>

<p>When following the optimal policy $\pi_{*}$, the Bellman equations become:</p>

\[v_{\pi}(s)=\max_{a \in \cal A(s)} q_{*}(s,a)\]

\[q_{\pi}(s,a)=\sum_{s' \in \cal S, r \in \cal R} p(s',r|s,a)[r + \gamma v_{*}(s')]\]

<h3 id="policy-iteration">Policy Iteration</h3>
<p><strong>Policy Evaluation</strong>: Gets value function, given the policy.</p>
<ul>
  <li>Given a policy $\pi$, start with an estimate of the state value function:  $V(s)$</li>
  <li>Using the Bellman Equations for state value, update the value function for each state. Do this for all states. This is called a sweep.</li>
  <li>Run sweeps till value functions converge.</li>
</ul>

<p><strong>Policy Improvement</strong>: Gets a better policy, given the value function.</p>
<ul>
  <li>Given the value function $v_\pi$, update the policy to pick action that maximizes  $q_\pi(s, a)$ for a given state $s$.</li>
  <li>This will always lead to a strictly better policy, except when $\pi = \pi_{*}$.</li>
</ul>

<p><strong>Policy Iteration</strong>: Policy Evaluation and Improvement can be run back to back to get the optimal policy.</p>
<ul>
  <li>There are variants of this approach. For example, <strong>Value Iteration</strong> uses only a single sweep of evaluation before proceeding to get a better a policy.</li>
  <li>It can be generalized to <strong>Generalized Policy Iteration</strong>, where evaluation can be done at any granularity before proceeding to improvement.</li>
  <li>All Reinforcement Learning methods have some flavor of GPI.</li>
</ul>

<h3 id="monte-carlo-methods">Monte-Carlo Methods</h3>
<ul>
  <li>Monte-Carlo methods uses averages from observations to estimate expectations of probability distributions. The observations are the trajectories.</li>
  <li>MC methods for RL fall within Model-free methods.</li>
  <li>What to estimate: $V(s)$ or $Q(s,a)$:
    <ul>
      <li>Policy improvement always needs $Q(s,a)$.</li>
      <li>$Q(s,a)$ is more granular than $V(s)$. To go from $Q(s,a) \to V(s)$, we only need policy $\pi(a|s)$.</li>
      <li>But going the other way from $V(s) \to Q(s,a)$ requires knowing the model of the environment: $p(s’,r|s,a)$.</li>
    </ul>
  </li>
  <li>So, for simplicity, MC methods always try learning only $Q(s,a)$.</li>
</ul>

<h3 id="monte-carlo-evaluation">Monte-Carlo Evaluation</h3>
<ul>
  <li>Estimating $Q(s,a)$ of the Markov Decision Process: $(s_0^m,a_0^m,r_1^m,s_1^m,a_1^m,\ldots,r_T^m,s_T^m)$ is equivalent to</li>
  <li>Estimating $V(s)$ of the Markov Reward Process $(s_0^m,r_1^m,s_1^m,\ldots,r_T^m,s_T^m)$ where the state $s$ of the MRP represents the state-action pair $(s,a)$ of the MDP.</li>
</ul>

<p>The estimation looks like:</p>

\[V(s) = \mathbb E[G_t |S_t = s] \approx \frac{1}{C(s)}\sum_{m=1}^{M}\sum_{\tau=0}^{T_m-1} \mathbb 1[s_\tau^m = s]g_\tau^m\]

<p>There is also an iterative way to estimate this. After every episode, we know the returns for each state at time $t$ within the episode. Apply the update rule after the $m^{th}$ trajectory:</p>

\[V(s_t^m) \leftarrow V(s_t^m) + \frac{1}{C(s_t^m)}(g_t^m - V(s_t^m))\]

<p>There is a variant of this update rule called <strong>constant-$\alpha$ MC</strong> where $\alpha$ is the step-size:</p>

\[V(s_t^m) \leftarrow V(s_t^m) + \alpha(g_t^m - V(s_t^m))\]

<p>Smaller $\alpha$ is slow and accurate. Larger $\alpha$ is quick and noisy.</p>

<h3 id="monte-carlo-policy-improvement">Monte-Carlo Policy Improvement</h3>
<p><strong>Explore-Exploit Tradeoff:</strong> For discovering the best policy, we need to explore all state-action pairs. But when policies are always chosen to get high returns, we must exploit known high values, without exploring other possible states.</p>

<p>For best results, policy has to be soft. $\pi(a|s)&gt;0$ for all $s, a$. With infinite data, $\pi_{*}$ is always discoverable by GPI for such soft policies.</p>

<p>It is better to have policies explore more in the beginning and exploit more later. A simple approach to ensure some explore always:</p>
<ul>
  <li><strong>$\epsilon$-greedy(Q)</strong>: With probability $\epsilon$ pick an action uniformly at random and with probability $(1-\epsilon)$, pick $\text{argmax}_aQ(s,a)$.</li>
</ul>

<h3 id="off-policy-methods">Off Policy Methods</h3>
<p>Policy plays two roles in MC methods:</p>
<ul>
  <li><strong>Behavior</strong>: Sampling data for estimating $Q(s,a)$.</li>
  <li><strong>Target</strong>: Running Policy Iteration by evaluating $Q(s,a)$ and improving the policy towards the optimal policy.</li>
</ul>

<p>In Off-Policy methods, these two policies are kept different. For estimating returns under a behavior policy $b$, we need to scale the returns using:</p>

\[\rho_t = \prod_{\tau=t+1}^{T-1}\frac{\pi(A_{\tau}|S_{\tau})}{b(A_{\tau}|S_{\tau})}\]

<p>This imposes a constraint: The behavior policy must cover everything that the target policy covers:</p>

\[\pi(a|s) &gt; 0 \implies b(a|s) &gt; 0\]

<p>Advantages:</p>
<ul>
  <li>Can use a static dataset collected using some behavior policy to learn a different target policy later.</li>
  <li>Behavior policy takes care of exploration. The target policy need not be a soft policy (like $\epsilon$-greedy(Q)) to take care of exploration. The target can use pure $\text{argmax}_a Q(s,a)$.</li>
</ul>

<p>Disadvantages:</p>
<ul>
  <li>The scaling factor means that the effective step size is no longer the same for all state-action pairs. This can create unstable noisy updates.</li>
</ul>

<h3 id="temporal-difference">Temporal Difference</h3>
<ul>
  <li>Monte Carlo is inefficient. It waits till the end of the episode so that we know the full return, used in the updates.</li>
  <li>TD method uses the value function of the next state as a substitute for upcoming rewards. This is called <strong>Bootstrapping</strong>.</li>
  <li>Instead of using the value function of the very next state, we can observe the next few states and their rewards and then substitute upcoming rewards with the corresponding value function.</li>
  <li>Monte-Carlo methods learn from experience. Dynamic Programming learns from bootstrapping when environment is known. TD Learning combines Monte-Carlo’s learning from experience and DP’s bootstrapping.</li>
  <li>TD is more efficient by utilizing the Markov property of the underlying MRP.</li>
</ul>

<p><strong>n-Step TD:</strong> We start with the update rule of $\alpha$-MC and modify the return term $g_t^m$:</p>

\[V(s_t^m) \leftarrow V(s_t^m) + \alpha(g_t^m - V(s_t^m))\]

<p>where</p>

\[g_t^m = r_{t+1}^m + \gamma r_{t+2}^m + \gamma^2 r_{t+3}^m \ldots + \gamma^{n-1} r_{t+n}^m + \gamma^nV(s_{t+n}^m)\]

<ul>
  <li><strong>Tradeoff between MC and TD:</strong>
    <ul>
      <li>TD with high $n$ is equivalent to MC.</li>
      <li>TD with very low $n$, like $n=1$, needs a higher $\alpha$.</li>
    </ul>
  </li>
</ul>

<h3 id="sarsa-q-learning-and-expected-sarsa">SARSA, Q-Learning and Expected SARSA</h3>
<p>The On-Policy version of the TD algorithm is called <strong>n-step SARSA</strong>.</p>

\[Q(s_t^m,a_t^m) \leftarrow Q(s_t^m,a_t^m) + \alpha(g_{t:t+n}^m - Q(s_t^m,a_t^m))\]

\[g_{t:t+n}^m = r_{t+1}^m + \gamma r_{t+2}^m + \gamma^2 r_{t+3}^m \ldots + \gamma^{n-1} r_{t+n}^m + \gamma^nQ(s_{t+n}^m, a_{t+n}^m)\]

<p><strong>Modification 1:</strong> If we modify this update rule, by replacing:</p>

\[\gamma^n Q(s_{t+n}^m, a_{t+n}^m)\]

<p>with:</p>

\[\gamma^n \max_a Q(s_{t+n}^m, a)\]

<p>we get <strong>Q-Learning</strong>.</p>
<ul>
  <li>The Q values are now updated using a slightly different policy from the one that is generating the data. This makes it a <strong>Off-Policy method</strong>.</li>
  <li>The update can be triggered before the action $a_{t+n}^m$ is issued.</li>
</ul>

<p><strong>Modification 2:</strong> If we modify this update rule, by replacing:</p>

\[\gamma^n Q(s_{t+n}^m, a_{t+n}^m)\]

<p>with:</p>

\[\gamma^n \sum_a Q(s_{t+n}^m, a)\pi(a|s_{t+n}^m)\]

<p>we get <strong>Expected SARSA</strong>, an on-policy method. It has a less noisy update, but at a higher computational cost.</p>

<h3 id="functional-approximation">Functional Approximation</h3>
<ul>
  <li>In simple cases, we can list a table of all states, actions. We call this the <strong>Tabular Case</strong>.</li>
  <li>In large state spaces, we need too much memory, compute and data for RL training.</li>
  <li>States are represented as feature vectors $s$. Value function takes the state feature vectors and gives a value, using something like a neural network with parameters that can be learnt: $\hat{v}(s,w)$</li>
  <li>But this creates a new problem, whenever we try to update the value function from one state, it affects all states.</li>
</ul>

<p>The best $w$ is the one that minimizes:</p>

\[\overline{VE}(w) = \sum_{s}\mu(s)[v_{\pi}(s) - \hat{v}(s,w)]^2\]

<p>where $\mu(s)$ is the probability distribution of visiting the respective states.</p>
<ul>
  <li>But we do not know the true value function $v_{\pi}(s)$.</li>
  <li>We get to observe a surrogate target $U_t$ instead</li>
  <li>And we learn the parameter $w$ using SGD, like in any supervised learning.</li>
</ul>

<p>For the target to work fine (optimizing with the target is same as optimizing with value function), we need it to be unbiased:
\(\mathbb E[U_t |S_t=s] = v_{\pi}(s)\)</p>

<h3 id="gradient-monte-carlo">Gradient Monte Carlo</h3>

\[U_t = G_t\]

<h3 id="semi-gradient-td">Semi-Gradient TD</h3>

\[U_t = R_t + \gamma \hat{v}(S_{t+1}, w)\]

<p>But:</p>
<ul>
  <li>This is a biased target.</li>
  <li>The update rule is not a true gradient step, since $U_t$ depends on $w$. So there is no guarantee of convergence. But it still somehow works.</li>
</ul>

<h3 id="off-policy-methods-with-function-approximation">Off Policy Methods with Function Approximation</h3>
<ul>
  <li>On-Policy methods work fine</li>
  <li>But, Off-Policy runs into problems of divergence called the Deadly Triad:
    <ul>
      <li>Bootstrapping</li>
      <li>Off Policy</li>
      <li>Function Approximation</li>
    </ul>
  </li>
</ul>

<h3 id="policy-gradient-theorem">Policy Gradient Theorem</h3>
<p>Suppose we parameterize the policy: $\pi_\theta(a|s)$.</p>

<p>We need to maximize over trajectories $\tau$:</p>

\[J(\theta) = \mathbb E_{\tau \sim \pi_\theta} [G(\tau)] = \int \pi_\theta(\tau)G(\tau)d\tau\]

\[\nabla_\theta J(\theta) = \nabla_\theta\int \pi_\theta(\tau)G(\tau)d\tau = \int [\nabla_\theta\pi_\theta(\tau)]G(\tau)d\tau\]

<p>To simplify this further, we use the log-derivative trick:</p>

\[\nabla \log f(x) = \frac{1}{f(x)}\nabla f(x)\]

\[\nabla_\theta J(\theta) = \int [\nabla_\theta\pi_\theta(\tau)]G(\tau)d\tau = \int [\nabla_\theta\log\pi_\theta(\tau)]\pi_\theta(\tau)G(\tau)d\tau\]

<p>This helps rephrase the gradient as an expectation:</p>

\[\begin{align*}
J(\theta) &amp;= \mathbb E_{\tau\sim\pi_\theta} [G(\tau)]\\
\nabla_\theta J(\theta) &amp;= \mathbb E_{\tau\sim\pi_\theta} [G(\tau)\nabla_\theta\log\pi_\theta(\tau)]
\end{align*}\]

<h3 id="reinforce-algorithm">REINFORCE Algorithm</h3>
<p>For each trajectory, perform gradient ascent of $\pi_\theta$ using $G(\tau)\nabla_\theta\log\pi_\theta(\tau)$.</p>

<p>The trajectory probability can be expressed as:</p>

\[\pi_\theta(\tau) = p(s_0) \hspace{5mm} \pi_\theta(a_0|s_0) p(s_1, r_1|s_0, a_0) \hspace{5mm} \pi_\theta(a_1|s_1) p(s_2, r_2|s_1, a_1) \hspace{5mm} \ldots \hspace{5mm} \pi_\theta(a_{T-1}|s_{T-1}) p(s_T, r_T|s_{T-1}, a_{T-1})\]

<p>Only the $\pi_\theta(a_t | s_t)$ terms are dependent on $\theta$.</p>

\[\nabla_\theta\pi_\theta(\tau) = \sum_{t=0}^{T-1}   \nabla_\theta \log\pi_\theta(a_t|s_t)\]

\[\nabla_\theta J(\theta) = \mathbb E_{\tau\sim\pi_\theta} [G(\tau)\nabla_\theta\log\pi_\theta(\tau)] = \sum_{t=0}^{T-1}   \mathbb E_{\tau\sim\pi_\theta}[G(\tau)\nabla_\theta \log\pi_\theta(a_t|s_t)]\]

<p>Here is the update rule:</p>

\[\theta \leftarrow \theta + \alpha \sum_{t=0}^{T-1} G(\tau)  \nabla_\theta \log\pi_\theta(a_t|s_t)\]

<p>This is an episodic update algorithm. The update is applied only after the total return $G(\tau)$ of the trajectory is known. This update rule can further be tightened by replacing $G(\tau)$ with rewards from time $t$ onwards.</p>

<h3 id="reinforce-algorithm-reward-to-go">REINFORCE Algorithm: Reward To Go</h3>
<p>$G(\tau)$ can be broken down into past $B_t$ and future $G_t$ rewards:</p>

\[G(\tau) = \sum_{i=0}^{t-1}\gamma^ir_{i+1} + \gamma^t\sum_{i=t}^{T-1}\gamma^{i-t}r_{i+1} = B_t + \gamma^t G_t\]

\[\mathbb E[G(\tau)\nabla_\theta \log\pi_\theta(a_t|s_t)] = \mathbb E[B_t\nabla_\theta \log\pi_\theta(a_t|s_t)] + \mathbb E[\gamma^tG_t\nabla_\theta \log\pi_\theta(a_t|s_t)]\]

<p>We can show that the first term is $0$. Let the trajectory history till time $t$ be $H_t$. We can break the expectation term as two nested expectations, first given the trajectory $H_t$ what the expectations turns out to be and then over all such $H_t$:</p>

\[\mathbb E_{\tau\sim\pi_\theta}[B_t\nabla_\theta \log\pi_\theta(a_t|s_t)] = \mathbb E_{H_t}[\mathbb E_{a_t\sim\pi_\theta(.|s_t)}[B_t\nabla_\theta \log\pi_\theta(a_t|s_t) | H_t]]\]

<p>The inner term can be shown to be 0:</p>

\[\begin{align*}
\mathbb E_{a_t\sim\pi_\theta(.|s_t)}[B_t\nabla_\theta \log\pi_\theta(a_t|s_t) | H_t] 
&amp;= B_t\mathbb E_{a_t\sim\pi_\theta(.|s_t)}[\nabla_\theta \log\pi_\theta(a_t|s_t) | H_t]\\
&amp;= B_t\mathbb E_{a_t\sim\pi_\theta(.|s_t)}[\nabla_\theta \log\pi_\theta(a_t|s_t) | s_t] &amp;&amp;\text{($B_t$ is constant given $H_t$)}\\
&amp;= B_t\nabla_\theta \mathbb E_{a_t\sim\pi_\theta(.|s_t)}[1 | s_t] &amp;&amp;\text{(Log-derivative Trick)}\\
&amp;= B_t \nabla_\theta 1\\
&amp;= 0\\
\end{align*}\]

<p>This means:</p>

\[\nabla_\theta J(\theta) = \sum_{t=0}^{T-1}   \mathbb E_{\tau\sim\pi_\theta}[G(\tau)\nabla_\theta \log\pi_\theta(a_t|s_t)] = \sum_{t=0}^{T-1}   \mathbb E_{\tau\sim\pi_\theta}[\gamma^tG_t\nabla_\theta \log\pi_\theta(a_t|s_t)]\]

<p>Here is the corresponding update rule:</p>

\[\theta \leftarrow \theta + \alpha \sum_{t=0}^{T-1} \gamma^tG_t  \nabla_\theta \log\pi_\theta(a_t|s_t)\]

<p>This update rule can be applied at a step-level (after each action) instead of episode level if we replace $G_t$ with a boot-strapped estimate.</p>

\[\theta \leftarrow \theta + \alpha  \gamma^tG_t  \nabla_\theta \log\pi_\theta(a_t|s_t)\]

<p>The REINFORCE algorithm has one crucial issue. The total return gets smeared across the entire trajectory. It is unclear which action within the trajectory was the most crucial. This makes it:</p>
<ul>
  <li>high variance</li>
  <li>sample inefficient</li>
</ul>

<h3 id="actor-critic-methods">Actor-Critic Methods</h3>

\[\nabla_\theta J(\theta) =    \mathbb E_{\tau\sim\pi_\theta}[\sum_{t=0}^{T-1}\gamma^tG_t\nabla_\theta \log\pi_\theta(a_t|s_t)]\]

<p>Redoing the above derivation, we can replace $G_t$ with $G_t - b_t$ where $b_t$ is called the baseline and is purely a function of $H_t$. We generally need the baseline to be only a function of $s_t$ with $b_t = b(s_t)$.</p>

\[\nabla_\theta J(\theta) =    \mathbb E_{\tau\sim\pi_\theta}[\sum_{t=0}^{T-1}\gamma^t(G_t-b(S_t))\nabla_\theta \log\pi_\theta(a_t|s_t)]\]

<p>If we choose the baseline $b(S_t) = V(S_t)$, then the update rule reduces any update to the state by the expected returns from that state. The difference $G_t - b(S_t)$ is called the <strong>Advantage</strong>. It reduces the variance of the REINFORCE update.</p>

<p>A <strong>Critic</strong> is any system that learns the value function (using Monte-Carlo or TD) to be used as a baseline. The <strong>Actor</strong> is any system that learns the optimal policy. Together they can be used to make REINFORCE style updates called Actor-Critic Methods.</p>

<p>Actor-Critic Methods are often used with function approximation and bootstrapping, so that it can be truly a step-level update without having to wait for the entire $G_t$. Here is an example:</p>

\[\begin{align*}
\text{1-Step TD (also the Advantage)} \hspace{2mm}:&amp;\hspace{2mm} \delta_t = [R_{t+1} + \gamma V_w(S_{t+1})] - V_w(S_{t})\\
\text{Critic} \hspace{2mm}:&amp;\hspace{2mm}  w \leftarrow w + \beta \delta_t \nabla_w V_w(S_t)\\
\text{Actor} \hspace{2mm}:&amp;\hspace{2mm} \theta \leftarrow w + \alpha \gamma^t\delta_t \nabla_\theta \log \pi_\theta (A_t|S_t)\\
\end{align*}\]

<p>Actor-Critic methods can sometimes make large updates to the policy. This affects how data gets sampled in subsequent steps. To avoid this, extra regularization terms (like using KL diverge between current policy and updated policy, some clipping mechanisms to update etc.) are used to keep the updates small. There are many algorithms of this nature. Example: TRPO, PPO.</p>]]></content><author><name>G Roshan Lal</name></author><category term="articial_intelligence" /><summary type="html"><![CDATA[These are my notes from studying Reinforcement Learning. Much of this material comes from Sutton and Barto’s textbook on Reinforcement Learning.]]></summary></entry><entry><title type="html">Buddhism Beyond the Jargon</title><link href="https://groshanlal.github.io/social/2026/05/26/buddhism.html" rel="alternate" type="text/html" title="Buddhism Beyond the Jargon" /><published>2026-05-26T00:00:00+00:00</published><updated>2026-05-26T00:00:00+00:00</updated><id>https://groshanlal.github.io/social/2026/05/26/buddhism</id><content type="html" xml:base="https://groshanlal.github.io/social/2026/05/26/buddhism.html"><![CDATA[<p>I recently found a short book called “The Buddha’s Teachings” by Thanissaro Bhikkhu. This small 40-page introduction explains Buddhist teachings along with some history about who the Buddha was, what the core Buddhist texts are, and what early practitioners were like. This essay is mostly a summary of what I understood from this book.</p>

<h1 id="lost-in-translation">Lost in Translation</h1>

<p>Buddhism has always been an interesting topic for me. After all, what can be a more profound question than asking: Why does life always feel somewhat unsatisfactory?</p>

<p>But every attempt at understanding Buddhism in the past had always felt difficult for two main reasons:</p>

<h3 id="1-too-many-metaphors-and-analogies">1. Too Many Metaphors and Analogies</h3>

<p>Buddhism is full of metaphors and analogies that I often do not know how to interpret. For example, in the context of the Buddhist path to enlightenment, the Buddha says:</p>

<p>“If the strings of a lute are too tight, they will break. If they are too loose, you cannot play it. They have to be just right to make good music.”</p>

<p>This points toward the idea of the “Middle Way” of avoiding extremes. But at first, I found this confusing because Buddhism seemed more focused on meditation, renunciation, and non-violence than on moderation in the everyday sense.</p>

<h3 id="2-too-much-unfamiliar-jargon">2. Too Much Unfamiliar Jargon</h3>

<p>Buddhism is also full of jargon that is hard to understand. Translations of the Pali Canon often use phrases like “Mental Fabrications” or “Volitional Actions,” words we do not normally use to describe our everyday lives.</p>

<p>Even the central Buddhist idea about the unsatisfactory nature of life is called “Dukkha”, often translated simply as “suffering.” Because of this translation, many Buddhist texts begin with the phrase: “Life is suffering,” which can feel overly pessimistic.</p>

<p>This book avoids both of these pitfalls and is an easy read for a modern audience. Now, let us dive into the main teachings of the Buddha as I understood them from this book.</p>

<h1 id="the-problem-of-unsatisfactoriness">The Problem of Unsatisfactoriness</h1>

<p>We can see a feeling of unsatisfactoriness constantly in our daily lives.</p>

<p>Whether it is our favorite dish, trips to faraway destinations, clearing exams, getting a pay raise, or buying something we really wanted, all of it feels like it will make us happy. But when it finally comes, we feel happy only for a while. Soon, it no longer feels life-changing, and we move on to the next big goal.</p>

<p>In a smaller way, this even happens when we scroll reels on Instagram. The next reel always feels interesting, and we keep scrolling endlessly until eventually we get bored and stop.</p>

<p>Buddhism tries to answer why life feels this way. According to Buddhism, the answer is roughly three-fold:</p>

<ol>
  <li>Everything is constantly changing.</li>
  <li>We believe our happiness comes from certain things and become attached to them. But when those things change or disappear, we suffer because we cannot accept the change.</li>
  <li>Our attachments are based on stories we tell ourselves about who we are. But in reality, the things that make up our identity are fluid and constantly changing.</li>
</ol>

<h1 id="attachment-and-identity">Attachment and Identity</h1>

<p>We often believe our identities are based on our physical appearance or the mental processes happening inside us. To better understand these mental processes, Buddhism breaks them further into different parts:</p>

<ol>
  <li>Our likes and dislikes.</li>
  <li>The labels and categories we give ourselves, such as belonging to a country, tribe, political party, or identifying ourselves through tastes in food, music, or hobbies.</li>
  <li>Our everyday habits and routines, which guide our actions based on the kind of person we believe ourselves to be.</li>
</ol>

<p>Besides these, Buddhism also includes “consciousness”, the observer of all these processes, as part of our identity. But instead of treating it as a permanent soul, Buddhism says consciousness arises only when there is something to be observed. Hence “consciousness” comes and goes just like the other processes it observes.</p>

<p>All these different parts are things we usually identify ourselves with, but they are constantly changing. Claiming any one of them as our fixed identity creates false expectations about reality. According to Buddhism, this is one of the core reasons why we become attached to impermanent things.</p>

<h1 id="how-attachment-creates-dissatisfaction">How Attachment Creates Dissatisfaction</h1>

<p>Our likes and dislikes gradually strengthen into attachments. Buddhism describes different forms of attachment, such as:</p>
<ul>
  <li>Attachment to sensual pleasure</li>
  <li>Attachment that motivates us to become a new version of ourselves</li>
  <li>Attachment that motivates us to reject or abandon a current identity</li>
</ul>

<p>These attachments constantly push us toward becoming someone new. A new identity may feel exciting when we first achieve it. But over time, it too becomes ordinary, and we start searching for yet another identity to pursue.</p>

<h1 id="what-buddhism-suggests-instead">What Buddhism Suggests Instead</h1>

<p>This raises an important question: how do we stop constantly chasing new identities?</p>

<p>Buddhism suggests that even abandoning an identity can itself become another form of attachment. According to Buddhism, the solution is to gradually develop a sense of dispassion, a reduced obsession with our likes, dislikes, and self-images.</p>

<p>This does not mean forcing ourselves to hate pleasure or ambition. Rather, it means recognizing that our past pursuits have usually brought only temporary satisfaction. Buddhism encourages us to remember that many of our likes, dislikes, and identities are shaped by limited experiences gathered over time. They are not absolute truths about who we are.</p>

<p>But does this mean we should stop acting altogether or give up all ambition? Not necessarily. We can still be ambitious about learning something, building something, or helping others. But the difference is that these actions no longer need to come from a desperate need to become “the successful person,” “the intelligent person,” or “the important person.” Similarly, we can still work to make the world better for others, but without being driven primarily by greed, hatred, or delusions about reality.</p>

<h1 id="the-practical-side-of-buddhism">The Practical Side of Buddhism</h1>

<p>All of this can sound very theoretical. In practice, Buddhism says that developing this state of dispassion begins with understanding reality as clearly as possible, without constantly filtering it through what we want reality to be.</p>

<p>But knowledge alone is not enough. Buddhism also emphasizes living virtuously by avoiding actions that harm others, such as stealing, lying, sexual misconduct, or intoxication. These virtues are not presented merely as rules for gaining rewards in another world. Instead, they are practical tools for understanding ourselves better.</p>

<p>For example:</p>
<ul>
  <li>Greed becomes less meaningful once we recognize how temporary sensory pleasures are.</li>
  <li>Honesty helps us stay closer to reality. Lying often exists to defend identities and stories we keep telling ourselves about who we are.</li>
</ul>

<p>Finally, Buddhism places enormous importance on awareness and meditation. It encourages people to observe how thoughts arise and disappear inside the mind, and how constantly reacting to those thoughts traps us in a cycle of endlessly seeking one thing after another. Meditation, in this sense, is not about suppressing thoughts. It is about learning to observe thoughts without immediately judging them, feeding them, or acting on them.</p>

<h1 id="final-thoughts">Final Thoughts</h1>

<p>Buddhism, at least as I currently understand it, feels less about rejecting life and more about understanding why we keep chasing things that never fully satisfy us.</p>

<p>The more interesting part is that Buddhism does not merely describe this dissatisfaction philosophically. It also tries to provide a practical way to observe it directly within our own everyday lives and possibly train ourselves to break out of it.</p>]]></content><author><name>G Roshan Lal</name></author><category term="social" /><summary type="html"><![CDATA[I recently found a short book called “The Buddha’s Teachings” by Thanissaro Bhikkhu. This small 40-page introduction explains Buddhist teachings along with some history about who the Buddha was, what the core Buddhist texts are, and what early practitioners were like. This essay is mostly a summary of what I understood from this book.]]></summary></entry><entry><title type="html">The Three Trucks And Infra Upgrade</title><link href="https://groshanlal.github.io/short_story/2026/05/18/trucks.html" rel="alternate" type="text/html" title="The Three Trucks And Infra Upgrade" /><published>2026-05-18T00:00:00+00:00</published><updated>2026-05-18T00:00:00+00:00</updated><id>https://groshanlal.github.io/short_story/2026/05/18/trucks</id><content type="html" xml:base="https://groshanlal.github.io/short_story/2026/05/18/trucks.html"><![CDATA[<h1 id="the-grocery-store">The Grocery Store</h1>

<p>The grocery store had been around for decades. Customers only saw the front of it: the shopkeeper that always had a smile on, the clean aisles, the cash registers, and the neatly stacked fruits near the entrance. Behind it, separated by a pair of metal doors, was the warehouse.</p>

<p>The warehouse was run by a manager. At the center of the warehouse were three delivery trucks. The trucks brought goods from the suppliers to the warehouse. Everything in the store depended on those trucks arriving on time.</p>

<h1 id="the-three-trucks">The Three Trucks</h1>
<p>The three trucks were each one step away from death.</p>

<p>The first was an aging blue truck with rust spreading along the bottom of its doors. It leaked oil badly enough that drivers joked you could track its route by the stains it left behind.</p>

<p>The second was white, though years of dust and faded paint had turned it grayish. Its transmission slipped unpredictably. Every mechanic who inspected it called the problem “manageable”, which usually meant expensive repairs and temporary fixes.</p>

<p>The third truck was the oldest of them all. Its engine sounded strained even on short drives, and after long trips it sometimes refused to start again at all. Drivers learned to avoid turning it off unless absolutely necessary.</p>

<p>All three had been bought second-hand years earlier. They were nearly on their way to the scrapyard when the shopkeeper bought them cheaply.</p>

<h1 id="the-managers-nightmare">The Manager’s Nightmare</h1>

<p>The manager’s job was simple on paper: keep the store stocked. In practice, it meant keeping those three trucks alive. Every few weeks, one of them broke down somewhere between the suppliers and the warehouse.</p>

<p>When that happened, the manager’s day changed instantly. A phone call would come in early in the morning or late at night. Sometimes from a driver stranded on the shoulder of a highway. Sometimes from a towing company. Sometimes from a supplier asking why nobody had arrived. Then came the rearranging, delayed deliveries and emergency calls with partial shipments and apologies.</p>

<p>Over time, the manager stopped sleeping properly. He began checking his phone before getting out of bed. Even on quiet days, he carried the feeling that something was about to go wrong.</p>

<p>One evening after a particularly bad week, he walked into the front office and sat down with the shopkeeper. He told the shopkeeper that they needed new trucks.</p>

<h1 id="the-escalation">The Escalation</h1>

<p>“We need new trucks”, the manager said plainly. The shopkeeper leaned back in his chair but said nothing.</p>

<p>The manager continued. “These trucks are finished. We keep repairing them, towing them, waiting on them. We should scrap all three and buy one reliable truck instead. A larger one that would carry more, break down less, and save us from all this chaos.”</p>

<p>The shopkeeper thought for a moment and asked a few questions quietly.</p>

<p>“How long are deliveries usually delayed?” The manager replied: “Two days, maybe three.” The shop keeper took a piece of paper and started scribbling down something. He continued: “And how often do they break down?” The manager replied with a sigh: “At least once a month.”</p>

<h1 id="the-shopkeepers-solution">The Shopkeeper’s Solution</h1>

<p>The shopkeeper noted it all down carefully and sank into some calculations. Finally, he looked up and said: “Then we don’t really have a truck problem. We have an inventory problem.”</p>

<p>The manager frowned. The shopkeeper turned the paper toward him.</p>

<p>“If delays are usually two or three days, then all we need is enough extra inventory to absorb the delays. Expand the warehouse. Store another week of supply. Customers won’t notice when a truck breaks down.”</p>

<p>The conversation ended there.</p>

<p>A few months later, new storage racks were installed. An unused underground room was cleared out and converted into additional storage space. The warehouse could now hold more inventory than before.</p>

<p>And in a strange way, the solution worked. The trucks still broke down. Drivers still called from highways. Mechanics still promised temporary fixes. But the shelves in the store remained stocked. Customers rarely noticed anything. From the outside, the business looked healthier than ever.</p>

<h1 id="time-to-upgrade">Time to Upgrade</h1>

<p>Time passed. The failures were no longer emergencies. They had simply become expected. A year later, the shopkeeper called the manager into the yard behind the warehouse. He was thrilled to announce: “I’ve been thinking about upgrading our aging fleet.”</p>

<p>Parked near the loading dock was another truck: a red one. It looked worse than the others. The paint was faded. One headlight was cracked. The engine coughed unevenly even while idling. Someone had spray-painted over the logo from its previous owner.</p>

<p>“I got a great deal on it,” the shopkeeper said proudly. “With four trucks, we’ll have even more flexibility.”</p>

<p>The manager stood there silently, listening to the engine struggle to stay alive. He wasn’t sure whether they now had more redundancy or simply more things waiting to fail.</p>]]></content><author><name>G Roshan Lal</name></author><category term="short_story" /><summary type="html"><![CDATA[The Grocery Store]]></summary></entry><entry><title type="html">Debt and the Hidden Imbalance of Risk</title><link href="https://groshanlal.github.io/social/2026/03/24/debt.html" rel="alternate" type="text/html" title="Debt and the Hidden Imbalance of Risk" /><published>2026-03-24T00:00:00+00:00</published><updated>2026-03-24T00:00:00+00:00</updated><id>https://groshanlal.github.io/social/2026/03/24/debt</id><content type="html" xml:base="https://groshanlal.github.io/social/2026/03/24/debt.html"><![CDATA[<p>A hallmark of modern economies is a mature financial system. At its core lies a simple idea: debt, the ability to borrow money now and repay later. Debt helps people bridge the time-gap between income and spending, acquire assets, invest in business opportunities, and build wealth over time.</p>

<p>But debt also comes with risk. What happens when the borrower is unable to repay the debt? In most cases, the lender has a claim on the borrower’s assets and can recover the money by taking something of value. Real life is unpredictable. Economic downturns, job losses, and unforeseen health events can disrupt income at any time. But the monthly payments on a loan is fixed, even when income is not.</p>

<p>This raises a deeper question: Does debt place too much risk on the borrower? Does it protect the lender from uncertainty while exposing the borrower to it? And over time, does this imbalance make it easier for the rich to grow richer?</p>

<p>This article follows the story of debt across time. From its earliest use in ancient societies, to periods when interest was condemned or banned, to its eventual acceptance in modern finance. Along the way, it explores alternative systems built on risk-sharing instead of interest, and ends with a simple question: can the future of finance be more balanced than its past?</p>

<h1 id="origin-of-debt">Origin of Debt</h1>

<p>Debt is as old as civilization itself. Some of the earliest written records, clay tablets from ancient Mesopotamia, document loans and interest payments. Debt, and the idea of charging interest for it, has existed for millennia.</p>

<p>In agrarian economies, credit was essential. Farmers needed goods throughout the year but earned income only at harvest. To bridge this gap, they often traded for goods with others using a promissory “I owe you” agreement that they settled later at harvest time. The pattern persists today: salaries get paid on a monthly basis, but spending is continuous, and the gap is smoothed using tools like credit cards.</p>

<h1 id="early-prohibitions-on-interest">Early Prohibitions on Interest</h1>

<p>Borrowing, however, has always carried risk. A missed credit card payment today can quickly spiral into high-interest debt and create significant financial strain. In earlier times, the consequences were even more severe. A failed harvest could lead to default on a loan, which in turn could mean losing land or falling into debt bondage.</p>

<p>This reveals a fundamental asymmetry. Lenders typically received relatively predictable returns, while borrowers bore most of the uncertainty. As a result, many societies came to view interest with suspicion.</p>

<p>This moral concern shaped religious and legal traditions. Medieval Christianity condemned the practice of lending money for interest, though its enforcement and interpretation of what counts as “interest” changed over time. Islamic finance took a stricter approach, prohibiting interest altogether and encouraging alternative risk-sharing structures instead.</p>

<h1 id="medieval-banks">Medieval Banks</h1>
<p>Despite these prohibitions, economic needs were real, and credit remained essential for trade. In medieval Europe, merchants wanted to buy and sell goods across long distances. But there was a practical problem: money was not uniform. Different cities and regions used different currencies, each with its own value and exchange rates.</p>

<p>Early banks emerged to solve this first problem. They acted as money changers, helping merchants convert one currency into another so trade could happen across regions. Over time, these money changers became more sophisticated. They opened branches in multiple cities and introduced a powerful new instrument called a bill of exchange.</p>

<p>Here is how it worked step by step:</p>

<p>A merchant from Florence could go to London and buy cotton using a piece of paper called “Bill of Exchange” that promised the receiver that the merchant would pay a fixed amount at a later time. The receiver of this bill could take it to the bank in London and encash it to get their payment in London currency.</p>

<p>When the merchant came back to Florence, the merchant would sell the cotton and make money in Florence currency. The merchant would then go to the bank in Florence to repay for the “Bill of Exchange” using the Florence currency. The bank would settle within its network.</p>

<p>So where was the credit or “loan” in this system? The bank in London had effectively extended credit
to the merchant in London currency. The merchant later repaid for this loan in Florence currency. In this way, the bill of exchange combined three things in one system: currency conversion, cross-city settlement, and short-term credit. The merchant avoided carrying money across regions, and the bank earned a fee for managing risk, trust, and timing differences. The fees were often embedded in the currency conversion rates used to settle the bill of exchange.</p>

<h1 id="acceptance-of-interest">Acceptance of Interest</h1>

<p>We note that interest was never truly eliminated, it was transformed. Compensation for lending appeared as exchange rates, discounts, or service charges. This happens because interest on loans is not entirely unjust. Money lenders always suffer from the risk of default from the borrower. They also have a lost opportunity-cost of making profits from their own other businesses, if any. Besides, these risks, there is also inflation or the time-value of money. Future payments are often less valuable and more uncertain than present ones. For these reasons, the money lenders are not risk-free. Interest, in this light, can be understood as compensation for time, risk, and uncertainty.</p>

<p>Though money lenders do not participate in the underlying business of the borrowers, the act of lending does carry some risk. The risk to money lenders might be far less than the risks born by the borrowers, but it is still some non-zero risk. These ideas helped justify why charging some interest is not entirely immoral.</p>

<p>Over time, demand for credit kept growing. Governments had to borrow money to fund wars, and infrastructure projects. Often these wars were motivated by religious reasons. Trade networks were also ever expanding and required more credit. Without interest, there was little to no incentive for people to lend money. All these factors put pressure on the financial systems to gradually normalize the use of interest.</p>

<h1 id="islamic-banks">Islamic Banks</h1>
<p>While Europe gradually accepted interest, alternative approaches developed elsewhere. In the Islamic world, financial practices emphasized risk-sharing rather than fixed returns. Instead of lending at interest, capital providers would enter into partnerships with entrepreneurs, sharing profits and losses according to pre-agreed terms. In some arrangements, both parties contributed capital. In other arrangements, one provided capital while the other provided the expertise and labor to run the business.</p>

<p>These principles also extended to asset financing. In the housing context, for example, a bank might co-own a property with a buyer and charge rent on its share. Over time, the buyer gradually purchases the bank’s ownership stake. While the resulting payments can resemble those of a traditional mortgage, the risk to the occupant differs significantly.</p>

<p>For any unfortunate reason, if the occupant defaults on the payments, the underlying asset, the house is sold off. If the property’s value declines in the mean time, the sale of the property cannot cover the full principal amount. In this case, at least in theory, the losses are shared in proportion to ownership. However, in a traditional mortgage, this would fall primarily on the borrower.</p>

<p>Such risk-sharing arrangements were often more costly to the borrower than traditional interest-bearing loans becuase profit-sharing or rent-sharing could mean bigger payouts to the bank. But, this cost came with a benefit: less risk on the shoulders of the one who needs funds.</p>

<h1 id="modern-finance">Modern Finance</h1>

<p>Modern finance incorporates both fixed-return and risk-sharing models. Debt provides predictable returns to lenders, while equity allows investors to share in both the risks and rewards of an enterprise. Early joint-stock companies, such as the Dutch East India Company, enabled investors to pool capital and trade ownership shares, laying the foundation for modern stock markets.</p>

<p>Today’s financial systems have made debt more transparent and widely accessible. Gone are the days when interest was masked into other services. In modern times, central banks measure inflation on a regular basis and set interest rates accordingly. All financial institutions accordingly adjust their rates and compete with each other to provide the lowest interest rates possible to attract customers. While lenders do not directly participate in the underlying activities financed by loans, their returns, in terms of interest, are often justified by the risks they carry.</p>

<p>At the same time, risk-sharing models are common in another domain: in funding new and innovative business ventures. Venture capital firms and angel investors fund high-risk, high-reward ventures, aligning investor returns with business outcomes. In these domains, uncertainty is high and outcomes can vary widely, with many ventures likely to fail rather than succeed. Venture Capital firms spread their risks hoping that one successful venture will recoup far more than all their loses.</p>

<h1 id="looking-ahead">Looking Ahead</h1>

<p>However, for everyday financial needs such as homeownership or traditional small businesses, risk-sharing remains limited. These activities rely heavily on debt, placing more downside risk on individuals. Expanding risk-sharing into these areas could create a more balanced system, even if it comes at a slightly higher cost.</p>

<p>Credit is essential in any advanced economy. Payments in the future for goods or services offered today typically come with a premium. The real question is not whether this premium should exist, but how it should be earned. Systems tend to feel more fair when this premium is low, transparent, and aligned with the success of the underlying activity.</p>

<p>Modern systems have made significant progress on transparency, and keeping interest rates low. But risk-sharing is still largely absent from the financial lives of most people. What we need next is not cheaper credit or stronger borrower protections, but more options for risk-sharing arrangements.</p>]]></content><author><name>G Roshan Lal</name></author><category term="social" /><summary type="html"><![CDATA[A hallmark of modern economies is a mature financial system. At its core lies a simple idea: debt, the ability to borrow money now and repay later. Debt helps people bridge the time-gap between income and spending, acquire assets, invest in business opportunities, and build wealth over time.]]></summary></entry><entry><title type="html">The Red Bulb Story: An Innovation in Disguise</title><link href="https://groshanlal.github.io/short_story/2026/03/20/red-bulb.html" rel="alternate" type="text/html" title="The Red Bulb Story: An Innovation in Disguise" /><published>2026-03-20T00:00:00+00:00</published><updated>2026-03-20T00:00:00+00:00</updated><id>https://groshanlal.github.io/short_story/2026/03/20/red-bulb</id><content type="html" xml:base="https://groshanlal.github.io/short_story/2026/03/20/red-bulb.html"><![CDATA[<h1 id="preface">Preface</h1>

<p>This is a fictional story on how innovations happen at a fictional company called “The Bulb Company”. Any resemblence to any company alive or dead is purely coincidental.</p>

<h1 id="chapter-1-the-bright-idea">Chapter 1: The Bright Idea</h1>

<p>“The Bulb Company” is an industry leader in producing bulbs. Currently, the world has seen only white-colored bulbs. Most of these white bulbs are made by “The Bulb Company”.</p>

<p>One fine day, the CEO of the Bulb Company comes up with an idea: “Why don’t we produce colored bulbs? In particular why don’t we produce red colored bulbs?”</p>

<p>After a lively boardroom discussion involving charts, optimism, and at least one person saying “This could be big!”, the CEO calls a press conference:</p>

<p>“The Bulb Company has always led the world in lighting innovation. In just three months, we will launch a revolutionary new product: The Red Bulb.”</p>

<p>The press applaudes. But inside the company, the engineers are still wondering how on earth do they make red bulbs.</p>

<h1 id="chapter-2-red-filament">Chapter 2: Red Filament</h1>

<p>The CEO gathers the senior engineers and asks them to come up with a plan to “Make one million red bulbs in three months.”</p>

<p>The senior engineers nod, then gently point out a small detail: Bulbs are basically a filament housed in a glass box. Bulbs glow white because of their filament. To make them glow red, they would need … a filament that glows red.</p>

<p>The CEO smiles and replies “Perfect. Go find the red filament!”. And so begins the great search for the Red Filament.</p>

<p>For a month, senior engineers test materials day and night. They try everything that they can get their hands on. But, nothing seems to work. One colleague finds a remote research laboratory that seems to have been working on something similar. They had just announced their magic material that can glow red under some “controlled environment”. They try the magic material from the research lab. It glows bright red for 3 seconds and then turns into smoke.</p>

<p>Eventually, the team reconvenes and reluctantly accepts the bitter truth: they don’t have the red filament.</p>

<h1 id="chapter-3-thinking-out-of-the-box">Chapter 3: Thinking Out of the Box</h1>

<p>Undeterred, the CEO brainstorms with the team. One senior engineer suggests: “If the filament won’t cooperate, then why don’t we try something with the the glass box around the filament?”</p>

<p>They explore the idea of glass that turns red when heated or electrified, like molten glass, but something that is still stable enough to call it a bulb.</p>

<p>The idea inspires a new wave of experiments. After another month, the verdict is in: the glass has many great qualities, but changing colors isn’t one of them.</p>

<h1 id="chapter-4-back-to-the-basics">Chapter 4: Back to the Basics</h1>

<p>The team gathers again. There is only one month left. Everybody is looking for a miracle to turn the situation around. One senior engineer puts his hand up and says:</p>

<p>“What if … we just paint the bulb red?”</p>

<p>A silence falls. Then, slowly, heads nod. The CEO considers it. “Excellent idea!” he says. “But we can’t just say we painted it. That would be … too straightforward”. After a moment of strategic reflection, he continues:</p>

<p>“What if we create a sleek device: a sort of mini-torch where the bulb is hidden inside a stylish black box? The light comes out red. The bulb remains … confidential.”</p>

<p>The idea gathers momentum, and soon the room is filled with sketches, refinements, and approving nods. By the end of the discussion, everyone agrees that this just might work. The design is promptly patented, ensuring that even if someone else stumbles upon the same delightfully practical idea, they can only admire it from a respectful distance.</p>

<h1 id="chapter-5-the-artisinal-dip">Chapter 5: The Artisinal Dip</h1>

<p>The senior engineer takes the approved design to his team of junior engineers:</p>

<p>“We have got fresh work. We are on a high-impact project targetting release in the next month. We are going to be producing a million red bulbs”.</p>

<p>He then reveals: a large sack of bulbs and several tins of red paint. He continues:</p>

<p>“Each one of you pick a handful of bulbs from this sack and paint it red.”</p>

<p>The junior engineers are confused. They look around. They are five of them in the room with a sack of million bulbs in front of them. They do some quick math involving hands, hours, and reality. They conclude that even if all five of them use both their hands and legs to paint, this plan still looks very ambitious to pull off in a month.</p>

<p>After discussion, one junior engineer proposes:</p>

<p>“What if we dip all the bulbs into a giant paint tub?”</p>

<p>The team is thrilled and cries “Efficiency! Productivity!”. But the senior engineer does not seem to share the same excitement. He notes: “But the coating of paint might not be perfectly uniform.”</p>

<p>There is a moment of silence, again. Another junior engineer offers a more refined strategy:</p>

<p>“Let’s segment our customers into two tiers. Premium customers who are loyal to our brand or shop in our premium outlets, or make frequent purchases in general are in the first tier. These are a small number of customers and would get the hand-painted bulbs. This tier interestingly also covers the executives.”</p>

<p>Everybody listen curiously. He continues:</p>

<p>“The second tier includes all other customers. The customers in second tier would get bulbs dunked in the paint tub and dried, possibly unevely or let’s call it the artisinal dip finish.”</p>

<p>The senior engineer thinks for a moment. He discusses it with his superiors. The plan is elegant. It gets approved. Production begins. In two weeks, the red bulb torches get ready to hit the shelves.</p>

<h1 id="chapter-6-its-a-success-or-is-it">Chapter 6: It’s a success or is it?</h1>

<p>The bulbs hit the market. They sell out within a week. Homes glow with a warm red hue. Customers are delighted. Sales break records. The company celebrates.</p>

<p>Months pass. The paint on the bulbs slowly start pealing away as they are exposed to heat. But, the CEO addresses the issue with confidence in the company’s quarterly earnings call:</p>

<p>“The Red Bulb version-1 was a tremendous success. We are now launching version-2 to fix some of those longevity issues that our customers have been facing in version-1.”</p>

<p>Powered by the record sales, the company goes on a hiring rampage. New divisions are created. One division creating brighter red paints, another division for creating additives to make the paint last longer in the heat, another division to explore quick drying methods, and yet another division to create tools to spray paint the bulbs. The company is on its way to fix everybody’s concerns from customers who complain the paint is peeling off to employees who complain that they cannot paint any more bulbs by hand. The company’s future looks bright.</p>

<h1 id="chapter-7-the-innovation">Chapter 7: The Innovation</h1>

<p>In a distant lab, a group of researchers continues working on the original idea: a filament that actually glows red. Remember those filaments that burnt in 3 seconds? Those were from this research lab.</p>

<p>The researchers quietly watch the launch of the red bulbs from “The Bulb Company”. Soon, the red bulbs become popular. The researches face the heat. Their prototypes improve from seconds to nearly a minute. But despite an order of magnitude improvement, people ask:</p>

<p>“Why reinvent the wheel? We already have the red bulbs. We don’t need this expensive filament.”</p>

<p>Their funding goes dry. For a while, the researchers shift their focus from coming up with a new filament to “creative grant writing”. Every buzz word is used on the way: AI, quantum, red photonics, and even climate change. Allegedly, the red paints contribute to indoor pollution. Some researchers add a twist with a medical application that requires a specific wave length of red light. With some gymanstics on the paper, the lab secures funding. The researchers continue to work on their core mission: the red filament.</p>

<p>Ten years pass. They finally succeed in creating a stable, glowing red filament that can last years.</p>

<h1 id="chapter-8-a-new-era">Chapter 8: A New Era</h1>

<p>The breakthrough makes headlines. The Bulb Company is quick to notice. In a sweeping restructuring, The Bulb Company fires all its employees in the paints division. New manufacturing lines are introduced to mass produce the red filament. The Bulb Company starts selling red filament bulbs. The new bulbs are brighter, longer lasting, and require no paint-related debates. On the flip side, there are now fewer employees around to argue about anything at all.</p>

<p>For customers, however, it is a new colorful era. With one bright idea at a time, the innovations continue.</p>]]></content><author><name>G Roshan Lal</name></author><category term="short_story" /><summary type="html"><![CDATA[Preface]]></summary></entry><entry><title type="html">Rediscovering Galois Theory: Part-1</title><link href="https://groshanlal.github.io/mathematics/2026/01/14/galois-1.html" rel="alternate" type="text/html" title="Rediscovering Galois Theory: Part-1" /><published>2026-01-14T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://groshanlal.github.io/mathematics/2026/01/14/galois-1</id><content type="html" xml:base="https://groshanlal.github.io/mathematics/2026/01/14/galois-1.html"><![CDATA[<h1 id="table-of-contents">Table of Contents</h1>
<p>This is Part 1 out of the 8 part series on Galois Theory.</p>

<p>To navigate to any other part, click on the corresponding link below.</p>
<ul>
  <li><a href="galois-1.html">Part 1: Prerequisites</a></li>
  <li><a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></li>
  <li><a href="galois-3.html">Part 3: Lagrange Resolvent</a></li>
  <li><a href="galois-4.html">Part 4: Fields</a></li>
  <li><a href="galois-5.html">Part 5: Root Permutations</a></li>
  <li><a href="galois-6.html">Part 6: Groups</a></li>
  <li><a href="galois-7.html">Part 7: Factorization of the Resolvent Polynomial</a></li>
  <li><a href="galois-8.html">Part 8: Solvability</a></li>
</ul>

<h1 id="part-1-prerequisites">Part 1: Prerequisites</h1>

<h2 id="introduction">Introduction</h2>

<p>This writeup presents Galois Theory, the way it started. By Galois’s time, we knew how to solve polynomials of degree $2, 3$, and $4$. However, all attempts to solve degree $5$ polynomials failed. Galois and his contemporaries were working on why polynomials of degree 5 was hard to solve. Galois came up with a criterion which describes when can a polynomial be solved in terms of basic algebraic operations (like addition, subtraction, multiplication, division) and root operations (like square roots, cube roots, etc.). With this theory, Galois was able to establish that polynomials of degree 5 and above cannot be solved with basic algebraic operations and roots.</p>

<p>Galois submitted his memoir containing his theory for peer review. However, Galois died an untimely death soon after this. His theory was slow to be accepted and understood by the mathematical community. In the years that followed, many mathematicians cleaned up his theory and made it more accessible. These efforts led to the modern version of Galois Theory, which is far more abstract than Galois’s original writing. The modern theory has its advantages, but the way it is presented is disconnected from the orginal problem of solving polynomials.</p>

<p>This writeup tries to rediscover Galois Theory from first principles, following the trail of thoughts of the predescessors of Galois who developed methods to solve various polynomials. It then follows Galois’ attempt at extending these methods to come up with his theory of polynomial solvability. This writeup is based on my notes from reading Harold Edwards’ book on Galois Theory, which tries to explain Galois’ original work. It does not assume any prior experience in Algebra beyond what is typically covered at high school level.</p>

<h2 id="polynomial">Polynomial</h2>

<p>Consider a polynomial with coefficients $(a_0, a_1, \ldots, a_{n-1}, a_n)$ that has roots $(r_1, r_2, \ldots r_{n-1}, r_n)$:</p>

\[\begin{align*}
f(x) &amp;= a_nx^n + a_{n-1}x^{n-1} + \ldots + a_1x + a_0\\
     &amp;= a_n (x - r_1) (x-r_2)\ldots(x-r_{n-1})(x-r_n)
\end{align*}\]

<p>Let us assume that the coefficients are all rational numbers. We call the coefficients the “known” values. We would like to find the roots of the polynomial, in terms of the known values.</p>

<p>By multiplying out the product of the $(x-r_i)\text{s}$, we can get a relation between the roots of the polynomial and its coefficients:</p>

\[\begin{align*}
r_1  + r_2 + r_3 \ldots + r_{n-1} + r_n &amp;= -\frac{a_{n-1}}{a_n}\\
r_1r_2  + r_1r_3 + \ldots + r_{n-1}r_n &amp;= \frac{a_{n-2}}{a_n}\\
\vdots\\
r_1r_2 \ldots r_{n-1}r_n &amp;= \frac{a_{0}}{a_n}
\end{align*}\]

<p>We observe that the $n$ elementary symmetric polynomial expressions in roots are all known in terms of the coefficients. This is called the <strong>Vieta’s Formula</strong>. Due to a theorem by <strong>Newton</strong>, we can express any symmetric polynomial in $n$ variables using the $n$ elementary symmetric polynomial in $n$ variables. Using this theorem, we can say that any symmetric polynomial in the roots of $f(x)$ can be evaluated by known values.</p>

<p>We do not prove Newton’s Theorem here. In the next section, we provide a rough sketch of proof.</p>

<h2 id="newtons-theorem-on-symmetric-polynomials">Newton’s Theorem on Symmetric Polynomials</h2>

<p>The proof uses induction on the number of variables. We use an example polynomial:</p>

\[p(a,b,c) = a^2 + b^2 + c^2\]

<p>This polynomial has $3$ variables. If we were to ignore the third variable, we get $a^2 + b^2$. Suppose, we know how to express any symmetric polynomial in two variables in terms of the elementary symmetric polynomials in two variables:</p>

\[\begin{align*}
t_1 &amp;= a + b\\
t_2 &amp;= ab
\end{align*}\]

<p>Using these, we can express $a^2 + b^2$ in terms of $(t_1, t_2)$:</p>

\[\begin{align*}
p(a,b,c) &amp;= c^2 + (a^2 + b^2)\\
         &amp;= c^2 + (t_1^2 -2t_2)
\end{align*}\]

<p>We know that the elementary symmetric polynomials in 3 variables are:</p>

\[\begin{align*}
e_1 &amp;= a+b+c &amp;&amp;= t_1 + c\\
e_2 &amp;= ab+bc+ca &amp;&amp;= t_2 + ct_1\\
e_3 &amp;= abc &amp;&amp;= ct_2
\end{align*}\]

<p>These can also be written as:</p>

\[\begin{align*}
t_1 &amp;= e_1 - c\\
t_2 &amp;= e_2 - ct_1 = e_2 - ce_1 + c^2
\end{align*}\]

<p>and</p>

\[0 = e_3 - ct_2 = e_3 -ce_2 + c^2e_1 - c^3\]

<p>The first two equations help us express $t_1, t_2$ in terms of $e_1,e_2,e_3$ and $c$. The third equation is the familiar equation of the polynomial with roots $(a,b,c)$. We can use these equations in $p(a,b,c) = c^2 + (a^2 + b^2) = c^2 + (t_1^2 -2t_2)$ to eliminate $t_1, t_2$ and get a polynomial in $c$ whose coefficients are in terms of $(e_1, e_2, e_3)$. Using the third equation, the degree of $c$ in the resulting polynomial can be reduced to $2$.</p>

<p>Since $p(a,b,c)$ is known to be a symmetric polynomial in $a,b,c$, the
variable $c$ can be replaced with any one of $a, b$, or $c$. Thus, the
polynomial expression is a degree $2$ equation with $3$ roots. Hence, it
is a constant polynomial, without any terms with powers of $c$. What remains is an expression independent of $c$, only containing $e_1, e_2, e_3$.</p>

<h2 id="symmetric-polynomial-of-roots">Symmetric Polynomial of Roots</h2>

<p>Here is a summary of what we know:</p>

<ol>
  <li>
    <p>Given a polynomial $f(x)$, the elementary symmetric polynomial in roots are known values.</p>
  </li>
  <li>
    <p>Any symmetric polynomial in roots can be expressed in terms of known values.</p>
  </li>
</ol>

<p><strong>Continue Reading: <a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></strong></p>]]></content><author><name>G Roshan Lal</name></author><category term="mathematics" /><summary type="html"><![CDATA[Table of Contents This is Part 1 out of the 8 part series on Galois Theory.]]></summary></entry><entry><title type="html">Rediscovering Galois Theory: Part-2</title><link href="https://groshanlal.github.io/mathematics/2026/01/14/galois-2.html" rel="alternate" type="text/html" title="Rediscovering Galois Theory: Part-2" /><published>2026-01-14T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://groshanlal.github.io/mathematics/2026/01/14/galois-2</id><content type="html" xml:base="https://groshanlal.github.io/mathematics/2026/01/14/galois-2.html"><![CDATA[<h1 id="table-of-contents">Table of Contents</h1>
<p>This is Part 2 out of the 8 part series on Galois Theory.</p>

<p>To navigate to any other part, click on the corresponding link below.</p>
<ul>
  <li><a href="galois-1.html">Part 1: Prerequisites</a></li>
  <li><a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></li>
  <li><a href="galois-3.html">Part 3: Lagrange Resolvent</a></li>
  <li><a href="galois-4.html">Part 4: Fields</a></li>
  <li><a href="galois-5.html">Part 5: Root Permutations</a></li>
  <li><a href="galois-6.html">Part 6: Groups</a></li>
  <li><a href="galois-7.html">Part 7: Factorization of the Resolvent Polynomial</a></li>
  <li><a href="galois-8.html">Part 8: Solvability</a></li>
</ul>

<h1 id="part-2-solving-polynomials-upto-degree-4">Part 2: Solving Polynomials upto degree 4</h1>

<h2 id="quadratic-polynomial">Quadratic Polynomial</h2>

<p>Consider the polynomial $f(x) = x^2 + ax + b$. It can be solved by
completing the square:</p>

\[f(x) = x^2 + ax + b  = \big ( x+\frac{a}{2} \big )^2 - \frac{a^2}{4} + b=0\]

<p>Substituting, $u = x+a/2$, the polynomial becomes</p>

\[u^2 - \big ( \frac{a^2-4b}{4} \big ) = 0\]

<p>This can be solved using a square root.</p>

<p><strong>What this means</strong>: Instead of solving for a polynomial whose roots are
$r_1, r_2$, it is easier to first solve a polynomial whose roots are
$r_1 + a/2 = (r_1 - r_2)/2$ and $r_2  + a/2 = (r_2 - r_1)/2$. The
coefficients of such a polynomial can always be found using known values
(the coefficients of the original polynomial) and the polynomial is
solvable using a square root alone.</p>

<h2 id="cubic-polynomial-cardanos-method">Cubic Polynomial: Cardano’s Method</h2>

<p>Consider the polynomial</p>

\[f(x) = x^3 + ax^2 + bx + c\]

<p>Substituting, $y = x+a/3$ completes the cube, removing the second degree term. This turns the polynomial into the depressed form:</p>

\[y^3 + py + q=0\]

<p>Substitute $y = u+v$. This turns the polynomial into:</p>

\[u^3 +v^3 + (3uv+p)(u+v) + q=0\]

<p>Let $uv=-p/3$. This turns the polynomial into:</p>

\[\begin{align*}
u^3 + v^3 &amp;= -q\\
uv &amp;= -p/3
\end{align*}\]

<p>We know the sum and product of $u^3$ and $v^3$. This can be solved using a quadratic equation. This
gives two solutions, one corresponding to $(u^3, v^3)$ and the other
corresponding to $(v^3, u^3)$. We can choose one of these without loss
of generality.</p>

<p>Once we know $u^3$, we can get the three cube roots of $u^3$:
$u, u\omega, u\omega^2$ where $\omega$ is the primitive cube root of
unity. From $uv=-p/3$, we can get the corresponding value of $v$ for
each case: $(u,v)$, $(u\omega, v\omega^2)$, $(u\omega^2, v\omega)$. This
gives $3$ roots of the depressed cubic: $y=u + v$,
$u\omega +  v\omega^2$, $u\omega^2 +  v\omega$.</p>

<p><strong>What this means</strong>: Instead of solving for the cubic with roots $r_1$,
$r_2$, $r_3$, we can instead solve the depressed cubic with roots
$r_1+a/3$, $r_2+a/3$, $r_3+a/3$ with $a = -(r_1+r_2+r_3)$. Further,
instead of solving for this depressed cubic, we can instead solve for a
quadratic whose roots are $u, v$ which satisfy:</p>

\[\begin{align*}
r_1+a/3 &amp;= u + v\\
r_2+a/3 &amp;= u\omega +  v\omega^2\\
r_3+a/3 &amp;= u\omega^2 +  v\omega
\end{align*}\]

<p>which can also be expressed as:</p>

\[3u = r_1 + r_2\omega^2 + r_3\omega\]

\[3v = r_1 + r_2\omega + r_3\omega^2\]

<p>Hence, it is always possible to create a quadratic with roots
$r_1 + r_2\omega^2 + r_3\omega$ and $r_1 + r_2\omega + r_3\omega^2$
whose coefficients are known values (can be expressed in terms of the
coefficients of the original polynomial). Solving this, we can obtain
the individual roots from the system of equations for $u, v$ and
$r_1+r_2+r_3 = -a$.</p>

<h2 id="quartic-polynomial-ferraris-method">Quartic Polynomial: Ferrari’s Method</h2>

<p>Consider the polynomial</p>

\[f(x) = x^4 + ax^3 + bx^2 + cx + d\]

<p>Substituting, $y = x+a/4$ removes the third degree term. This turns the
polynomial into the depressed form:</p>

\[y^4 + py^2 + qy + r=0\]

<p>We can rewrite this as:</p>

\[y^4 = -py^2 - qy - r\]

<p>Adding $m^2 + 2my^2$ on both sides, we can try
making both sides perfect squares:</p>

\[(y^2 + m)^2= (2m-p)y^2 - qy + (m^2- r)\]

<p>The left side is a perfect
square. The right side is a quadratic in $y$. For the right side to be a
perfect square, we need the discriminant to be zero:</p>

\[q^2 = 4(2m-p)(m^2- r)\]

<p>This is a cubic in $m$ that can be solved.
Using any one of these $m$’s, we can write the equation as equality of
$2$ squares:</p>

\[(y^2 + m)^2= (\sqrt{2m-p}y - \frac{q}{2\sqrt{2m-p}})^2\]

<p>This breaks down into two possible quadratics in $y$ that can be solved.</p>

\[(y^2 + m)= \pm (\sqrt{2m-p}y - \frac{q}{2\sqrt{2m-p}})\]

<p>The quadratics are:</p>

\[y^2  + \sqrt{2m-p}y + m-\frac{q}{2\sqrt{2m-p}} = 0\]

\[y^2 -\sqrt{2m-p}y + m + \frac{q}{2\sqrt{2m-p}} = 0\]

<p>Solving these quadratics, we can solve the quartic.</p>

<p><strong>What this means</strong>: Instead of solving for the quartic with roots
$r_1$, $r_2$, $r_3$, $r_4$ we can instead solve the depressed quartic
with roots $t_1 = r_1+a/4$, $t_2=r_2+a/4$, $t_3=r_3+a/4$, $t_4=r_4+a/4$
with $a = -(r_1+r_2+r_3+r_4)$. Further, instead of solving for this
depressed quartic, we can instead solve a cubic in $m$ that satisfies:</p>

\[t_1 + t_2 = -\sqrt{2m-p}\]

\[t_3 + t_4 = +\sqrt{2m-p}\]

<p>Multiplying
these we get:</p>

\[t_1t_3 + t_1t_4 + t_2t_3 + t_2t_4 = p-2m\]

<p>Since
$p = \sum t_it_j$, this simplifies to:</p>

\[2m = t_1t_2 + t_3t_4\]

<p>Writing
this in form of $r_i\text{s}$:</p>

\[2m = r_1r_2 + r_3r_4 - a^2/8\]

<p>Hence, it is equivalent to say that instead of solving the depressed
quartic, we can solve a cubic whose roots are $r_1r_2 + r_3r_4$,
$r_1r_3 + r_2r_4$, $r_1r_4 + r_2r_3$.</p>

<p>If we know $r_1r_2 + r_3r_4$, we can find $(r_1r_2, r_3r_4)$ by solving
a quadratic, since we know both the sum and product
($r_1r_2r_3r_4 = d$). Also, if we know $r_1r_2 + r_3r_4$, we can also
find $(r_1+r_2)(r_3 + r_4)  = b - (r_1r_2 + r_3r_4)$. Once again, by the
same logic, we can find $(r_1+r_2, r_3 + r_4)$ by solving a quadratic,
since we know the sum ($r_1+r_2 + r_3 + r_4 = -a$) and product.</p>

<p>We know $(r_1+r_2, r_3 + r_4)$ and $(r_1r_2, r_3r_4)$. From these we can
solve for $(r_1, r_2, r_3, r_4)$ using quadratics. However, to do this,
we need to know which sum corresponds to which product. Both of these
are unordered pairs of numbers. For $r_1+r_2$, we need to know which of
the two numbers $(r_1r_2, r_3r_4)$ is actually $r_1r_2$. We can do this
by constructing the two possible values for:</p>

\[\frac{r_1 + r_2}{r_1r_2} + \frac{r_3 + r_4}{r_3r_4} = \frac{1}{r_1} + \frac{1}{r_2} + \frac{1}{r_3} + \frac{1}{r_4}\]

<p>Since the right side is symmetric in $r_1$, $r_2$, $r_3$, $r_4$, this is
a known quantity. Only one of the two possible values that we can come
up by matching $(r_1+r_2, r_3 + r_4)$ with $(r_1r_2, r_3r_4)$ is the
correct value. This can help us identify the correct way to match the
sums and products, which can then help us solve for the roots using
quadratics.</p>

<h2 id="resolvent-polynomial">Resolvent Polynomial</h2>

<p>Here is a summary of the above methods:</p>

<ol>
  <li>
    <p><strong>Quadratic</strong>: We first solve a polynomial with roots
$t = r_1 - r_2$ under all possible permutations of $r_1$, $r_2$.
This polynomial can be expressed in terms of known quantities and is
a quadratic that lacks the linear term. It can be solved using only
a square root.</p>
  </li>
  <li>
    <p><strong>Cubic</strong>: We first solve a polynomial with roots
$t =r_1 + \omega r_2 + \omega^2 r_3$ under all possible permutations
of $r_1$, $r_2$, $r_3$. This polynomial can be expressed in terms of
known quantities and is a quadratic polynomial that we already know
how to solve. Once we know the two possible values of $t$, we can
solve for the roots $r_i$ using a system of linear equations.</p>
  </li>
  <li>
    <p><strong>Quartic</strong>: We first solve a polynomial with roots
$t =r_1r_2 + r_3r_4$ under all possible permutations of $r_1$,
$r_2$, $r_3$, $r_4$. This polynomial can be expressed in terms of
known quantities and is a cubic polynomial that we already know how
to solve. Once we know the three possible values of
$r_1r_2 + r_3r_4$, we can find the values $r_1r_2$ and $r_1 + r_2$
by solving two quadratics. Further, we can solve for the individual
roots $r_1$, $r_2$ using a quadratic. We can do this similarly for
the other root pairs.</p>
  </li>
</ol>

<p>In all these approaches, the first step has been to identify another
polynomial that is both easier to solve and can help with finding the
roots of the original polynomial. We call this polynomial the
<strong>“Resolvent Polynomial"</strong>.</p>

<p><strong>Continue Reading: <a href="galois-3.html">Part 3: Lagrange Resolvent</a></strong></p>]]></content><author><name>G Roshan Lal</name></author><category term="mathematics" /><summary type="html"><![CDATA[Table of Contents This is Part 2 out of the 8 part series on Galois Theory.]]></summary></entry><entry><title type="html">Rediscovering Galois Theory: Part-3</title><link href="https://groshanlal.github.io/mathematics/2026/01/14/galois-3.html" rel="alternate" type="text/html" title="Rediscovering Galois Theory: Part-3" /><published>2026-01-14T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://groshanlal.github.io/mathematics/2026/01/14/galois-3</id><content type="html" xml:base="https://groshanlal.github.io/mathematics/2026/01/14/galois-3.html"><![CDATA[<h1 id="table-of-contents">Table of Contents</h1>
<p>This is Part 3 out of the 8 part series on Galois Theory.</p>

<p>To navigate to any other part, click on the corresponding link below.</p>
<ul>
  <li><a href="galois-1.html">Part 1: Prerequisites</a></li>
  <li><a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></li>
  <li><a href="galois-3.html">Part 3: Lagrange Resolvent</a></li>
  <li><a href="galois-4.html">Part 4: Fields</a></li>
  <li><a href="galois-5.html">Part 5: Root Permutations</a></li>
  <li><a href="galois-6.html">Part 6: Groups</a></li>
  <li><a href="galois-7.html">Part 7: Factorization of the Resolvent Polynomial</a></li>
  <li><a href="galois-8.html">Part 8: Solvability</a></li>
</ul>

<h1 id="part-3-lagrange-resolvent">Part 3: Lagrange Resolvent</h1>

<p>In this section, we unify the solution methods used for solving the quadratic, cubic and quartic equations.</p>

<p>Let $\alpha$ be a primitive $n^{th}$ root of unity. For $n \leq 4$, we have:</p>
<ol>
  <li>For $n=2$, $\alpha=-1$.</li>
  <li>For $n=3$, $\alpha=\omega, \omega^2$ and is a root of the quadratic equation $x^2 + x + 1 = 0$</li>
  <li>For $n=4$, $\alpha=i, -i$ and is a root of the quadratic equation $x^2 + 1 = 0$</li>
</ol>

<p>Instead of solving the $n^{th}$ degree polynomial $f(x)$ with roots
$r_1$, $r_2$, $\ldots$, $r_n$, let us try solving for a polynomial
$g(x)$ whose roots are
$t = r_1 + \alpha r_2 + \alpha^2 r_3 + \ldots + \alpha^{n-2} r_{n-1} + \alpha^{n-1} r_n$
formed by the $n!$ permutations of the $n$ roots $r_1$, $r_2$, $\ldots$,
$r_n$. Hence $g(x)$ is a $n!$ degree polynomial. $t$ is called the
Lagrange Resolvent. From the previous section, we observe that this
method seems to work for degree $2$ and degree $3$ equations. Degree $4$
seems to use a different resolvent.</p>

<h2 id="resolvent-polynomial">Resolvent Polynomial</h2>

<p>$g(x)$ is called the resolvent polynomial. For the polynomials that we
have tried solving so far, the resolvent polynomial always had
coefficients that can be expressed using known values (coefficients of
$f$). Here is why this happens. Let the roots of $g$ be $t_1$, $t_2$,
$\ldots$, $t_{n!}$. The coefficients of $g$ are elementary symmetric
polynomials in $t_i$. Any symmetric polynomial in $t_i$ is also
symmetric in $r_i\text{s}$, since permuting $r_i\text{s}$ only permutes $t_i\text{s}$. Thus,
the coefficients of $g$ are symmetric polynomials in $r_i\text{s}$ and are
hence known quantities.</p>

<p>For the polynomials that we have tried solving so far, the resolvent
polynomial has also been solvable. Here is how this works for degree $2$
and degree $3$ polynomials.</p>

<h2 id="solving-quadratic-with-lagrange-resolvent">Solving quadratic with Lagrange Resolvent</h2>

<p>For the quadratic polynomial $f(x) = (x-r_1)(x-r_2)$, the resolvents are</p>

\[t_1 = r_1 - r_2\]

\[t_2 = r_2 - r_1\]

<p>The resolvent polynomial
$g(x) = (x-t_1)(x-t_2)$ is also a quadratic. However, in this case,
$t_1 = -t_2$.</p>

\[g(x) = (x-t_1)(x + t_1) = x^2 - t_1^2\]

<p>This is a
simpler quadratic that lacks the linear term and can be solved with only
a square root. Solving this, gives two possible values of $t_1$, one
corresponding to $r_1- r_2$ and the other corresponding to $r_2- r_1$.
We can choose any one of these without loss of generality. Let us say
our choice corresponds to $t_1 = r_1 - r_2$. Since we know $r_1 + r_2$
and $r_1 - r_2$, we can solve this linear system to get $r_1$ and $r_2$.</p>

<h2 id="solving-cubic-with-lagrange-resolvent">Solving cubic with Lagrange Resolvent</h2>

<p>For the cubic polynomial $f(x) = (x-r_1)(x-r_2)(x-r_3)$, the resolvents
are</p>

\[t_1 = r_1 + \omega r_2 + \omega^2 r_3\]

\[t_2 = r_3 + \omega r_1 + \omega^2 r_2\]

\[t_3 = r_2 + \omega r_3 + \omega^2 r_1\]

\[t_4 = r_1 + \omega r_3 + \omega^2 r_2\]

\[t_5 = r_2 + \omega r_1 + \omega^2 r_3\]

\[t_6 = r_3 + \omega r_2 + \omega^2 r_1\]

<p>The resolvent polynomial
$g(x) = \prod_{i=1}^{6} (x-t_i)$ is a $6^{th}$ degree polynomial.
However, in this case, $t_2 = \omega t_1$, $t_3 = \omega^2 t_1$ and
similarly $t_5 = \omega t_4$, $t_6 = \omega^2 t_4$.</p>

\[g(x) = (x-t_1)(x-\omega t_1)(x-\omega^2 t_1)(x-t_4)(x-\omega t_4)(x-\omega^2 t_4)\]

\[g(x) = (x^3-t_1^3)(x^3-t_4^3)\]

<p>where:</p>

\[t_1 = r_1 + \omega r_2 + \omega^2 r_3\]

\[t_4 = r_1 + \omega r_3 + \omega^2 r_2\]

<p>This is actually a quadratic
in $x^3$ and can be solved using the above method. We observe that any
odd permutation of the roots $r_1$, $r_2$, $r_3$ maps $t_1^3$ to $t_4^3$
(and vice versa). Any even permutation of the roots $r_1$, $r_2$, $r_3$
maps $t_1^3$ to $t_4^3$ itself. Hence, the two roots of the quadratic
equation $g(x) = (x^3-t_1^3)(x^3-t_4^3)$ can be assigned to
$t_1^3, t_4^3$ in any order.</p>

<p>From this, we can recover $t_1$ using a cube root. There are $3$ possible cube roots, which are equivalent to cyclic permutations (or the 3 even permutations) of the roots.</p>

<p>Once we know $t_1$, we can recover the corresponding $t_4$ since $t_1t_4 = (r_1 + \omega r_2 + \omega^2 r_3)(r_1 + \omega r_3 + \omega^2 r_2)$ is a symmetric polynomial in the roots and is hence a known quantity. From</p>

\[\begin{align*}
t_1 &amp;= r_1 + \omega r_2 + \omega^2 r_3\\
t_4 &amp;=r_1 + \omega r_3 + \omega^2 r_2\\
-a &amp;= r_1 + r_2 + r_3
\end{align*}\]

<p>we can solve for the individual roots by solving the system of linear equations.</p>

<h2 id="solving-quartic-with-lagrange-resolvent">Solving quartic with Lagrange Resolvent</h2>

<p>In the previous section, we showed that the quartic can be solved using
the resolvent:</p>

\[t_1 = r_1r_2 + r_3r_4\]

\[t_2 = r_1r_3 + r_2r_4\]

\[t_3 = r_1r_4 + r_2r_3\]

<p>The resulting resolvent polynomial is a cubic.
Solving this, followed by solving a few quadratic equations solves the
quartic polynomial.</p>

<p>Alternatively, we can also solve the quartic using the Lagrange
Resolvent $t = r_1 + ir_2 - r_3 - ir_4$. Similar to the cubic case, the
resolvent polynomial in this case can be written as:</p>

\[g(x) = (x^4-t_1^4)(x^4-t_2^4)(x^4-t_3^4)(x^4-t_4^4)(x^4-t_5^4)(x^4-t_6^4)\]

<p>This is a $24^{th}$ degree equation, but a $6^{th}$ degree equation in
$x^4$, where:</p>

\[t_1 = (r_1 - r_2) + i(r_3  - r_4)\]

\[t_2 = (r_1 - r_2) + i(r_4  - r_3)\]

\[t_3 = (r_1 - r_3) + i(r_4  - r_2)\]

\[t_4 = (r_1 - r_3) + i(r_2  - r_4)\]

\[t_5 = (r_1 - r_4) + i(r_2  - r_3)\]

\[t_6 = (r_1 - r_4) + i(r_3  - r_2)\]

<p>This is a $6^{th}$ degree
polynomial that we do not know how to solve. Instead of solving the
resolvent polynomial directly, we go on to solve other auxilary
polynomials. We observe that:</p>

\[t_1t_2 = (r_1 - r_2)^2 + (r_3  - r_4)^2 = r_1^2 + r_2^2 + r_3^2 + r_4^2 - 2(r_1r_2 + r_3r_4)\]

\[t_3t_4 = (r_1 - r_3)^2 + (r_4  - r_2)^2 = r_1^2 + r_2^2 + r_3^2 + r_4^2 - 2(r_1r_3 + r_2r_4)\]

\[t_5t_6 = (r_1 - r_4)^2 + (r_2  - r_3)^2 = r_1^2 + r_2^2 + r_3^2 + r_4^2 - 2(r_1r_4 + r_2r_3)\]

<p>$t_1t_2, t_3t_4, t_5t_6$ are roots of a cubic polynomial with known
coefficients and can be solved. This is similar to the cubic polynomial with roots $(r_1r_2+r_3r_4, r_1r_3+r_2r_4, r_1r_4+r_2r_3)$ used in solving the quartic in the previous section.</p>

<p>We also observe that:</p>

\[\begin{align*}
t_1^2 - t_2^2 &amp;= 4i(r_1 - r_2)(r_3  - r_4)\\
              &amp;= 4i(r_1r_3+r_2r_4)-4i(r_1r_4+r_2r_3)\\
              &amp;= 2i(t_5t_6-t_3t_4)
\end{align*}\]

<p>This means that once we know
$t_1t_2$, $t_3t_4$, $t_5t_6$, by solving the auxilary cubic equation, we also know $t_1^2 - t_2^2$, $t_3^2 - t_4^2$, $t_5^2 - t_6^2$. Thus, by solving the auxilary cubic equation, we can factorize $g(x)$ further into $6$ factors:</p>

\[g(x) =\]

\[\big( (x^2-t_1^2)(x^2+t_2^2) \big) \hspace{5mm}  \big( (x^2-t_3^2)(x^2+t_4^2) \big) \hspace{5mm} \big( (x^2-t_5^2)(x^2+t_6^2) \big) \hspace{5mm}\]

\[\big( (x^2+t_1^2)(x^2-t_2^2) \big) \hspace{5mm} \big( (x^2+t_3^2)(x^2-t_4^2) \big) \hspace{5mm} \big( (x^2+t_5^2)(x^2-t_6^2) \big) \hspace{5mm}\]

<p>Each factor is a polynomial with known coefficients. Each of them is a
quadratic in $x^2$. We can solve each of these quadratics to get
$t_1^2$, $t_2^2$, $t_3^2$, $t_4^2$, $t_5^2$, and $t_6^2$. This helps us
factorize $g(x)$ fully into its $12$ factors of the form
$(x^2 - t_i^2)$.</p>

<p>We can recover $t_i\text{s}$ by taking the square roots. There are two possible
roots in each case. However, once we fix $t_1$, we can find the
corresponding $t_2$ since we already know $t_1t_2$. Similarly, once we
fix $t_3$, we can find the corresponding $t_4$. Similarly for $t_5$ and
$t_6$. The three choices of signs of $t_1, t_3, t_5$ have to be aligned
such that:</p>

\[t_1 + t_3 + t_5 = t_2 + t_4 + t_6\]

<p>But we still need to
distinguish between $(t_1, t_2)$ and $(t_2, t_1)$ and similarly for the
other two pairs. We can do this by observing that:</p>

\[(t_1 + it_2)(t_3 + it_4)(t_5 + it_6)\]

\[=(1+i)^3(r_1+r_2-r_3-r_4)(r_1+r_3-r_4-r_2)(r_1+r_4-r_2-r_3)\]

<p>is symmetric in the roots $r_1$, $r_2$, $r_3$, $r_4$ and is a known
quantity. With these restriction, all $t_i\text{s}$ get fixed. From these, the
roots can be solved using a system of linear equations.</p>

<h2 id="roots-of-unity-with-lagrange-resolvent">Roots of unity with Lagrange Resolvent</h2>

<p>We can solve for any primitive root of unity using Lagrange Resolvent, going beyond the quartic equation.</p>

<p>We know that the primitive $n^{th}$ root of unity satisfies</p>

\[x^{n-1} + x^{n-2} + \ldots + x^2 + x +1=0\]

<p>We also know that if $n$
is not a prime with $n=ab$ where $1&lt;a&lt;n$ and $1&lt;b&lt;n$, the $n^{th}$
primitive root of unity is a product of the $a^{th}$ primitive root of
unity and $b^{th}$ primitive root of unity. Hence, to solve for primitve
roots of unity, it is enough to consider cases where $n = p$ is a prime.</p>

<p>Let the roots of this polynomial be $\alpha$, $\alpha^2$, $\alpha^3$,
$\ldots$, $\alpha^{p-1}$. This can also be arranged in a slightly
different order: $\alpha$, $\alpha^g$, $\alpha^{g^2}$, $\ldots$,
$\alpha^{g^{p-2}}$ for some $g&lt;p$. This is always possible due to a result in number
theory. There always exists a generator $g$ such that $g^i$ mod($p$)
generates all of $1,2,3,\ldots, p-1$ (mod $p$). The resolvent
corresponding to this order is:</p>

\[t = \alpha + \beta\alpha^g + \beta^2\alpha^{g^2} + \ldots + \beta^{p-2}\alpha^{g^{p-2}}\]

<p>where $\beta$ is a primitive $(p-1)^{th}$ root of unity. We assume
$\beta$ to be a known quantity. The resolvent polynomial of degree $(p-1)!$ would have a factor of the form $(x^{p-1} - t^{p-1})$. Generally, $t^{p-1}$ is not a known value (as shown in the case of
the general quartic case). But in the case of the above polynomial, this
factor is expressible in terms of known values.</p>

<p>When $t^{p-1}=(\alpha + \beta\alpha^g + \beta^2\alpha^{g^2} + \ldots + \beta^{p-2}\alpha^{g^{p-2}})^{p-1}$ is expanded in terms of $\alpha$ and $\beta$, it can be expressed as a polynomial in $\alpha$ whose coefficients are polynomials in $\beta$:</p>

\[t^{p-1} = P_0(\beta) + P_1(\beta)\alpha + P_2(\beta)\alpha^g + P_3(\beta)\alpha^{g^2}+ \ldots + P_{p-1}(\beta)\alpha^{g^{p-2}}\]

<p>When $\alpha$ is replaced by $\alpha^g$ in the above, $t$ becomes
$t/\beta$. The left hand side remains unchanged since
$(t/\beta)^{p-1} = t^{p-1}$. On the right hand side, this implies
$P_1(\beta) = P_2(\beta) = \ldots =P_{p-1}(\beta)$. This gives:</p>

\[t^{p-1} = P_0(\beta) + P_1(\beta)(\alpha + \alpha^g + \alpha^{g^2}+ \ldots + \alpha^{g^{p-2}}) = P_0(\beta) - P_1(\beta)\]

<p>Hence, $t^{p-1}$ is a known quantity.</p>

<p>Once we know $t$ we can solve for the individual roots. Here is a sketch
of the method. Consider the quantities:</p>

\[u_1 = \alpha + \beta\alpha^g + \beta^2\alpha^{g^2} + \ldots + \beta^{p-2}\alpha^{g^{p-2}}\]

\[u_2 = \alpha + \beta^2\alpha^g + \beta^4\alpha^{g^2} + \ldots + \beta^{2(p-2)}\alpha^{g^{p-2}}\]

\[\vdots\]

\[u_k = \alpha + \beta^k\alpha^g + \beta^{2k}\alpha^{g^2} + \ldots + \beta^{k(p-2)}\alpha^{g^{p-2}}\]

\[\vdots\]

\[u_{p-1} = \alpha + \beta^{p-1}\alpha^g + \beta^{2({p-1})}\alpha^{g^2} + \ldots + \beta^{(p-1)(p-2)}\alpha^{g^{p-2}}\]

<p>We see that $u_1 = t$ is a known quantity.
$u_{p-1} = \alpha + \alpha^g + \alpha^{g^2} + \ldots + \alpha^{g^{p-2}} = -1$
is also a known quantity. In general, any $u_iu_1^{p-1-i}$ can be shown
to be a known quantity by the exact same method as in showing $t^{p-1}$
to be a known quantity. Once we find all $u_i\text{s}$, we can solve for
$\alpha$ from the system of linear equations.</p>

<h2 id="lagrange-theorem-on-resolvents">Lagrange Theorem on Resolvents</h2>

<p>So far, we have observed that, once we have solved the resolvent polynomial $g(x)$, we can find the roots of the polynomial $f(x)$.</p>

<p><strong>Theorem</strong>: Suppose $t$ is an expression in terms of the roots and known quantities,
and $u$ is another expression in roots and known quantities. Let us
evaluate all possible values of $t$ and $u$ under the various root
permutations. If it so happens that the root permutations that change the
value of $u$ also change the value of $t$, then $u$ can be expressed
using $t$ and other known values.</p>

<p><strong>Proof</strong>: Let us assume there are $k$ different values that $u$ can
take under the root permutations: $u_1$, $u_2$, $u_3$, $\ldots$, $u_k$.
Let the corresponding values of $t$ be $t_1$, $t_2$, $t_3$, $\ldots$,
$t_k$. Consider the following:</p>

\[u_1 + u_2 + \ldots + u_k\]

\[t_1u_1 + t_2u_2 + \ldots + t_ku_k\]

\[t_1^2u_1 + t_2^2u_2 + \ldots + t_k^2u_k\]

\[t_1^3u_1 + t_2^3u_2 + \ldots + t_k^3u_k\]

\[\vdots\]

\[t_1^{k-1}u_1 + t_2^{k-1}u_2 + \ldots + t_k^{k-1}u_k\]

<p>All these expressions are symmetric in roots and are known quantities.
Hence, $u_1$ can be expressed in terms of $t_i^j$:</p>

\[u_1 = \frac{D_1}{D} = \frac{D_1D}{D^2}\]

<p>where D is the Vandermonde
Determinant, $D^2 = \prod (t_i - t_j)^2$. $D^2$ is symmetric in $t_i$
and hence symmetric in roots and is a known quantity. $D_1$ is same as D
but $t_1^j$ is replaced with the value of the $j^{th}$ expression in the
above system of equations. Hence, the numerator is a polynomial in $t_1$
whose coefficients are symmetric polynomials in $t_2$, $t_3$, $\ldots$,
$t_k$, which in turn can be expressed as polynomials in $t_1$. Hence
$u_1$ can be expressed as polynomial in $t_1$ (with coefficients being
known quantities).</p>

<p>If we can find a $t$ such that it takes $n!$ different values under root
permutations, we have got our resolvent. Indeed, such a resolvent can
always be formed using a linear combination of roots. For such a linear
combination to not change under some permutation requires the coefficients to satisfy elaborate constraints. Finding all such constraints for our
given polynomial and then choosing coefficients that violate these
constraints provides us the resolvent. We have not only proved the
existence of a resolvent, but also a resolvent that is linear in the
roots.</p>

<p>Here is a summary of what we know so far:</p>

<ol>
  <li>
    <p>We can create a new variable $t$ called the resolvent which is
expressed entirely using the roots of the polynomial and known
quantities (like coefficients of the polynomial and roots of unity).</p>
  </li>
  <li>
    <p>$t$ can be expressed as a root of a polynomial with known
coefficients. We have been able to solve this polynomial so far in
the cases that we have explored. Though, this is not always
guaranteed.</p>
  </li>
  <li>
    <p>Once we find $t$, we can obtain all the roots using known
quantities.</p>
  </li>
  <li>
    <p>We can always find a $t$ that is linear in roots. Lagrange Resolvent is one such resolvent. For polynomials of degree $2$ and $3$, the resolvent polynomial can be directly solved. For polynomials of degree $4$, the resolvent polynomial can not be directly solved. However, by solving an auxilary cubic polynomial, the resolvent polynomial can be factorized into simpler polynomials, that can then be solved. The resolvent method can also be used for solving for primitive roots of unity.</p>
  </li>
</ol>

<p><strong>Continue Reading: <a href="galois-4.html">Part 4: Fields</a></strong></p>]]></content><author><name>G Roshan Lal</name></author><category term="mathematics" /><summary type="html"><![CDATA[Table of Contents This is Part 3 out of the 8 part series on Galois Theory.]]></summary></entry><entry><title type="html">Rediscovering Galois Theory: Part-4</title><link href="https://groshanlal.github.io/mathematics/2026/01/14/galois-4.html" rel="alternate" type="text/html" title="Rediscovering Galois Theory: Part-4" /><published>2026-01-14T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://groshanlal.github.io/mathematics/2026/01/14/galois-4</id><content type="html" xml:base="https://groshanlal.github.io/mathematics/2026/01/14/galois-4.html"><![CDATA[<h1 id="table-of-contents">Table of Contents</h1>
<p>This is Part 4 out of the 8 part series on Galois Theory.</p>

<p>To navigate to any other part, click on the corresponding link below.</p>
<ul>
  <li><a href="galois-1.html">Part 1: Prerequisites</a></li>
  <li><a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></li>
  <li><a href="galois-3.html">Part 3: Lagrange Resolvent</a></li>
  <li><a href="galois-4.html">Part 4: Fields</a></li>
  <li><a href="galois-5.html">Part 5: Root Permutations</a></li>
  <li><a href="galois-6.html">Part 6: Groups</a></li>
  <li><a href="galois-7.html">Part 7: Factorization of the Resolvent Polynomial</a></li>
  <li><a href="galois-8.html">Part 8: Solvability</a></li>
</ul>

<h1 id="part-4-fields">Part 4: Fields</h1>

<p>From now on, we consider all known quantities to come from a “Field”. A
field is closed under the basic algebraic operations like addition,
subtraction, multiplication, and division (of non-zero elements).
However, root operations like square roots, cube roots, etc., are not
supported in a field. We represent our field of known quantities as $K$.
$K$ contains the coefficients of the given polynomial and other rational
numbers. We sometimes also assume it to contain roots of unity.</p>

<h2 id="field-extension">Field Extension</h2>

<p>Suppose $g(x)$ is an irreducible polynomial with coefficients from $K$.
Let $t$ be a root of $g(x)$. Then, we can introduce a new element $t$ to
the existing field $K$ using an extension. We represent this as $K(t)$.
Since $K \in K(t)$ and $t \in K(t)$, any polynomial in $t$ with
coefficients in $K$ must also be in $K(t)$. We can show that this is
enough to form a new bigger field.</p>

<p>Consider the set of polynomials in some variable with coefficients from
$K$. Two polynomials that have the same remainder on division by $g(x)$
is considered to be equal. Addition, subtraction and multiplication of
two such polynomials would result in another polynomial.</p>

<p>For defining division, we need to first define a way to effectively
invert any $a \in K(t)$ such that $a(x)b(x) = g(x)h(x) + 1$. We can
always find this using Euclid’s method of finding GCD of two
polynomials. Since $g(x)$ is irreducible, the GCD of $a, g$ is $1$.
Hence all elements of $K(t)$ can be inverted and we can define division
as multiplication by the inverse.</p>

<h2 id="splitting-field">Splitting Field</h2>

<p>The field extension $K(r_1, r_2, \ldots, r_n)$ which contains all the
roots of the polynomial of the polynomial is called the Splitting Field.
Solving a polynomial is equivalent to finding the Splitting Field. From
Lagrange’s Theorem on Resolvents, we have shown that there is always a
$t$ such that $K(t) = K(r_1, r_2, \ldots, r_n)$. The resolvent
polynomial $g$ which has coefficients in $K$ and takes $t$ as a root is
easy to find. We start with a polynomial whose roots are $t$ and all its
values under the root permutations. This polynomial has coefficients in
$K$. We factorize this polynomial into irreducible factors. The
irreducible factor that contains $t$ as a root is our resolvent
polynomial $g$.</p>

<p>So far we have found that:</p>

<ol>
  <li>$t$ is a polynomial in the roots:
$t = \psi(r_1, r_2, \ldots, r_n)$ and the roots $r_i$ can be
expressed as a polynomial in $t$: $r_i = \phi_i(t)$. $g(x)$ is the
polynomial whose roots are $t$ and its variants under all the root
permutations of $r_i\text{s}$. If $g$ can be factorized, we take the
irreducible factor containing the root $t$ and call it $g$.</li>
  <li>Lagrange’s Theorem in resolvents can be stated as: $K(t) = K(r_1, r_2, \ldots, r_n)$. Solving for the roots of the
polynomial $f(x)$ is equivalent to solving for the resolvent
polynomial $g(x)$.</li>
</ol>

<p><strong>Continue Reading: <a href="galois-5.html">Part 5: Root Permutations</a></strong></p>]]></content><author><name>G Roshan Lal</name></author><category term="mathematics" /><summary type="html"><![CDATA[Table of Contents This is Part 4 out of the 8 part series on Galois Theory.]]></summary></entry><entry><title type="html">Rediscovering Galois Theory: Part-5</title><link href="https://groshanlal.github.io/mathematics/2026/01/14/galois-5.html" rel="alternate" type="text/html" title="Rediscovering Galois Theory: Part-5" /><published>2026-01-14T00:00:00+00:00</published><updated>2026-01-14T00:00:00+00:00</updated><id>https://groshanlal.github.io/mathematics/2026/01/14/galois-5</id><content type="html" xml:base="https://groshanlal.github.io/mathematics/2026/01/14/galois-5.html"><![CDATA[<h1 id="table-of-contents">Table of Contents</h1>
<p>This is Part 5 out of the 8 part series on Galois Theory.</p>

<p>To navigate to any other part, click on the corresponding link below.</p>
<ul>
  <li><a href="galois-1.html">Part 1: Prerequisites</a></li>
  <li><a href="galois-2.html">Part 2: Solving Polynomials upto degree 4</a></li>
  <li><a href="galois-3.html">Part 3: Lagrange Resolvent</a></li>
  <li><a href="galois-4.html">Part 4: Fields</a></li>
  <li><a href="galois-5.html">Part 5: Root Permutations</a></li>
  <li><a href="galois-6.html">Part 6: Groups</a></li>
  <li><a href="galois-7.html">Part 7: Factorization of the Resolvent Polynomial</a></li>
  <li><a href="galois-8.html">Part 8: Solvability</a></li>
</ul>

<h1 id="part-5-root-permutations">Part 5: Root Permutations</h1>

<p>Let us revisit the solution to the quartic using the Lagrange Resolvent
by following the irreducible polynomial containing $t_1$ as a root.</p>

<p>Initially, the resolvent polynomial is the full $24$ degree polynomial.
The only expression in roots that can be evaluated (as a known quantity)
at this point are the ones that remain unchanged by all the $24$
permutations of the roots.</p>

<p>In the next step, we end up knowing the values of $r_1r_2 + r_3r_4$,
$r_1r_3 + r_2r_4$, $r_1r_4 + r_2r_3$. These are not symmetric
polynomials in roots. The root permutations that preserve them are:</p>

<ol>
  <li>
    <p>$(r_1, r_2, r_3, r_4)$: The identity permutation</p>
  </li>
  <li>
    <p>$(r_2, r_1, r_4, r_3)$: Flip $(r_1, r_2)$ and Flip $(r_3, r_4)$</p>
  </li>
  <li>
    <p>$(r_3, r_4, r_1, r_2)$: Flip $(r_1, r_3)$ and Flip $(r_2, r_4)$</p>
  </li>
  <li>
    <p>$(r_4, r_3, r_2, r_1)$: Flip $(r_1, r_4)$ and Flip $(r_2, r_3)$</p>
  </li>
</ol>

<p>At this point, the resolvent polynomial is $(x^2-t_1^2)(x^2+t_2^2)$.
These permutations take $t_1$ to the other roots of the resolvent
polynomial: $t_1$, $-t_1$, $it_2$, $-it_2$. The only expressions in
roots that we can evaluate at this stage happens to be polynomials in
roots that remain unchanged by these permutations. For example, we can
evaluate $(r_1 + r_2)(r_3 + r_4)$.</p>

<p>We notice the following pattern:</p>

<ol>
  <li>
    <p>Polynomial expressions in roots that can be evaluated as known
quantities are characterized by a subset of root permutations.</p>
  </li>
  <li>
    <p>These same permutations map one root of the resolvent polynomial to
the other roots of the resolvent polynomial.</p>
  </li>
</ol>

<h2 id="allowed-root-permutations">Allowed Root Permutations</h2>

<p>$K(t) = K(r_1,r_2,\ldots,r_n)$. $t$ is a root of $g(x)$. Once we solve
for $t$, we can recover the roots $r_1$, $r_2$, $\ldots$, $r_n$, using a
polynomial in $t$:</p>

\[r_1 = \phi_1(t), r_2 = \phi_2(t), \ldots r_n = \phi_2(t)\]

<p>However, we cannot distinguish one root of $g(x)$ from another. Thus, if
$t’$ is another root of $g(x)$, we could also get a permutation of the
roots $r_1$, $r_2$, $\ldots$, $r_n$ as</p>

\[\phi_1(t'), \phi_2(t'), \ldots \phi_2(t')\]

<p>We can show that this is a permutation of $r_1$, $r_2$, $\ldots$, $r_n$.</p>

<p>$f(\phi_i(x))$ has $t$ as a root. Then, the irreducible polynomial of
$t$: $g(x)$ divides $f(\phi_i(x))$.</p>

<p>So, $f(\phi_i(t’)) = 0$ establishing
that $\phi_1(t’)$, $\phi_2(t’)$, $\ldots$, $\phi_2(t’)$ are all roots of
$f(x)$.</p>

<p>Further, if $\phi_i(t’) = \phi_j(t’)$, then the polynomial
$\phi_i(x) - \phi_j(x)$ has a root $t’$. Then $g(x)$ $|$
$\phi_i(x) - \phi_j(x)$ and $t$ is also a root of
$\phi_i(x) - \phi_j(x)$ implying that $\phi_i(t) =  \phi_j(t)$, which is
not possible.</p>

<p>Thus, $\phi_1(t’)$, $\phi_2(t’)$, $\ldots$, $\phi_2(t’)$ is a
rearrangement of $r_1$, $r_2$, $\ldots$, $r_n$. If we were to somehow
know $t$, and then find the roots $r_i$ using $t$, we will not be able
to distinguish between these permutations. Let us call these
permutations as “<strong>Allowed Permutations</strong>”. Let us call the specific permutation</p>

\[(r_1,r_2,\ldots,r_n) = (\phi_1(t),\phi_2(t),\ldots,\phi_n(t)) \to (\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))\]

<p>as “Allowed Permutation” derived from $t \to t’$.</p>

<h2 id="allowed-root-permutation-maps-one-root-of-g-to-another-root-of-g">Allowed Root Permutation maps one root of $g$ to another root of $g$</h2>

<p>Consider a root permutation $\sigma$ that maps</p>

\[(r_1,r_2,\ldots,r_n) = (\phi_1(t),\phi_2(t),\ldots,\phi_n(t)) \to (\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))\]

<p>Let $t_1$ be any root of $g$. Since $t_1$ can be expressed as a polynomial in $(r_1,r_2,\ldots,r_n)$, we have:</p>

\[\begin{align*}
t_1 &amp;= \psi(r_1, r_2, \ldots, r_n)\\
    &amp;= \psi(\phi_1(t),\phi_2(t),\ldots,\phi_n(t))
\end{align*}\]

<p>When the permutation $\sigma$ is applied on $t_1$, we get:</p>

\[\psi(\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))\]

<p>Since $g(t_1) = 0$, we get that</p>

\[g(\psi(\phi_1(t),\phi_2(t),\ldots,\phi_n(t))) = 0\]

<p>This is a polynomial which shares a root with the irreducible polynomial $g$. Then $g$ divides it and all roots of $g$ are also roots of this polynomial. Thus:</p>

\[g(\psi(\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))) = 0\]

<p>This shows that $\psi(\phi_1(t’),\phi_2(t’),\ldots,\phi_n(t’))$ is also a root of $g$.</p>

<p>This shows that for any root $t_1$ of $g$, the root permutation</p>

\[(r_1,r_2,\ldots,r_n) = (\phi_1(t),\phi_2(t),\ldots,\phi_n(t)) \to (\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))\]

<p>maps $t_1 \to t_2$ where $t_2$ is another root of $g$.</p>

<p>In the special case when $t_1 = t$, we have:</p>

\[t = \psi(\phi_1(t),\phi_2(t),\ldots,\phi_n(t))\]

<p>We observe that this is a polynomial which shares a root with the irreducible polynomial $g$. Then $g$ divides it and all roots of $g$ are also roots of this polynomial. Thus:</p>

\[t' = \psi(\phi_1(t'),\phi_2(t'),\ldots,\phi_n(t'))\]

<p>Thus, when $t_1 = t$, we have $t_2 = t’$.</p>

<p>We have shown that given any two roots $t, t’$ of $g$, we can define a root permutation that maps $t \to t’$. This same root permutations maps every root of $g$ to other roots of $g$.</p>

<h2 id="polynomial-expressions-in-roots-that-can-be-evaluated">Polynomial Expressions in Roots that can be evaluated</h2>

<p>Consider any polynomial expression in roots:
$\psi(r_1, r_2,\ldots,r_n)$. We know that</p>

\[\psi(r_1, r_2,\ldots,r_n) = \psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) \in K(t)\]

<p>since it is a polynomial in $t$. Suppose that we can evaluate this
expression, and assign it a known value. Then,
$\psi(r_1, r_2,\ldots,r_n) = c \in K$. This implies that $t$ is a root
of $\psi(\phi_1(x), \phi_2(x), \ldots, \phi_n(x)) - c =0$. Again, by the
same logic as before, any $t’$ is also a root of
$\psi(\phi_1(x), \phi_2(x), \ldots, \phi_n(x)) - c = 0$. This shows that
if we can evaluate any polynomial expression in roots, then it is
invariant under all the allowed root permutations.</p>

<p>The converse of this statement is also true. If we have an expression
that is invariant under all the allowed root permutations, then it can
be assigned a value from $K$. Suppose $\psi$ is invariant to all the
allowed permutations. Then,</p>

\[\psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) = \psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t))\]

\[\psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) = \psi(\phi_1(t'), \phi_2(t'), \ldots, \phi_n(t'))\]

\[\psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) = \psi(\phi_1(t''), \phi_2(t''), \ldots, \phi_n(t''))\]

\[\vdots\]

\[\psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) = \psi(\phi_1(t^{(k)}), \phi_2(t^{(k)}), \ldots, \phi_n(t^{(k)}))\]

<p>Adding them all up, we get:</p>

\[\psi(\phi_1(t), \phi_2(t), \ldots, \phi_n(t)) = \frac{1}{k+1} \sum_{i=0}^{k} \psi(\phi_1(t^{(i)}), \phi_2(t^{(i)}), \ldots, \phi_n(t^{(i)}))\]

<p>The right side of this expression is symmetric in the roots of $g(x)$.
Hence, it is a known quantity.</p>

<p>Thus the only expressions that can be evaluated as a known quantity are
those that are invariant under the allowed root permutations.</p>

<p>So far we have found that:</p>

<ol>
  <li>If we were to somehow solve $g(x)$ and get $t$, it
could be any one of the roots of $g(x)$. If we then were to
recover the roots of $f(x)$ using
$(\phi_1(t’),\phi_2(t’),\ldots,\phi_n(t’))$, it would be a
permutation of $r_i\text{s}$.</li>
  <li>When the roots $t$ of $g(x)$ are expressed as a polynomial in roots
$(r_1,r_2,\ldots,r_n)$, these same permutations map one root of $g$ to another root of $g$. For any two roots of $t$, and $t’$ of $g$, we can define a root permutation that maps $t \to t’$ and any root of $g$ to some other root of $g$.</li>
  <li>A polynomial in $(r_1,r_2,\ldots,r_n)$ can be evaluated to a known<br />
quantity in $K$ if and only if it is invariant to these same permutations.</li>
</ol>

<p><strong>Continue Reading: <a href="galois-6.html">Part 6: Groups</a></strong></p>]]></content><author><name>G Roshan Lal</name></author><category term="mathematics" /><summary type="html"><![CDATA[Table of Contents This is Part 5 out of the 8 part series on Galois Theory.]]></summary></entry></feed>