open import Definition.Typed.Restrictions
open import Graded.Modality
module Definition.Typed.Syntactic
{a} {M : Set a}
{𝕄 : Modality M}
(R : Type-restrictions 𝕄)
where
open import Definition.Untyped M
open import Definition.Typed R
open import Definition.Typed.Properties.Reduction R
import Definition.Typed.Well-formed R as W
open import Tools.Function
open import Tools.Product
open W public
using ()
renaming
(wf-∷∈ to syntacticVar;
wf-⊢∷ to syntacticTerm;
wf-⊢≡ to syntacticEq;
wf-⊢≡∷ to syntacticEqTerm)
private variable
Γ : Con Term _
A B t u : Term _
opaque
syntacticRed : Γ ⊢ A ⇒* B → Γ ⊢ A × Γ ⊢ B
syntacticRed = syntacticEq ∘→ subset*
opaque
syntacticRedTerm : Γ ⊢ t ⇒* u ∷ A → (Γ ⊢ A) × Γ ⊢ t ∷ A × Γ ⊢ u ∷ A
syntacticRedTerm = syntacticEqTerm ∘→ subset*Term