comparison src/disjoint.sml @ 83:0a1baddd8ab2

Threading disjointness conditions through Elaborate
author Adam Chlipala <adamc@hcoop.net>
date Tue, 01 Jul 2008 11:39:14 -0400
parents b4f2a258e52c
children e86370850c30
comparison
equal deleted inserted replaced
82:b4f2a258e52c 83:0a1baddd8ab2
275 val ps2 = decomposeRow env c2 275 val ps2 = decomposeRow env c2
276 276
277 val hasUnknown = List.exists (fn p => p = Unknown) 277 val hasUnknown = List.exists (fn p => p = Unknown)
278 in 278 in
279 if hasUnknown ps1 orelse hasUnknown ps2 then 279 if hasUnknown ps1 orelse hasUnknown ps2 then
280 (ErrorMsg.errorAt loc "Structure of row is too complicated to prove disjointness"; 280 [(c1, c2)]
281 Print.eprefaces' [("Row 1", ElabPrint.p_con env c1),
282 ("Row 2", ElabPrint.p_con env c2)];
283 [])
284 else 281 else
285 foldl (fn (p1, rem) => 282 foldl (fn (p1, rem) =>
286 foldl (fn (p2, rem) => 283 foldl (fn (p2, rem) =>
287 if prove1 denv (p1, p2) then 284 if prove1 denv (p1, p2) then
288 rem 285 rem