{ [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