{ [U:Atom  SimpleType]
    L1,L2:(SimpleType  SimpleType) List.
      st-unifies-all(U;L1 @ L2) = st-unifies-all(U;L1)  st-unifies-all(U;L2) }

{ Proof }



Definitions occuring in Statement :  st-unifies-all: st-unifies-all(U;L) simple_type: SimpleType append: as @ bs band: p  q bool: uall: [x:A]. B[x] all: x:A. B[x] function: x:A  B[x] product: x:A  B[x] list: type List atom: Atom equal: s = t
Definitions :  bl-all: (xL.P[x])_b universe: Type eclass: EClass(A[eo; e]) pair: <a, b> 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 uall: [x:A]. B[x] isect: x:A. B[x] atom: Atom all: x:A. B[x] lambda: x.A[x] product: x:A  B[x] simple_type: SimpleType bool: append: as @ bs band: p  q st-unifies-all: st-unifies-all(U;L) list: type List function: x:A  B[x] equal: s = t member: t  T axiom: Ax RepUR: Error :RepUR,  Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  tactic: Error :tactic,  subtype: S  T spread: spread def st-unifies: st-unifies(U;st1;st2) btrue: tt reduce: reduce(f;k;as) sqequal: s ~ t top: Top void: Void false: False limited-type: LimitedType prop: bfalse: ff decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  eq_bool: p =b q lt_int: i <z j le_int: i z j eq_int: (i = j) eq_atom: x =a y null: null(as) set_blt: a < b grp_blt: a < b apply: f a infix_ap: x f y dcdr-to-bool: [d] bl-exists: (xL.P[x])_b b-exists: (i<n.P[i])_b eq_type: eq_type(T;T') eq_atom: eq_atom$n(x;y) qeq: qeq(r;s) q_less: q_less(r;s) q_le: q_le(r;s) deq-member: deq-member(eq;x;L) deq-disjoint: deq-disjoint(eq;as;bs) deq-all-disjoint: deq-all-disjoint(eq;ass;bs) eq_id: a = b eq_lnk: a = b es-eq-E: e = e' es-bless: e <loc e' es-ble: e loc e' bimplies: p  q bor: p q assert: b bnot: b implies: P  Q union: left + right unit: Unit int: iff: P  Q rev_implies: P  Q guard: {T} sq_type: SQType(T) rec: rec(x.A[x]) MaAuto: Error :MaAuto
Lemmas :  subtype_base_sq bool_subtype_base band_ff_simp st-unifies_wf iff_wf rev_implies_wf band_tt_simp eqtt_to_assert uiff_transitivity eqff_to_assert assert_of_bnot bnot_wf not_wf assert_wf bfalse_wf reduce-append member_wf top_wf btrue_wf reduce_wf bool_wf st-unifies-all_wf band_wf simple_type_wf

\mforall{}[U:Atom  {}\mrightarrow{}  SimpleType]
    \mforall{}L1,L2:(SimpleType  \mtimes{}  SimpleType)  List.
        st-unifies-all(U;L1  @  L2)  =  st-unifies-all(U;L1)  \mwedge{}\msubb{}  st-unifies-all(U;L2)


Date html generated: 2011_08_17-PM-05_00_11
Last ObjectModification: 2011_02_08-AM-00_43_12

Home Index