簡體   English   中英

“重寫”一個類型

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM