Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] "Error: refine: proof term contains metas in a product."

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] "Error: refine: proof term contains metas in a product."


Chronological Thread 
  • From: Anders Lundstedt <anders AT anderslundstedt.se>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] "Error: refine: proof term contains metas in a product."
  • Date: Sun, 16 Feb 2014 20:53:23 +0100

On Sun, Feb 16, 2014 at 5:31 PM, Jason Gross
<jasongross9 AT gmail.com>
wrote:
> Does replacing [forall b : A, r (a*b) (P b) _] with [(fun x => forall b : A,
> r (a*b) (P b) (x b)) _] work (possibly with some additional type
> annotations)?
>
> -Jason

Yes, it does, thank you! The drawback is that it is not very elegant.
Example (pastebin: http://pastebin.com/nzet8G8i) below.


Parameter P : True -> Prop.

Definition Q : Prop.
(* will fail due to "metas in product" *)
try refine (forall n : nat, P _).
(* solution: lambda abstraction on the blank *)
refine ((fun x : True => forall n : nat, P x) _).
apply I.
Defined.

Parameter P' : nat -> Prop.
Axiom pf : forall n, P' n.
Parameter P'' : forall n : nat, P' n -> Prop.

Definition Q' : Prop.
(* will fail due to "metas in product" *)
try refine (forall n : nat, P'' n _).
(* solution: lambda abstraction on the blank. this time we need to abstract a
dependent product *)
refine ((fun x : (forall n, P' n) => forall n : nat, P'' n (x n)) _).
apply pf.
Defined.



Archive powered by MHonArc 2.6.18.

Top of Page