Require Import Utils.psyntax.
Reserved Notation "|-F i ; s <: t" (at level 68, i, s, t at next level).
Inductive subF {w} : nat -> @ntype w 0 -> @ptype w 0 -> Prop :=
| FTop s : |-F 0; s <: top
| FAllNeg s t1 t2 i : |-F i; ninst t1 t2 <: pinst t1 s ->
|-F S i; uAllN s <: bAllN t1 t2
where "|-F i ; A <: B" := (subF i A B).
Definition FsubF_SUBTYPE : {w : nat & ( @ntype w 0 * @ptype w 0 )%type} -> Prop
:= fun ntt => let (w, s0) := ntt in let (s, t) := s0
in exists h, |-F h; s <: t.