comparison lib/ur/incl.ur @ 1182:0b1d666bddb4

Spiffed-up Split1; remove spurious error message triggered by 'open'ing a module containing a functor
author Adam Chlipala <adamc@hcoop.net>
date Tue, 09 Mar 2010 17:50:42 -0500
parents 618f9f458da9
children
comparison
equal deleted inserted replaced
1181:618f9f458da9 1182:0b1d666bddb4
12 12
13 fun proj [r1 ::: {Type}] [r2 ::: {Type}] (i : incl r1 r2) (r : $r2) = 13 fun proj [r1 ::: {Type}] [r2 ::: {Type}] (i : incl r1 r2) (r : $r2) =
14 i [$r1] (fn [r' :: {Type}] [r1 ~ r'] (i' : incl' r1 r2 r') => 14 i [$r1] (fn [r' :: {Type}] [r1 ~ r'] (i' : incl' r1 r2 r') =>
15 i'.Expose [fn r => $r] r --- r') 15 i'.Expose [fn r => $r] r --- r')
16 16
17 fun inv1 [K] [nm :: Name] [t ::: K] [r :: {K}] [r' :: {K}] [[nm] ~ r] 17 fun inv1 [K] [nm :: Name] [t :: K] [r :: {K}] [r' :: {K}] [[nm] ~ r]
18 [f :: Name -> K -> {K} -> Type] 18 [f :: Name -> K -> {K} -> Type]
19 (i : incl ([nm = t] ++ r) r') 19 (i : incl ([nm = t] ++ r) r')
20 (f : nm :: Name -> t :: K -> r :: {K} -> [[nm] ~ r] => f nm t ([nm = t] ++ r)) = 20 (f : nm :: Name -> t :: K -> r :: {K} -> [[nm] ~ r] => f nm t ([nm = t] ++ r)) =
21 i [f nm t r'] (fn [r'' :: {K}] [[nm = t] ++ r ~ r''] (i' : incl' ([nm = t] ++ r) r' r'') => 21 i [f nm t r'] (fn [r'' :: {K}] [[nm = t] ++ r ~ r''] (i' : incl' ([nm = t] ++ r) r' r'') =>
22 i'.Hide [f nm t] (f [nm] [t] [r ++ r''] !)) 22 i'.Hide [f nm t] (f [nm] [t] [r ++ r''] !))