This is a type of "essay" question in law that allows you to play the judge, to determine the right law to apply to the facts in order to make the ruling. I want you to play the judge and determine who will win the case. This is a contract law issue, and can be solved by properly finding the applicable principles of law.
Let's say Charlie Consumer walks into Val Vender's lapidary shop. You know what a "lapidaryist" does - he or she polishes rocks, and sells them as keepsakes. Perhaps Val has great knowledge about types of geology, rocks, and even gems.
Charlie picks up a piece of translucent rock (light will opaquely shine through it) and innocently asks, "What would you take for this rock, before it is polished?" Val takes it, looks it over, and offers it for $40.00. Charlie thinks that is a little steep, but consents to the sale. (Offer, acceptance, and consideration - right?)
Later in the week, Charlie follows a hunch, and takes the rock into a gemologist to have it appraised. "Holy cow!" says the professional. "What you have hear is an uncut diamond! Once cut and polished, it could be worth over $20,000."
This is called a mutual mistake of fact. Usually, where there is a mutual mistake of fact, the contract is voidable. For example, if there is a contract for a barren cow but then it is found that ...