- br_beta: ∀ (t1 t2 : Trm), (λt1).lc → t2.lc → beta_red ((λ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) (L : Finset ℕ), (∀ x ∉ L, beta_red (t1.open₀ ($x)) (t1'.open₀ ($x))) → beta_red (λt1) (λt1')
Instances For
- para_var: ∀ (x : ℕ), para ($x) ($x)
- para_red: ∀ (t1 t1' t2 t2' : Trm) (L : Finset ℕ), (∀ x ∉ L, para (t1.open₀ ($x)) (t1'.open₀ ($x))) → para t2 t2' → para ((λ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) (L : Finset ℕ), (∀ x ∉ L, para (t1.open₀ ($x)) (t1'.open₀ ($x))) → para (λt1) (λ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
Instances For
theorem
multi_para_trans
(t1 : Trm)
(t2 : Trm)
(t3 : Trm)
:
multi_para t1 t2 → multi_para t2 t3 → multi_para t1 t3