[英]“Rewrite” a type
我有以下Coq代碼:
Set Implicit Arguments.
Record eq {X : Set} (R : X -> X -> Prop) : Set :=
mkEq {
reflexivity: forall x, R x x
}.
Record eqSet : Type :=
make {
set : Set;
r : set -> set -> Prop;
r_eq : eq r
}.
Definition Nat : eqSet.
refine (make (set:=nat) (r := fun x y => x = y) _).
apply mkEq.
auto.
Defined.
Lemma ex : forall (x : set Nat) (P : nat -> Prop), P x.
intro.
引理“ ex”只是我想做的一個例子。 在最后的“介紹”之后,我的假設是:
x : set Nat
我想用“ nat”代替“ set Nat”。 (戰術“瑣碎”已經證明“ set Nat = nat”)。 可能嗎?
您的主要問題是目標中使用了x
,因此更改其類型也可能會影響目標的類型。 如果你表演
assert (h: set Nat = nat) by now trivial.
revert x.
rewrite h.
您將遇到輸入錯誤。
我不確定如何做到這一點。
V.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.