No, foreign keys and derived values are two different things.
product quantity price subtotal
--
ACH123 5 $1.50 $7.50
In the simplified table above, "subtotal" is a derived value. It's derived from "quantity" and "price". (By multiplying them together.)
Database designers usually don't store derived values without using a CHECK() constraint or a trigger to make sure the derived value is always correct. In the table above, updating the quantity to 4 would make the derived value "subtotal" incorrect. A CHECK() constraint can prevent an update to "quantity" unless the update also has the correct value for "subtotal". A trigger can automatically update "subtotal" when either "quantity" or "price" changes.
CHECK() constraints are usually a better choice.