123456789101112131415161718192021222324252627282930 |
- module Reduction where
- open import Prelude
- open import Lambda
- open import Subst
- open import Trans
- infix 10 _⟶β_
- data _⟶β_ : forall {Γ τ} -> (t u : Term Γ τ) -> Set where
- β : forall {Γ σ τ}{t : Term (Γ , σ) τ} Δ {u : Term (Γ ++ Δ) σ} ->
- (ƛ t) ↑ Δ • u ⟶β t ↑ Δ / [ Δ ⟵ u ]
- wk⟶ : forall {Γ σ τ}{t₁ t₂ : Term Γ τ} ->
- t₁ ⟶β t₂ -> wk {σ = σ} t₁ ⟶β wk t₂
- •⟶L : forall {Γ σ τ}{t₁ t₂ : Term Γ (σ ⟶ τ)}{u : Term Γ σ} ->
- t₁ ⟶β t₂ -> t₁ • u ⟶β t₂ • u
- •⟶R : forall {Γ σ τ}{t : Term Γ (σ ⟶ τ)}{u₁ u₂ : Term Γ σ} ->
- u₁ ⟶β u₂ -> t • u₁ ⟶β t • u₂
- ƛ⟶ : forall {Γ σ τ}{t₁ t₂ : Term (Γ , σ) τ} ->
- t₁ ⟶β t₂ -> ƛ t₁ ⟶β ƛ t₂
- _⟶β*_ : {Γ : Ctx}{τ : Type}(x y : Term Γ τ) -> Set
- x ⟶β* y = [ _⟶β_ ]* x y
- ↑⟶β : {Γ : Ctx}(Δ : Ctx){τ : Type}{t u : Term Γ τ} ->
- t ⟶β u -> t ↑ Δ ⟶β u ↑ Δ
- ↑⟶β ε r = r
- ↑⟶β (Δ , σ) r = wk⟶ (↑⟶β Δ r)
|