k ::= ∗ | k → k 
A ::= ∀α:k.A | ∃α:k.A | A → B | α | A B | λα:k.A | α̂

Γ ⊢ A ≤ B : k ⊣ Γ


Γ, α:k₁ ⊢ A α ≤ B α ⊣ Γ', α:k₁, Γ''
———————————————————————————————————
Γ ⊢ A ≤ B : k₁ → k₂ ⊣ Γ'


Γ, α:k ⊢ A ≤ B ⊣ Γ', α:k, Δ
————————————————————————————
Γ ⊢ A ≤ ∀α:k.B ⊣ Γ'

Γ ⊢ A ⇓ A' : ∗
Γ ⊢ B ⇓ B' : ∗ 
Γ ▷ A' ≤ B' ◁ ⊣ Γ'
——————————————————
Γ ⊢ A ≤ B : ∗ ⊣ Γ'


Γ, ▸[α̂], α̂:k ⊢ [α̂/α]A ≤ B ⊣ Γ', ▸[α̂], Δ
———————————————————————————————————————
Γ ▷ ∀α:k.A ≤ B : ∗ ◁ Γ'


Γ, ▸[α̂], α̂:k ⊢ A ≤ [α̂/α]B ⊣ Γ', ▸[α̂], Δ
———————————————————————————————————————
Γ ▷ A ≤ ∃α:k.B : ∗ ◁ Γ'


Γ, α:k ⊢ A ≤ B ⊣ Γ', α:k, Δ
————————————————————————————
Γ ▷ ∃α:k.A ≤ B ◁ Γ'


Γ ⊢ B₁ ≤ A₁ : ∗ ⊣ Γ'
Γ' ⊢ A₂ ≤ B₂ : ∗ ⊣ Γ''
———————————————————————————————
Γ ▷ A₁ → A₂ ≤ B₁ → B₂ : ∗ ◁ Γ''


Γ, α̂:k, Γ' ⊣ α̂ · x_1 ... x_n := B : k ⊣ Δ
—————————————————————————————————————
Γ, α̂:k, Γ' ▷ α̂ x₁ ... x_n ≤ B : k' ◁ Δ


Γ, α̂:k, Γ' ⊣ α̂ · x_1 ... x_n := B  ⊣ Δ
—————————————————————————————————————
Γ, α̂:k, Γ' ▷ B ≤ α̂ x₁ ... x_n : k' ◁ Δ


α̂:k[1] → ... k[n] → ∗ ∈ Γ[1]
∀i ∈ [1..n].   Γ[i] ⊢ A_i ≡ B_i : k[i] ⊣ Γ[i+1]
———————————————————————————————————————–———————
Γ[1] ▷ α̂ A₁ ... A_n ≤ α̂ B₁ .. B_n : ∗ ◁ Γ[n+1]


α:k[1] → ... k[n] → ∗ ∈ Γ[1]
∀i ∈ [1..n].   Γ[i] ⊢ A_i ≡ B_i : k[i] ⊣ Γ[i+1]
———————————————————————————————————————–———————
Γ[1] ▷ α A₁ ... A_n ≤ α B₁ .. B_n : ∗ ◁ Γ[n+1]



Γ, β̂₁:k, β̂₂:k, α̂:k=(λx_1...x_n. β̂₁ x₁ ... x_n → β̂₂ x₁ ... x_n), Γ' ⊢ β̂₁ · x_1 ... x_n := B₁ ⊣ Δ
Δ ⊢ β̂₂ · x_1 ... x_n := B₂ ⊣ Δ'
————————————————————————————————————————————————————————————————————————————————————————————————
Γ, α̂:k, Δ ⊢ α̂ · x_1 ... x_n := B₁ → B₂ ⊣ Γ', α̂:k=(λx_1 ... x_n. B), Γ' ⊣ Δ'

 
Γ ⊢ λx_1 ... x_n. B ⇐ k ⊣ Γ'     B neutral
———————————————————————————————————————————————————————————————
Γ, α̂:k, Δ ⊢ α̂ · x_1 ... x_n := B ⊣ Γ', α̂:k=(λx_1 ... x_n. B), Δ





 



