- br_beta (t1 t2 : Trm) (T : Typ) : (λ T,t1).lc → t2.lc → beta_red ((λ T,t1) @ t2) (t1.open₀ t2)
- br_app1 (t1 t1' t2 : Trm) : t2.lc → beta_red t1 t1' → beta_red (t1 @ t2) (t1' @ t2)
- br_app2 (t1 t2 t2' : Trm) : t1.lc → beta_red t2 t2' → beta_red (t1 @ t2) (t1 @ t2')
- br_abs (t1 t1' : Trm) (T : Typ) (L : Finset ℕ) : (∀ x ∉ L, beta_red (t1.open₀ ($x)) (t1'.open₀ ($x))) → beta_red (λ T,t1) (λ T,t1')
Instances For
- para_var (x : ℕ) : para ($x) ($x)
- para_red (t1 t1' t2 t2' : Trm) (T : Typ) (L : Finset ℕ) : (∀ x ∉ L, para (t1.open₀ ($x)) (t1'.open₀ ($x))) → para t2 t2' → para ((λ T,t1) @ t2) (t1'.open₀ t2')
- para_app (t1 t1' t2 t2' : Trm) : para t1 t1' → para t2 t2' → para (t1 @ t2) (t1' @ t2')
- para_abs (t1 t1' : Trm) (T : Typ) (L : Finset ℕ) : (∀ x ∉ L, para (t1.open₀ ($x)) (t1'.open₀ ($x))) → para (λ T,t1) (λ T,t1')
Instances For
- m_para_refl (t : Trm) : t.lc → multi_para t t
- m_para_head (t1 t2 t3 : Trm) : multi_para t1 t2 → para t2 t3 → multi_para t1 t3