ADT LLabelDeclCaml [ ] INITIALS nil_LLabelDeclCaml: -> LLabelDeclCaml CONSTRUCTORS cons_LLabelDeclCaml: LabelDeclCaml * LLabelDeclCaml -> LLabelDeclCaml SELECTORS head_LLabelDeclCaml : LLabelDeclCaml(i) -> LabelDeclCaml tail_LLabelDeclCaml : LLabelDeclCaml(i) -> LLabelDeclCaml length_LLabelDeclCaml : LLabelDeclCaml(i) -> NAT concat_LLabelDeclCaml : LLabelDeclCaml(i) * LLabelDeclCaml -> LLabelDeclCaml memberList_LLabelDeclCaml : LLabelDeclCaml(i) * LabelDeclCaml -> BOOL isEmptyList_LLabelDeclCaml : LLabelDeclCaml(i) -> BOOL StringOfLLabelDeclCaml(c): LLabelDeclCaml(i) -> String EQ_LLabelDeclCaml(c): LLabelDeclCaml(i) * LLabelDeclCaml(i) -> BOOL AXIOMS head_LLabelDeclCaml(nil_LLabelDeclCaml) = ERROR head_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2)) = X1 tail_LLabelDeclCaml(nil_LLabelDeclCaml) = ERROR tail_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2)) = L2 length_LLabelDeclCaml(nil_LLabelDeclCaml) = ZERO length_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2)) = SUC(length_LLabelDeclCaml(L2)) concat_LLabelDeclCaml(nil_LLabelDeclCaml,L1) = L1 concat_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2),L3) = cons_LLabelDeclCaml(X1,concat_LLabelDeclCaml(L2,L3)) memberList_LLabelDeclCaml(nil_LLabelDeclCaml,X1) = FALSE memberList_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2),X3) = if EQ_LabelDeclCaml(X1,X3) then TRUE else memberList_LLabelDeclCaml(L2,X3) fi isEmptyList_LLabelDeclCaml(nil_LLabelDeclCaml) = TRUE isEmptyList_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2)) = FALSE StringOfLLabelDeclCaml(nil_LLabelDeclCaml)="" StringOfLLabelDeclCaml(cons_LLabelDeclCaml(L1,nil_LLabelDeclCaml))= StringOfLabelDeclCaml(L1) StringOfLLabelDeclCaml(cons_LLabelDeclCaml(L1,cons_LLabelDeclCaml(L2,t)))= concat_String(StringOfLabelDeclCaml(L1), concat_String(",",StringOfLLabelDeclCaml(cons_LLabelDeclCaml(L2,t)))) EQ_LLabelDeclCaml(nil_LLabelDeclCaml,nil_LLabelDeclCaml) = TRUE EQ_LLabelDeclCaml(nil_LLabelDeclCaml,cons_LLabelDeclCaml(X1,L2)) = FALSE EQ_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2),nil_LLabelDeclCaml) = FALSE EQ_LLabelDeclCaml(cons_LLabelDeclCaml(X1,L2),cons_LLabelDeclCaml(X3,L4)) = AND(EQ_LabelDeclCaml(X1,X3),EQ_LLabelDeclCaml(L2,L4))