{-# OPTIONS --cumulativity #-}
module ROmega.Entailment.Reasoning where
open import Agda.Primitive
open import Function using (id)
open import ROmega.Entailment.Syntax
open import ROmega.Types.Syntax
infixr 2 _⊩⟨_⟩_
private
variable
ℓΔ ℓΦ ℓκ : Level
Δ : KEnv ℓΔ
Φ : PEnv Δ ℓΦ
κ : Kind ℓκ
π : Pred Δ κ
_⊩⟨_⟩_ : ∀ {κ₁ κ₂ κ₃ : Kind ℓκ} (π₁ : Pred Δ κ₁) {π₂ : Pred Δ κ₂} {π₃ : Pred Δ κ₃} →
(Ent Δ Φ π₁ → Ent Δ Φ π₂) →
(Ent Δ Φ π₂ → Ent Δ Φ π₃) →
Ent Δ Φ π₁ → Ent Δ Φ π₃
_⊩⟨_⟩_ π₁ 1→2 2→3 e₁ = 2→3 (1→2 e₁)
∎ : Ent Δ Φ π →
Ent Δ Φ π
∎ = id