@@ -153,11 +153,51 @@ relation @racket[rel-expr] to a term specified by @racket[goal-expr] in
153
153
154
154
(test-results)]
155
155
156
- @defform*[((test-judgment-holds (judgment-form-or-relation pat/term ... ))
157
- (test-judgment-holds modeless-judgment-form derivation-expr))]{
156
+ @defform*/subs[((test-judgment-holds (judgment-form-or-relation pat/term ... ) mutuals)
157
+ (test-judgment-holds modeless-judgment-form derivation-expr))
158
+ ([mutuals (code:line)
159
+ (code:line #:mutuals (judgment-form-id ... ))])]{
158
160
In the first form, tests to see if @racket[(judgment-form-or-relation pat/term ... )] holds.
159
161
In the second form, tests to see if the result of @racket[derivation-expr] is a derivation and ,
160
162
if so, that it is derivable using @racket[modeless-judgment-form].
163
+
164
+ For modeless judgments, if the derivation is invalid, the test will report the
165
+ all the proper sub-derivations of @racket[modeless-judgment-form] that fail to hold.
166
+ If @racket[modeless-judgment-form] has other judgment premises, these
167
+ identifiers can be supplied in the optional #racket[#:mutuals ] arguments, and
168
+ the form will report each invalid sub-derivations from all the specified judgment forms.
169
+
170
+ @examples[
171
+ #:eval redex-eval
172
+ (define-language L)
173
+ (define-judgment-form L
174
+ [----------- "Base "
175
+ (J1 natural 1 )])
176
+
177
+ (define-judgment-form L
178
+ [----------- "Base "
179
+ (J2 natural 1 )]
180
+
181
+ [(J1 any_1 any_2)
182
+ (J2 any_1 any_3)
183
+ -------------- "Pair "
184
+ (J2 (any_1 any_2) any_3)])
185
+
186
+ (test-judgment-holds J2 (derivation `(J2 (1 x) 1 ) "Pair "
187
+ (list
188
+ (derivation `(J1 1 x) "Base "
189
+ (list))
190
+ (derivation `(J2 1 1 ) "Base "
191
+ (list)))))
192
+
193
+ (test-judgment-holds J2 (derivation `(J2 (1 x) 1 ) "Pair "
194
+ (list
195
+ (derivation `(J1 1 x) "Base "
196
+ (list))
197
+ (derivation `(J2 1 1 ) "Base "
198
+ (list))))
199
+ #:mutuals (J1))
200
+ ]
161
201
}
162
202
163
203
@defform[(test-predicate p? e)]{
0 commit comments