我可以用归纳类型的符号来定义Coq中的类型吗?

我可以用归纳类型的符号来定义Coq中的类型吗?,coq,notation,dependent-type,Coq,Notation,Dependent Type,假设我有这样的东西: Inductive SubtypeOf : Gamma -> UnsafeType -> Type -> Set := | SubRefl : forall (gamma : GammaEnv) (u : UnsafeType) , SubtypeOf gamma u u | SubTrans : forall (gamma : GammaEnv) (u1 u2 u3 : Type) , SubtypeOf gamm

假设我有这样的东西:

Inductive SubtypeOf :
  Gamma -> UnsafeType -> Type -> Set :=
| SubRefl :
    forall (gamma : GammaEnv)  (u : UnsafeType)
    , SubtypeOf gamma u u
| SubTrans :
    forall (gamma : GammaEnv)  (u1 u2 u3 : Type)
    , SubtypeOf gamma u1 u2
      -> SubtypeOf gamma u2 u3
      -> SubtypeOf gamma u1 u3.
Inductive SubtypeOf :
  Gamma -> UnsafeType -> Type -> Set :=
| SubRefl :
    forall (gamma : GammaEnv)  (u : UnsafeType)
    ,  gamma |- u <: u
| SubTrans :
    forall (gamma : GammaEnv)  (u1 u2 u3 : Type)
    , gamma |- u1 <: u2
      -> gamma |- u2 <: u3
      -> gamma |- u1 <: u3.
以及定义的符号:


Notation“G |-x根据ejgallego的评论展开,有关于和的文档。下面是有效的代码:

Reserved Notation "G |-  x <: y" (at level 50, x at next level).
Definition UnsafeType := Type.
Axiom Gamma : Set.
Notation GammaEnv := Gamma.
Inductive SubtypeOf :
  Gamma -> UnsafeType -> Type -> Type :=
| SubRefl :
    forall (gamma : GammaEnv)  (u : UnsafeType)
    ,  gamma |- u <: u
| SubTrans :
    forall (gamma : GammaEnv)  (u1 u2 u3 : Type)
    , gamma |- u1 <: u2
      -> gamma |- u2 <: u3
      -> gamma |- u1 <: u3
where "G |-  x <: y " := (SubtypeOf G x y).

Reserved Notation“G |-x是的,在Coq手册中查找
Reserved Notation
where
。@ejgallego完美,把这个作为答案,我接受!