{ [U:Atom  SimpleType]. [st1,st2:SimpleType].
    st-unifies(U;st1;st2) = st-unifies(U;st2;st1) }

{ Proof }



Definitions occuring in Statement :  st-unifies: st-unifies(U;st1;st2) simple_type: SimpleType bool: uall: [x:A]. B[x] function: x:A  B[x] atom: Atom equal: s = t
Definitions :  subtype: S  T suptype: suptype(S; T) st-vars: st-vars(st) l_member: (x  l) set: {x:A| B[x]}  true: True false: False decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  st-subst: st-subst(subst;st) st-similar: st-similar(st1;st2) rev_implies: P  Q prop: assert: b implies: P  Q iff: P  Q universe: Type eclass: EClass(A[eo; e]) pair: <a, b> fpf: a:A fp-B[a] rec: rec(x.A[x]) strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  not: A less_than: a < b uimplies: b supposing a product: x:A  B[x] and: P  Q uiff: uiff(P;Q) subtype_rel: A r B all: x:A. B[x] atom: Atom bool: st-unifies: st-unifies(U;st1;st2) function: x:A  B[x] axiom: Ax equal: s = t uall: [x:A]. B[x] member: t  T isect: x:A. B[x] simple_type: SimpleType Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  Unfold: Error :Unfold,  CollapseTHENA: Error :CollapseTHENA
Lemmas :  member_wf simple_type_wf l_member_wf st-subst_wf st-vars_wf st-similar_wf assert_wf true_wf ifthenelse_wf false_wf st-unifies_wf iff_imp_equal_bool bool_wf st-similar_inversion

\mforall{}[U:Atom  {}\mrightarrow{}  SimpleType].  \mforall{}[st1,st2:SimpleType].    st-unifies(U;st1;st2)  =  st-unifies(U;st2;st1)


Date html generated: 2011_08_17-PM-04_58_09
Last ObjectModification: 2011_02_08-AM-00_02_29

Home Index