t : T (T-Sub) S <: S (T-Refl) S <: U U <: T S <: T (T-Refl) ‣ 54VC5ZQJOH3FMBUJPOͱ4VCUZQF3FMBUJPOؒͷௐ ઌͷྫͰ ‣ ࣹͱਪҠΛຬͨ͢ ` { x = 0 , y = 1} : { x : Nat }
{li : Ti21..n+k i } <: {li : Ti21..n i } (S-RcdWidth) {kj : Tj21..n j } is a permutation of {li : Ti21..n i } {kj : Tj21..n j } < : {li : Ti21..n i } ( S-RcdPerm ) for each i [ Si < : Ti] {li : Si21..n i } < : {li : Ti21..n i } ( S-RcdDepth )
5IFPSFN1SPHSFTT ͕XFMMUZQFEͰDMPTFEͳWBMVFͳΒɺWBMVF ͘͠Λຬ͕ͨ͢ଘࡏ͢Δ w ূ໌ɿܕͷಋग़ʹؔ͢ΔTUSBJHIUGPSXBSEͳJOEVDUJPO 13 v T1 ! T2 v x : S1.t2 v {li : Ti21..n i } v {kj = vj21..m j } {li21..n i } ✓ {ka21..m a } t t t ! t0 t0
QSPHSFTTͷੑ࣭ࣦͬͯ͠·ͬͨ ྫ֎Λಋೖ͢Δ͔ɺEPXODBTUΛಈతͳܕνΣοΫͰஔ ͖͑ΕQSPHSFTTΛճ෮Ͱ͖Δ ԋश 21 f = ( x : Top ) ( x as { a : Nat }) .a ; {a = 5, b = true} ` v1 : T v1 as T ! v1 ( E-Downcast ) {a = 5, b = true} : {a : Nat} {b = true} <: