Skip to Content.
Sympa Menu

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

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[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: [Coq-Club] "Error: refine: proof term contains metas in a product."
  • Date: Sun, 16 Feb 2014 05:06:45 +0100

Dear all,

continuing my attempt to define a realizability relation, I get the
error in the subject line when trying to use the refine tactic.

An example is below (pastebin: http://pastebin.com/acR7xAEy). I know I
can avoid the refine tactic by replacing the blank with "(pf b)", but
this is not a very convenient option for the full definition of
realizability.


Parameter A : Type.

Parameter bin_op : A -> A -> A.
Infix "*" := bin_op.

Inductive is_A_atom : Prop -> Prop :=
| eq_false : is_A_atom False
| eq_atom (a b : A) : is_A_atom (a = b).

Inductive is_A_formula : Prop -> Type :=
| atom_formula (P : Prop) : is_A_atom P -> is_A_formula P
| uni_formula (P : A -> Prop) : (forall a : A, is_A_formula (P a)) ->
is_A_formula (forall a, P a).

Definition helper : A -> forall P, is_A_formula P -> Prop.
refine (fix r a P (pf : is_A_formula P) := match pf with
| atom_formula _ _ => P
| uni_formula P pf => forall b : A, r (a*b) (P b) _
end).


Best regards,

Anders Lundstedt



Archive powered by MHonArc 2.6.18.

Top of Page