Thm* l:IdLnk, tg:Id, L:MsgA List.
Thm* ( M L.T r M.din(l,tg))  (T r (L).din(l,tg)) | [sub-join-list-din] |
Thm* L:MsgA List, P:(IdLnk Id Type Prop), i:Id.
Thm* ( M L.( ltg ma-outlinks(M;i).P(ltg)))  ( ltg ma-outlinks( (L);i).P(ltg)) | [ma-outlinks-join-list] |
Thm* L:MsgA List. ma-is-empty( (L))  reduce( M,x. ma-is-empty(M) & x;True;L) | [assert-ma-join-list-is-empty] |
Thm* L:MsgA List. ma-is-empty( (L)) ~ reduce( M,x. ma-is-empty(M) x;true ;L) | [ma-join-list-is-empty] |
Thm* L:MsgA List. ma-is-empty( (L))  | [ma-is-empty_wf_join] |
Thm* L:MsgA List. (L) MsgAForm | [msg-form-join-list] |
Thm* L:MsgA List. ( A,B L.A ||+ B)  ( M:MsgA. ( B L.B ||+ M)  (L) ||+ M) | [ma-join-list-compat2] |
Thm* L:MsgA List. ( A,B L.A ||+ B)  ( M:MsgA. ( B L.M ||+ B)  M ||+ (L)) | [ma-join-list-compat] |
Thm* L:MsgA List. ( A,B L.A ||+ B)  ( A L.Feasible(A))  Feasible( (L)) | [ma-join-list-feasible] |
Thm* L:MsgA List, M:MsgA. ( A,B L.A ||+ B)  (M L)  M (L) | [ma-sub-join-list] |
Thm* L:MsgA List.
Thm* ( A,B L.A ||+ B)  (L) MsgA & ( M:MsgA. ( B L.M ||+ B)  M ||+ (L)) | [ma-join-list-property] |