{ [sub1,sub2:Top]. [st:SimpleType].
    (st-subst(sub2;st-subst(sub1;st)) ~ st-subst(a.st-subst(sub2;sub1 a);st)) }

{ Proof }



Definitions occuring in Statement :  st-subst: st-subst(subst;st) simple_type: SimpleType uall: [x:A]. B[x] top: Top apply: f a lambda: x.A[x] sqequal: s ~ t
Definitions :  simple_type_ind_st_class: simple_type_ind_st_class_compseq_tag_def simple_type_ind_st_list: simple_type_ind_st_list_compseq_tag_def simple_type_ind_st_union: simple_type_ind_st_union_compseq_tag_def base: Base implies: P  Q sq_type: SQType(T) so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]) so_lambda: x y.t[x; y] simple_type_ind_st_prod: simple_type_ind_st_prod_compseq_tag_def st_class: st_class(kind) st_list: st_list(kind) st_union: st_union(left;right) st_prod: st_prod(fst;snd) st_const: st_const(ty) st_arrow: st_arrow(domain;range) simple_type_ind: simple_type_ind simple_type_ind_st_arrow: simple_type_ind_st_arrow_compseq_tag_def simple_type_ind_st_const: simple_type_ind_st_const_compseq_tag_def simple_type_ind_st_var: simple_type_ind_st_var_compseq_tag_def lambda: x.A[x] st-subst: st-subst(subst;st) inr: inr x  eclass: EClass(A[eo; e]) fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  not: A less_than: a < b uimplies: b supposing a and: P  Q uiff: uiff(P;Q) subtype_rel: A r B product: x:A  B[x] decision: Decision set: {x:A| B[x]}  apply: f a rec: rec(x.A[x]) inl: inl x  atom: Atom union: left + right function: x:A  B[x] all: x:A. B[x] equal: s = t so_lambda: x.t[x] prop: universe: Type sqequal: s ~ t top: Top uall: [x:A]. B[x] isect: x:A. B[x] simple_type: SimpleType member: t  T Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  D: Error :D,  CollapseTHENA: Error :CollapseTHENA,  RepeatFor: Error :RepeatFor,  tactic: Error :tactic
Lemmas :  union_subtype_base atom_subtype_base subtype_rel_wf base_wf rec_subtype_base subtype_base_sq simple_type_wf st_list_wf product_subtype_base st_union_wf st_prod_wf member_wf uall_wf top_wf st_class_wf

\mforall{}[sub1,sub2:Top].  \mforall{}[st:SimpleType].
    (st-subst(sub2;st-subst(sub1;st))  \msim{}  st-subst(\mlambda{}a.st-subst(sub2;sub1  a);st))


Date html generated: 2011_08_17-PM-04_54_00
Last ObjectModification: 2011_02_06-PM-08_33_55

Home Index