For a given Linear programming problem \begin{align} max \ c^Tx \\s.t\ Ax \leq b \end{align} and for lagrange multiplier $p\geq0\\$ \begin{align} g(p):= max \{ c^Tx + p^T(b-Ax): x\in \mathbb{R}^n\} \end{align}
now minimizing this function will give the tightest upper bound for the LP problem,
$min\{g(p): p\geq 0\} = min \{max \{c^Tx\ + p^T(b-Ax): x\in \mathbb{R}^n\}: p\geq 0\}$
$min\{g(p): p\geq 0\} = min \{p^Tb \ + max \{c^T\ - p^TA)x: x\in \mathbb{R}^n\}: p\geq 0\} $
next step
$min\{g(p): p\geq 0\} = min \{b^Tp : A^Tp = c,\ p\geq 0\}$
is not clear to me.
term $A^Tp = c$ is a result of
$c^T-p^TA\leq 0$
$c^T -p^TA\geq 0$
depending on the values of $c^T$ and $A^T$,
thus
$c^T -p^T A= 0$
$A^Tp = c$,
as explained as an example in the last answer of this post:Dual of a Linear Program
or I am overlooking some points? Picture for the last step is not clear in my mind, I looked for other explanations of lagrange duality but it is confusing me more. Any help would be greatly appreciated. Thanks