add missing value production

also, use redex-check? instead of redex-check in 2 places
This commit is contained in:
Robby Findler 2014-03-18 22:21:51 -05:00
parent 1ecd4c0563
commit 5e275e41ef
19 changed files with 53 additions and 43 deletions

View File

@ -2,11 +2,11 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "app rule the range of the function is matched to the argument")
31a32
32a33
> ((cons v) v)
53c54
54c55
< (typeof Γ M_2 σ)
---
> (typeof Γ M_2 σ_2)
236d236
237d237
<

View File

@ -2,5 +2,5 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "the ((cons number) v) value has been omitted")
31a32
32a33
> ((cons v) v)

View File

@ -2,9 +2,9 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "the order of the types in the function position of application has been swapped")
31a32
32a33
> ((cons v) v)
52c53
53c54
< [(typeof Γ M (σσ_2))
---
> [(typeof Γ M (σ_2 → σ))

View File

@ -2,9 +2,9 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "the type of cons is incorrect")
31a32
32a33
> ((cons v) v)
62c63
63c64
< (int → ((list int) → (list int)))]
---
> (int → ((list int) → int))]

View File

@ -2,11 +2,11 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "the tail reduction returns the wrong value")
31a32
32a33
> ((cons v) v)
91c92
92c93
< (in-hole E v_2)
---
> (in-hole E v_1)
236d236
237d237
<

View File

@ -2,11 +2,11 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "hd reduction acts on partially applied cons")
31a32
32a33
> ((cons v) v)
87c88
88c89
< (--> (in-hole E (hd ((cons v_1) v_2)))
---
> (--> (in-hole E (hd (cons v_1)))
236d236
237d237
<

View File

@ -2,12 +2,12 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "evaluation isn't allowed on the rhs of applications")
31a32
32a33
> ((cons v) v)
34,35c35
35,36c36
< (E M)
< (v E)))
---
> (E M)))
236d235
237d236
<

View File

@ -2,11 +2,11 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "lookup always returns int")
31a32
32a33
> ((cons v) v)
75c76
76c77
< σ]
---
> int]
236d236
237d237
<

View File

@ -2,11 +2,11 @@
< (define the-error "the ((cons v) v) value has been omitted")
---
> (define the-error "variables aren't required to match in lookup")
31a32
32a33
> ((cons v) v)
74c75
75c76
< [(lookup (x σ Γ) x)
---
> [(lookup (x σ Γ) x_2)
236d236
237d237
<

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)))
@ -123,8 +124,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -30,6 +30,7 @@
c
(cons v)
((cons v) v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -124,8 +125,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))

View File

@ -29,6 +29,7 @@
(v (λ (x τ) M)
c
(cons v)
((cons v) v)
(+ v))
(E hole
(E M)
@ -123,8 +124,8 @@
[(subst M x N)
,(subst/proc x? (term (x)) (term (N)) (term M))])
(define v? (redex-match stlc v))
(define τ? (redex-match stlc τ))
(define v? (redex-match? stlc v))
(define τ? (redex-match? stlc τ))
(define/contract (type-check M)
(-> M? (or/c τ? #f))
(define M-t (judgment-holds (typeof ,M τ) τ))