Fix #488
This commit is contained in:
parent
dedf93666d
commit
6bc9ccd609
1 changed files with 27 additions and 20 deletions
|
@ -53,12 +53,13 @@ four.
|
||||||
## Imports
|
## Imports
|
||||||
|
|
||||||
```
|
```
|
||||||
open import Relation.Binary.PropositionalEquality using (_≡_; _≢_; refl)
|
|
||||||
open import Data.String using (String; _≟_)
|
|
||||||
open import Data.Nat using (ℕ; zero; suc)
|
|
||||||
open import Data.Empty using (⊥; ⊥-elim)
|
open import Data.Empty using (⊥; ⊥-elim)
|
||||||
open import Relation.Nullary using (Dec; yes; no; ¬_)
|
|
||||||
open import Data.List using (List; _∷_; [])
|
open import Data.List using (List; _∷_; [])
|
||||||
|
open import Data.Nat using (ℕ; zero; suc)
|
||||||
|
open import Data.Product using (∃-syntax; _×_)
|
||||||
|
open import Data.String using (String; _≟_)
|
||||||
|
open import Relation.Nullary using (Dec; yes; no; ¬_)
|
||||||
|
open import Relation.Binary.PropositionalEquality using (_≡_; _≢_; refl)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Syntax of terms
|
## Syntax of terms
|
||||||
|
@ -582,7 +583,7 @@ replaces the formal parameter by the actual parameter.
|
||||||
|
|
||||||
If a term is a value, then no reduction applies; conversely,
|
If a term is a value, then no reduction applies; conversely,
|
||||||
if a reduction applies to a term then it is not a value.
|
if a reduction applies to a term then it is not a value.
|
||||||
We will show in the next chapter that
|
We will show in the next chapter that
|
||||||
this exhausts the possibilities: every well-typed term
|
this exhausts the possibilities: every well-typed term
|
||||||
either reduces or is a value.
|
either reduces or is a value.
|
||||||
|
|
||||||
|
@ -788,24 +789,30 @@ while if the top two lines stand for a single reduction
|
||||||
step and the bottom two stand for zero or more reduction
|
step and the bottom two stand for zero or more reduction
|
||||||
steps it is called the diamond property. In symbols:
|
steps it is called the diamond property. In symbols:
|
||||||
|
|
||||||
confluence : ∀ {L M N} → ∃[ P ]
|
```
|
||||||
( ((L —↠ M) × (L —↠ N))
|
postulate
|
||||||
--------------------
|
confluence : ∀ {L M N}
|
||||||
→ ((M —↠ P) × (N —↠ P)) )
|
→ ((L —↠ M) × (L —↠ N))
|
||||||
|
--------------------
|
||||||
|
→ ∃[ P ] ((M —↠ P) × (N —↠ P))
|
||||||
|
|
||||||
diamond : ∀ {L M N} → ∃[ P ]
|
diamond : ∀ {L M N}
|
||||||
( ((L —→ M) × (L —→ N))
|
→ ((L —→ M) × (L —→ N))
|
||||||
--------------------
|
--------------------
|
||||||
→ ((M —↠ P) × (N —↠ P)) )
|
→ ∃[ P ] ((M —↠ P) × (N —↠ P))
|
||||||
|
```
|
||||||
|
|
||||||
The reduction system studied in this chapter is deterministic.
|
The reduction system studied in this chapter is deterministic.
|
||||||
In symbols:
|
In symbols:
|
||||||
|
|
||||||
deterministic : ∀ {L M N}
|
```
|
||||||
→ L —→ M
|
postulate
|
||||||
→ L —→ N
|
deterministic : ∀ {L M N}
|
||||||
------
|
→ L —→ M
|
||||||
→ M ≡ N
|
→ L —→ N
|
||||||
|
------
|
||||||
|
→ M ≡ N
|
||||||
|
```
|
||||||
|
|
||||||
It is easy to show that every deterministic relation satisfies
|
It is easy to show that every deterministic relation satisfies
|
||||||
the diamond property, and that every relation that satisfies
|
the diamond property, and that every relation that satisfies
|
||||||
|
@ -1104,13 +1111,13 @@ infix 4 _⊢_⦂_
|
||||||
|
|
||||||
data _⊢_⦂_ : Context → Term → Type → Set where
|
data _⊢_⦂_ : Context → Term → Type → Set where
|
||||||
|
|
||||||
-- Axiom
|
-- Axiom
|
||||||
⊢` : ∀ {Γ x A}
|
⊢` : ∀ {Γ x A}
|
||||||
→ Γ ∋ x ⦂ A
|
→ Γ ∋ x ⦂ A
|
||||||
-----------
|
-----------
|
||||||
→ Γ ⊢ ` x ⦂ A
|
→ Γ ⊢ ` x ⦂ A
|
||||||
|
|
||||||
-- ⇒-I
|
-- ⇒-I
|
||||||
⊢ƛ : ∀ {Γ x N A B}
|
⊢ƛ : ∀ {Γ x N A B}
|
||||||
→ Γ , x ⦂ A ⊢ N ⦂ B
|
→ Γ , x ⦂ A ⊢ N ⦂ B
|
||||||
-------------------
|
-------------------
|
||||||
|
|
Loading…
Reference in a new issue