ADT ValueDefCaml [ ] INITIALS letVDC : LLetBindingCaml -> ValueDefCaml letRecVDC : LLetBindingCaml -> ValueDefCaml CONSTRUCTORS SELECTORS StringOfValueDefCaml(c): ValueDefCaml(i) -> String EQ_ValueDefCaml(c): ValueDefCaml(i) * ValueDefCaml(i) -> BOOL AXIOMS StringOfValueDefCaml(letVDC(L1))= concat_String("let ",StringOfLLetBindingCaml(L1)) StringOfValueDefCaml(letRecVDC(L1))= concat_String("let rec ",StringOfLLetBindingCaml(L1)) EQ_ValueDefCaml(letVDC(L1),letVDC(L2))=EQ_LLetBindingCaml(L1,L2) EQ_ValueDefCaml(letVDC(L1),letRecVDC(L2))=FALSE EQ_ValueDefCaml(letRecVDC(L1),letVDC(L2))=FALSE EQ_ValueDefCaml(letRecVDC(L1),letRecVDC(L2))=EQ_LLetBindingCaml(L1,L2)